Add dhcp-subnet-assignments container
[sdnc/northbound.git] / generic-resource-api / model / src / main / yang / GENERIC-RESOURCE-API.yang
1 module GENERIC-RESOURCE-API {\r
2 \r
3    namespace "org:onap:sdnc:northbound:generic-resource";\r
4 \r
5    prefix generic-resource-api;\r
6 \r
7    import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; }\r
8 \r
9    import ietf-yang-types { prefix yang; }\r
10 \r
11    revision "2017-08-24" {\r
12      description\r
13         "ONAP Amsterdam version";\r
14    }\r
15 \r
16    grouping service-model-infrastructure {\r
17       list service {\r
18          key "service-instance-id";\r
19          leaf service-instance-id {\r
20             description "Keep as M";\r
21             type string;\r
22             mandatory true;\r
23          }\r
24          uses service-data;\r
25          uses service-status;\r
26       }\r
27    }\r
28    grouping service-data {\r
29       container service-data {\r
30          uses service-operation-information;\r
31          uses service-topology;\r
32          uses service-level-oper-status;\r
33          container networks {\r
34             list network {\r
35                key "network-id";\r
36                leaf network-id {\r
37                   type string;\r
38                   mandatory true;\r
39                }\r
40                container network-data {\r
41                   uses network-operation-information;\r
42                   uses network-topology;\r
43                   container network-provided-allotted-resources {\r
44                      leaf-list network-provided-ar-id {\r
45                         description "List of allotted resources using capacity from this network";\r
46                         type string;\r
47                         ordered-by user;\r
48                      }\r
49                   }\r
50                   uses network-level-oper-status;\r
51                }\r
52             }\r
53          }\r
54          container vnfs {\r
55             list vnf {\r
56                key "vnf-id";\r
57                leaf vnf-id {\r
58                   type string;\r
59                   mandatory true;\r
60                }\r
61                container vnf-data {\r
62                   uses vnf-operation-information;\r
63                   uses vnf-topology;\r
64                   container vnf-network-collections {\r
65                      uses vnf-network-collection;\r
66                   }\r
67                   container vnf-sub-interface-groups {\r
68                      uses vnf-sub-interface-group;\r
69                   }\r
70                   container vnf-provided-allotted-resources {\r
71                      leaf-list vnf-provided-ar-id {\r
72                         description "List of allotted resources using capacity from this vnf";\r
73                         type string;\r
74                         ordered-by user;\r
75                      }\r
76                   }\r
77                   uses vnf-level-oper-status;\r
78                   container vf-modules {\r
79                      list vf-module {\r
80                         key "vf-module-id";\r
81                         leaf vf-module-id {\r
82                            type string;\r
83                            mandatory true;\r
84                         }\r
85                         container vf-module-data {\r
86                            uses vf-module-operation-information;\r
87                            uses vf-module-topology;\r
88                            uses vf-module-level-oper-status;\r
89                         }\r
90                      }\r
91                   }\r
92                }\r
93             }\r
94          }\r
95          container consumed-allotted-resources {\r
96             list consumed-allotted-resource {\r
97                key "allotted-resource-id";\r
98                uses allotted-resource-info;\r
99             }\r
100          }\r
101          container provided-allotted-resources {\r
102             list provided-allotted-resource {\r
103                key "allotted-resource-id";\r
104                uses allotted-resource-info;\r
105             }\r
106          }\r
107          container provided-configurations {\r
108             list provided-configuration {\r
109                key "configuration-id";\r
110                uses configuration-info;\r
111             }\r
112          }\r
113          container vnfc-instance-groups {\r
114             uses vnfc-instance-group;\r
115          }\r
116          container network-instance-groups {\r
117             uses network-instance-group;\r
118          }\r
119          container forwarding-paths {\r
120             list forwarding-path {\r
121                key "forwarding-path-id";\r
122                leaf forwarding-path-id {\r
123                   description "Generated by SDNC";\r
124                   type string;\r
125                   mandatory true;\r
126                }\r
127                uses forwarding-path-information;\r
128             }\r
129          }\r
130       }\r
131    }\r
132    grouping service-status {\r
133       container service-status {\r
134          leaf response-code {\r
135             type string;\r
136          }\r
137          leaf response-message {\r
138             type string;\r
139          }\r
140          leaf final-indicator {\r
141             type string;\r
142          }\r
143          leaf request-status {\r
144             type enumeration {\r
145                enum "synccomplete";\r
146                enum "asynccomplete";\r
147                enum "notifycomplete";\r
148             }\r
149          }\r
150          leaf action {\r
151             description "value would one of possible request-actions; match the list in service-data oper-status";\r
152             type string;\r
153          }\r
154          leaf rpc-name {\r
155             type string;\r
156          }\r
157          leaf rpc-action {\r
158             description "this is the svc-action from the incoming request";\r
159             type enumeration {\r
160                enum "assign";\r
161                enum "activate";\r
162                enum "configure";\r
163                enum "delete";\r
164                enum "unassign";\r
165                enum "deactivate";\r
166                enum "create";\r
167             }\r
168          }\r
169          leaf response-timestamp {\r
170             type string;\r
171          }\r
172       }\r
173    }\r
174    grouping service-operation-information {\r
175       uses sdnc-request-header;\r
176       uses request-information;\r
177       uses service-information;\r
178       uses service-request-input;\r
179    }\r
180    grouping service-request-input {\r
181       container service-request-input {\r
182          leaf service-instance-name {\r
183             type string;\r
184          }\r
185          container service-input-parameters {\r
186             uses param;\r
187          }\r
188       }\r
189    }\r
190    grouping service-topology {\r
191       container service-topology {\r
192          uses service-topology-identifier;\r
193          uses onap-model-information;\r
194          uses service-assignments;\r
195          uses service-parameters;\r
196       }\r
197    }\r
198    grouping service-topology-identifier {\r
199       container service-topology-identifier {\r
200          leaf service-instance-id {\r
201             description "repeated";\r
202             type string;\r
203          }\r
204          leaf service-type {\r
205             description "tag labeled subscription-service-type in the service-information input";\r
206             type string;\r
207          }\r
208          leaf service-id {\r
209             description "from MSO input on STO assign";\r
210             type string;\r
211          }\r
212          leaf service-instance-name {\r
213             description "optionally comes from service-request-input container or is assigned by sdn-c";\r
214             type string;\r
215          }\r
216          leaf global-customer-id {\r
217             type string;\r
218          }\r
219       }\r
220    }\r
221    grouping service-assignments {\r
222       container service-assignments {\r
223       }\r
224    }\r
225    grouping service-parameters {\r
226       container service-parameters {\r
227          list service-parameter {\r
228             key "service-parameter-name";\r
229             leaf service-parameter-name {\r
230                type string;\r
231             }\r
232             leaf service-parameter-value {\r
233                type string;\r
234             }\r
235          }\r
236       }\r
237    }\r
238    grouping service-level-oper-status {\r
239       container service-level-oper-status {\r
240          uses oper-status-data;\r
241       }\r
242    }\r
243    grouping network-operation-information {\r
244       uses sdnc-request-header;\r
245       uses request-information;\r
246       uses service-information;\r
247       uses network-information;\r
248       uses network-request-input;\r
249    }\r
250    grouping network-information {\r
251       container network-information {\r
252          leaf network-id {\r
253             type string;\r
254          }\r
255          leaf network-type {\r
256             type string;\r
257          }\r
258          leaf network-technology {\r
259              type string;\r
260          }\r
261          leaf from-preload {\r
262             description "Indicates if source is preload data";\r
263             type boolean;\r
264          }\r
265          uses onap-model-information;\r
266       }\r
267    }\r
268    grouping network-request-input {\r
269       container network-request-input {\r
270          leaf network-name {\r
271             type string;\r
272          }\r
273          uses region-identifier;\r
274          container network-input-parameters {\r
275             uses param;\r
276          }\r
277          leaf network-instance-group-id {\r
278             description "When network has instance-group role in service model";\r
279             type string;\r
280          }\r
281       }\r
282    }\r
283    grouping network-topology {\r
284       container network-topology {\r
285          uses network-topology-identifier-structure;\r
286          uses region-identifier;\r
287          uses onap-model-information;\r
288          uses network-assignments;\r
289          uses network-parameters;\r
290       }\r
291    }\r
292    grouping network-topology-identifier-structure {\r
293       container network-topology-identifier-structure {\r
294          leaf network-id {\r
295             type string;\r
296          }\r
297          leaf network-name {\r
298             type string;\r
299          }\r
300          leaf network-role {\r
301             type string;\r
302          }\r
303          leaf network-type {\r
304             type string;\r
305          }\r
306          leaf network-instance-group-id {\r
307             description "When network is part of network instance-Group-data & instance Group in A&AI";\r
308             type string;\r
309          }\r
310          leaf network-technology {\r
311             type string;\r
312          }\r
313          leaf eipam-v4-address-plan {\r
314             type string;\r
315          }\r
316          leaf eipam-v6-address-plan {\r
317             type string;\r
318          }\r
319          leaf is-trunked {\r
320              type boolean;\r
321          }\r
322          leaf segmentation-id {\r
323             type string;\r
324          }\r
325          container related-networks {\r
326             uses related-network;\r
327          }\r
328       }\r
329    }\r
330    grouping network-assignments {\r
331       container network-assignments {\r
332       }\r
333    }\r
334    grouping network-parameters {\r
335       container network-parameters {\r
336          list network-parameter {\r
337             key "network-parameter-name";\r
338             leaf network-parameter-name {\r
339                type string;\r
340             }\r
341             leaf network-parameter-value {\r
342                type string;\r
343             }\r
344          }\r
345       }\r
346    }\r
347    grouping network-instance-group {\r
348       list network-instance-group {\r
349          key "network-instance-group-id";\r
350          leaf network-instance-group-id {\r
351             description "Also a Key in Network Instance Group in A&AI";\r
352             type string;\r
353             mandatory true;\r
354          }\r
355          leaf network-instance-group-function {\r
356             type string;\r
357          }\r
358          leaf service-instance-id {\r
359             type string;\r
360          }\r
361          uses onap-model-information;\r
362          container subnet-assignment-policy {\r
363             leaf subnet-use {\r
364                description "Current valid values - unique, shared (default)";\r
365                type string;\r
366             }\r
367          }\r
368          container vpn-binding-policy {\r
369             leaf vpn-binding {\r
370                type string;\r
371             }\r
372             leaf vpn-name {\r
373                type string;\r
374             }\r
375             leaf vpn-type {\r
376                type string;\r
377             }\r
378             leaf vpn-platform {\r
379                type string;\r
380             }\r
381             leaf global-route-target {\r
382                type string;\r
383             }\r
384             leaf route-target-role {\r
385                type string;\r
386             }\r
387          }\r
388          uses aggregate-routes;\r
389          uses subnets;\r
390          leaf subnet-key-value {\r
391             description "key-value provided to EIPAM when  creating shared subnet";\r
392             type string;\r
393          }\r
394          container networks {\r
395             list network {\r
396                key "network-id";\r
397                leaf network-id {\r
398                   description "Index into network-topology-identifier structure";\r
399                   type string;\r
400                   mandatory true;\r
401                }\r
402                leaf neutron-network-id {\r
403                   description "Neutron-network-id assigned by PO/RO";\r
404                   type string;\r
405                }\r
406                uses vpn-bindings;\r
407                leaf vlan-tag-id {\r
408                   type uint32;\r
409                }\r
410                leaf network-status {\r
411                   description "assigned, unassigned";\r
412                   type string;\r
413                }\r
414                container customer-bonding-requests {\r
415                   list customer-bonding-request {\r
416                      key "configuration-id";\r
417                      leaf configuration-id {\r
418                         description "e.g. vlan network receptor configuration id";\r
419                         type string;\r
420                      }\r
421                   }\r
422                }\r
423             }\r
424          }\r
425       }\r
426    }\r
427    grouping network-level-oper-status {\r
428       container network-level-oper-status {\r
429          uses oper-status-data;\r
430       }\r
431    }\r
432    grouping vnf-operation-information {\r
433       uses sdnc-request-header;\r
434       uses request-information;\r
435       uses service-information;\r
436       uses vnf-information;\r
437       uses vnf-request-input;\r
438       uses license-information;\r
439    }\r
440    grouping vnf-information {\r
441       container vnf-information {\r
442          leaf vnf-id {\r
443             type string;\r
444          }\r
445          leaf vnf-type {\r
446             type string;\r
447          }\r
448          leaf vnf-name {\r
449             type string;\r
450          }\r
451          uses onap-model-information;\r
452       }\r
453    }\r
454    grouping vnf-request-input {\r
455       container vnf-request-input {\r
456          leaf request-version {\r
457             type string;\r
458          }\r
459          leaf vnf-name {\r
460             type string;\r
461          }\r
462          uses region-identifier;\r
463          container vnf-networks {\r
464             list vnf-network {\r
465                key "network-role";\r
466                uses vnf-network-data;\r
467             }\r
468          }\r
469          list vnf-network-instance-group-ids {\r
470             key "vnf-network-instance-group-id";\r
471             leaf vnf-network-instance-group-id {\r
472                description "List of vnf network-instance-group";\r
473                type string;\r
474             }\r
475          }\r
476          container vnf-input-parameters {\r
477             uses param;\r
478          }\r
479       }\r
480    }\r
481    grouping vnf-topology {\r
482       container vnf-topology {\r
483          uses vnf-topology-identifier-structure;\r
484          uses region-identifier;\r
485          uses onap-model-information;\r
486          uses vnf-resource-assignments;\r
487          container vnf-parameters-data {\r
488             uses param;\r
489          }\r
490          leaf sdnc-generated-cloud-resources {\r
491             description "Indicate if source is sdnc generated cloud param";\r
492             type boolean;\r
493          }\r
494       }\r
495    }\r
496    grouping vnf-topology-identifier-structure {\r
497       container vnf-topology-identifier-structure {\r
498          leaf vnf-id {\r
499             type string;\r
500          }\r
501          leaf vnf-type {\r
502             description "In preload tree, this label is used for the vf-module-type";\r
503             type string;\r
504          }\r
505          leaf nf-type {\r
506             type string;\r
507          }\r
508          leaf nf-role {\r
509             type string;\r
510          }\r
511          leaf nf-function {\r
512             type string;\r
513          }\r
514          leaf nf-code {\r
515             description "used in vnf naming";\r
516             type string;\r
517          }\r
518          leaf vnf-name {\r
519             description "optionally comes from vnf-request-input container or is assigned by sdn-c";\r
520             type string;\r
521          }\r
522       }\r
523    }\r
524    grouping vnf-resource-assignments {\r
525       container vnf-resource-assignments {\r
526          leaf vnf-status {\r
527             description "Orchestration status from AAI - to be set by SDNC";\r
528             type string;\r
529          }\r
530          container availability-zones {\r
531             leaf-list availability-zone {\r
532                description "Openstack availability zone name or UUID";\r
533                type string;\r
534                ordered-by user;\r
535             }\r
536             leaf max-count {\r
537                description "From the TOSCA data. Indicates the largest availability zone count needed by any vf-module in the VNF.";\r
538                type uint8;\r
539             }\r
540          }\r
541          container vnf-networks {\r
542             list vnf-network {\r
543                key "network-role";\r
544                uses vnf-network-data;\r
545             }\r
546          }\r
547       }\r
548    }\r
549    grouping vnf-network-data {\r
550       leaf network-role {\r
551          description "A Network Role to which a VNF must connect";\r
552          type string;\r
553       }\r
554       leaf network-name {\r
555          description "Unique Neutron UUID of an instance of the network role ";\r
556          type string;\r
557       }\r
558       leaf neutron-id {\r
559          description "Unique Neutron UUID of an instance of the network role ";\r
560          type string;\r
561       }\r
562       leaf network-id {\r
563          description "Unique Neutron UUID of an instance of the network role ";\r
564          type string;\r
565       }\r
566       leaf contrail-network-fqdn {\r
567          description "contrail network policy object";\r
568          type string;\r
569       }\r
570       container subnets-data {\r
571          list subnet-data {\r
572             key "sdnc-subnet-id";\r
573             leaf sdnc-subnet-id {\r
574                description "Unique SDNC generated UUID of the subnet. Key into A&AI instance.This maps to ipv4-key-subnet-id and ipv6-key-subnet-id in VNF-API";\r
575                type string;\r
576             }\r
577             leaf subnet-role {\r
578                description "Subnet Role for the subnet";\r
579                type string;\r
580             }\r
581             leaf subnet-name {\r
582                description "Populated for preload only";\r
583                type string;\r
584             }\r
585             leaf ip-version {\r
586                description "Should be ipv4 or ipv6";\r
587                type string;\r
588             }\r
589             leaf subnet-id {\r
590                description "subnet UUID to be passed into the HEAT template";\r
591                type string;\r
592             }\r
593             leaf dhcp-enabled {\r
594                description "Indicator to use this subnet for  DHCP ";\r
595                type enumeration {\r
596                   enum "Y";\r
597                   enum "N";\r
598                }\r
599             }\r
600             leaf network-start-address {\r
601                description "start-address of the subnet";\r
602                type inet:ip-address;\r
603             }\r
604             leaf gateway-address {\r
605                description "subnet gateway address";\r
606                type inet:ip-address;\r
607             }\r
608             leaf cidr-mask {\r
609                description "cidr mask";\r
610                type string;\r
611             }\r
612          }\r
613       }\r
614       leaf is-trunked {\r
615           type boolean;\r
616        }\r
617        leaf segmentation-id {\r
618           type string;\r
619        }\r
620        container related-networks {\r
621           uses related-network;\r
622        }\r
623    }\r
624    grouping vnf-level-oper-status {\r
625       container vnf-level-oper-status {\r
626          uses oper-status-data;\r
627       }\r
628    }\r
629    grouping vf-module-operation-information {\r
630       uses sdnc-request-header;\r
631       uses request-information;\r
632       uses service-information;\r
633       uses vnf-information;\r
634       uses vf-module-information;\r
635       uses vf-module-request-input;\r
636    }\r
637    grouping vf-module-information {\r
638       container vf-module-information {\r
639          leaf vf-module-id {\r
640             type string;\r
641          }\r
642          leaf vf-module-type {\r
643             type string;\r
644          }\r
645          leaf from-preload {\r
646             description "Indicates if source is preload data";\r
647             type boolean;\r
648          }\r
649          uses onap-model-information;\r
650       }\r
651    }\r
652    grouping vf-module-request-input {\r
653       container vf-module-request-input {\r
654          leaf request-version {\r
655             description "keep this?";\r
656             type string;\r
657          }\r
658          leaf vf-module-name {\r
659             type string;\r
660          }\r
661          uses region-identifier;\r
662          container vf-module-input-parameters {\r
663             uses param;\r
664          }\r
665       }\r
666    }\r
667    grouping vf-module-topology {\r
668       container vf-module-topology {\r
669          uses vf-module-topology-identifier;\r
670          uses region-identifier;\r
671          uses onap-model-information;\r
672          uses vf-module-assignments;\r
673          container vf-module-parameters {\r
674             uses param;\r
675          }\r
676          leaf sdnc-generated-cloud-resources {\r
677             description "Indicate if source is sdnc-generated-cloud-resources.When true, the parameters are literal HEAT template parameter names;When false, the parameters need to be converted to HEAT format"; \r
678             type boolean;\r
679          }\r
680       }\r
681    }\r
682    grouping vf-module-topology-identifier {\r
683       container vf-module-topology-identifier {\r
684          leaf vf-module-id {\r
685             description "vf-module id";\r
686             type string;\r
687          }\r
688          leaf vf-module-name {\r
689             description "vf-module-name";\r
690             type string;\r
691          }\r
692          leaf vf-module-type {\r
693             type string;\r
694          }\r
695       }\r
696    }\r
697    grouping vf-module-assignments {\r
698       container vf-module-assignments {\r
699          leaf vf-module-status {\r
700             description "Orchestration status from AAI - to be set by SDNC";\r
701             type string;\r
702          }\r
703          container vms {\r
704             list vm {\r
705                key "vm-type";\r
706                uses vm-topology-data;\r
707             }\r
708          }\r
709          uses vlan-vnfc-instance-groups;\r
710          container dhcp-subnet-assignments {\r
711             list dhcp-subnet-assignment {\r
712                key "neutron-subnet-id";\r
713                leaf neutron-subnet-id {\r
714                   description "Same as subnet-id in subnet-data structure";\r
715                   type string;\r
716                }\r
717                leaf network-role {\r
718                   type string;\r
719                }\r
720                leaf ip-version {\r
721                   type string;\r
722                }\r
723             }\r
724          }\r
725       }\r
726    }\r
727    grouping vm-topology-data {\r
728       leaf vm-type {\r
729          type string;\r
730          mandatory true;\r
731       }\r
732       uses onap-model-information;\r
733       leaf nfc-naming-code {\r
734          description "used in vm naming(draft 29: changed from nfc-code)";\r
735          type string;\r
736       }\r
737       leaf vm-type-tag {\r
738          description "from tosca data on vfc";\r
739          type string;\r
740       }\r
741       leaf vm-count {\r
742          type uint8;\r
743       }\r
744       container vm-names {\r
745          leaf-list vm-name {\r
746             type string;\r
747             ordered-by user;\r
748          }\r
749          list vnfc-names {\r
750             key "vnfc-name";\r
751             leaf vnfc-name {\r
752                type string;\r
753             }\r
754             container vnfc-networks {\r
755                uses vnfc-network-data;\r
756             }\r
757          }\r
758       }\r
759       container vm-networks {\r
760          list vm-network {\r
761             key "network-role";\r
762             uses vm-network-data;\r
763          }\r
764       }\r
765    }\r
766    grouping vnfc-network-data {\r
767       list vnfc-network-data {\r
768          key "vnfc-network-role";\r
769          leaf vnfc-network-role {\r
770             type string;\r
771             mandatory true;\r
772          }\r
773          leaf vnfc-type {\r
774             type string;\r
775          }\r
776          uses connection-point;\r
777          container vnfc-ports {\r
778             list vnfc-port {\r
779                key "vnfc-port-id";\r
780                leaf vnfc-port-id {\r
781                   description "Port(s) with a given network-role are assigned vnfc-port-id from series - 01, 02, 03 ...Example: VM with two ports with network-role =X and another 2 ports with network-role=Y vnfc-port-ids:01 - 1st port with network-role=X02 - 2nd port with network-role=X01 - 1st port with network-role=Y02 - 2nd port with network-role=Y";\r
782                   type string;\r
783                   mandatory true;\r
784                }\r
785                leaf common-sub-interface-role {\r
786                   description "If sub-interfaces have common interface role (network role)";\r
787                   type string;\r
788                }\r
789                container vnic-sub-interfaces {\r
790                   uses sub-interface-network-data;\r
791                }\r
792             }\r
793          }\r
794          list vnfc-subnet {\r
795             key "vnfc-subnet-role";\r
796             leaf vnfc-subnet-role {\r
797                description "Default value if subnet role is not defined.";\r
798                type string;\r
799                mandatory true;\r
800             }\r
801             list vnfc-ip-assignments {\r
802                key "vnfc-address-family";\r
803                leaf vnfc-address-family {\r
804                   description "indicates if this is IpV4 or IpV6";\r
805                   type enumeration {\r
806                      enum "ipv4";\r
807                      enum "ipv6";\r
808                   }\r
809                }\r
810                leaf vnfc-subnet-dhcp {\r
811                   description "Indicator to use DHCP for IP assignment. Unless dhcp=N, we wouldnt have any IPs here, since they would not be SDNC assigned ";\r
812                   type enumeration {\r
813                      enum "Y";\r
814                      enum "N";\r
815                   }\r
816                }\r
817                leaf vnfc-subnet-ip-count {\r
818                   description "The number of IP addresses to be assigned per vnfc for this subnet role";\r
819                   type uint8;\r
820                }\r
821                list vnfc-subnet-ip {\r
822                   key "vnfc-ip-address";\r
823                   leaf vnfc-ip-address {\r
824                      description "Either IpV4 IP or IpV6 IP addresses should be present";\r
825                      type inet:ip-address;\r
826                   }\r
827                   leaf vnfc-client-key {\r
828                      type string;\r
829                   }\r
830                   leaf ip-type {\r
831                      description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. ";\r
832                      type enumeration {\r
833                         enum "FIXED";\r
834                         enum "VIP";\r
835                      }\r
836                   }\r
837                }\r
838             }\r
839          }\r
840       }\r
841    }\r
842    grouping vm-network-data {\r
843       leaf network-role {\r
844          description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
845          type string;\r
846          mandatory true;\r
847       }\r
848       leaf network-role-tag {\r
849          type string;\r
850       }\r
851       container network-information-items {\r
852          list network-information-item {\r
853             key "ip-version";\r
854             leaf ip-version {\r
855                description "Use ipv4 or ipv6";\r
856                type string;\r
857             }\r
858             leaf use-dhcp {\r
859                description "Indicator to use DHCP on this network for this VM";\r
860                type enumeration {\r
861                   enum "Y";\r
862                   enum "N";\r
863                }\r
864             }\r
865             leaf ip-count {\r
866                description "The number of ip addresses to be assigned per vm for this network role";\r
867                type uint8;\r
868             }\r
869             container network-ips {\r
870                leaf-list network-ip {\r
871                   description "List of assigned ip addresses of type ip-version on a network";\r
872                   type string;\r
873                   ordered-by user;\r
874                }\r
875             }\r
876          }\r
877       }\r
878       container mac-addresses {\r
879          leaf-list mac-address {\r
880             description "List of network assignments for this vm-type";\r
881             type string;\r
882             ordered-by user;\r
883          }\r
884       }\r
885       container floating-ips {\r
886          leaf-list floating-ip-v4 {\r
887             description "Floating ipv4 for VMs of a given type on this network";\r
888             type inet:ip-address;\r
889             ordered-by user;\r
890          }\r
891          leaf-list floating-ip-v6 {\r
892             description "Floating ipv6 for VMs of a given type on this network";\r
893             type inet:ipv6-address;\r
894             ordered-by user;\r
895          }\r
896       }\r
897       container interface-route-prefixes {\r
898          leaf-list interface-route-prefix {\r
899             description "ordered-by: user";\r
900             type string;\r
901             ordered-by user;\r
902          }\r
903       }\r
904       container sriov-parameters {\r
905          container heat-vlan-filters {\r
906             leaf-list heat-vlan-filter {\r
907                type string;\r
908                ordered-by user;\r
909             }\r
910          }\r
911          container application-tags {\r
912             container c-tags {\r
913                leaf-list c-tag {\r
914                   type string;\r
915                   ordered-by user;\r
916                }\r
917             }\r
918             container s-tags {\r
919                leaf-list s-tag {\r
920                   type string;\r
921                   ordered-by user;\r
922                }\r
923             }\r
924          }\r
925       }\r
926       leaf is-trunked {\r
927          type boolean;\r
928       }\r
929       leaf segmentation-id {\r
930          type string;\r
931       }\r
932       container related-networks {\r
933          uses related-network;\r
934       }\r
935    }\r
936    grouping vf-module-level-oper-status {\r
937       container vf-module-level-oper-status {\r
938          uses oper-status-data;\r
939       }\r
940    }\r
941    grouping allotted-resource-info {\r
942       leaf allotted-resource-id {\r
943          type string;\r
944       }\r
945       leaf allotted-resource-type {\r
946          description "Not an enum, but expected values are contrail-route and security-zone.";\r
947          type string;\r
948       }\r
949       leaf allotted-resource-pointer {\r
950          description "Pointer to the allotted-resources topology";\r
951          type string;\r
952       }\r
953    }\r
954    grouping forwarding-path-operation-information {\r
955       uses sdnc-request-header;\r
956       uses request-information;\r
957       uses service-information;\r
958       uses forwarding-path-request-input;\r
959    }\r
960    grouping forwarding-path-request-input {\r
961       container forwarding-path-request-input {\r
962          list forwarding-paths {\r
963             key "forwarding-path-name";\r
964             leaf forwarding-path-name {\r
965                description "Forwarding-path-name from tosca-model. ";\r
966                type string;\r
967                mandatory true;\r
968             }\r
969             uses onap-model-information;\r
970          }\r
971       }\r
972    }\r
973    grouping forwarding-path-information {\r
974       leaf forwarding-path-name {\r
975          description "Fowarding-path name from TOSCA model, or name generated by SDNC";\r
976          type string;\r
977       }\r
978       leaf forwarding-path-type {\r
979          description "Based on MySQL Forwarding_Path tables path_type value from related TOSCA model";\r
980          type enumeration {\r
981             enum "VNF";\r
982             enum "Service";\r
983          }\r
984       }\r
985       uses onap-model-information;\r
986       container service-paths {\r
987          list service-path {\r
988             key "service-path-instance-id";\r
989             uses service-path-information;\r
990          }\r
991       }\r
992    }\r
993    grouping service-path-information {\r
994       leaf service-path-instance-id {\r
995          description "Service path instance ID generated by SDNC. Identifies a service-path-instance within a forwarding-path definition";\r
996          type string;\r
997       }\r
998       leaf service-path-instance-name {\r
999          description "A unique name generated by SDNC ( forwarding-path-name + service-path-instance-id )";\r
1000          type string;\r
1001       }\r
1002       leaf version {\r
1003          description "Only one version of the service-path-instance data will be available in MD-SAL.  version will be updated when the service-path-instance is reevaluated ";\r
1004          type string;\r
1005       }\r
1006       list service {\r
1007          key "service-instance-id";\r
1008          leaf service-instance-id {\r
1009             description "service-instance-id of each service-instance in the service-path-instance";\r
1010             type string;\r
1011          }\r
1012          leaf service-path-sequence-id {\r
1013             description "e.g. S1S2S3S5seq id=1  S1-S2seq id=2  S2S3seq id=3  S3S5Incremental integer value";\r
1014             type uint32;\r
1015          }\r
1016          container vnfs {\r
1017             list vnf {\r
1018                key "vnf-instance-id";\r
1019                uses vnf-path-information;\r
1020             }\r
1021          }\r
1022       }\r
1023    }\r
1024    grouping vnf-path-information {\r
1025       leaf vnf-instance-id {\r
1026          description "VNF instance ID in the path";\r
1027          type string;\r
1028       }\r
1029       leaf vnf-path-sequence-id {\r
1030          description "Sequence ID at the VNF instance levele.g.  e.g. V1V2V3V5V6seq id=1  V1-V2seq id=2  V2V3seq id=3  V3V5seq id=4  V5V6incremental integer value.";\r
1031          type uint32;\r
1032       }\r
1033       leaf left-network-name {\r
1034          description "Every VNF instance in the path is connected to one or two VNFs.";\r
1035          type string;\r
1036       }\r
1037       leaf left-network-role {\r
1038          type string;\r
1039       }\r
1040       leaf right-network-name {\r
1041          type string;\r
1042       }\r
1043       leaf right-network-role {\r
1044          type string;\r
1045       }\r
1046       container vf-module-instance {\r
1047          leaf vf-module-id {\r
1048             type string;\r
1049          }\r
1050          leaf vf-module-name {\r
1051             type string;\r
1052          }\r
1053       }\r
1054    }\r
1055    grouping forwarding-path-level-oper-status { \r
1056       container forwarding-path-level-oper-status { \r
1057          uses oper-status-data; \r
1058       } \r
1059    }\r
1060    grouping configuration-info {\r
1061       leaf configuration-id {\r
1062          type string;\r
1063       }\r
1064       leaf configuration-type {\r
1065          description "Not an enum, but expected values are port-mirror-configuration, , vlan-network-receptor";\r
1066          type string;\r
1067       }\r
1068       leaf configuration-sub-type {\r
1069          description "Not an enum, but expected values are vprobe and pprobe";\r
1070          type string;\r
1071       }\r
1072       leaf configuration-topology-link {\r
1073          description "Pointer to the configurations topology";\r
1074          type string;\r
1075       }\r
1076    }\r
1077    grouping vnfc-instance-group {\r
1078       list vnfc-instance-group {\r
1079          key "instance-group-role nfc-naming-code configuration-id";\r
1080          leaf instance-group-role {\r
1081             description "i.e.TSBC_VNFC_group";\r
1082             type string;\r
1083             mandatory true;\r
1084          }\r
1085          leaf nfc-naming-code {\r
1086             description "Set to nfc-naming-code from A&AI";\r
1087             type string;\r
1088             mandatory true;\r
1089          }\r
1090          leaf configuration-id {\r
1091             type string;\r
1092             mandatory true;\r
1093          }\r
1094          leaf group-type {\r
1095             description " port-mirror-source or  port-mirror-dest";\r
1096             type string;\r
1097          }\r
1098          uses vnfc-objects;\r
1099       }\r
1100    }\r
1101    grouping vnfc-objects {\r
1102       container vnfc-objects {\r
1103          list vnfc-object {\r
1104             key "vnfc-key";\r
1105             leaf vnfc-key {\r
1106                type string;\r
1107             }\r
1108             leaf vnfc-name {\r
1109                description "Vnfc name as key in A&AI";\r
1110                type string;\r
1111             }\r
1112             leaf vm-type {\r
1113                type string;\r
1114             }\r
1115             leaf vnf-id {\r
1116                type string;\r
1117             }\r
1118             leaf vserver-name {\r
1119                type string;\r
1120             }\r
1121             leaf vserver-id {\r
1122                type string;\r
1123             }\r
1124             container vnics {\r
1125                list vnic {\r
1126                   key "vnic-port-name";\r
1127                   leaf vnic-port-name {\r
1128                      type string;\r
1129                   }\r
1130                   leaf vnic-port-id {\r
1131                      type string;\r
1132                   }\r
1133                   container capacity {\r
1134                      leaf vnic-capacity {\r
1135                         type uint32;\r
1136                      }\r
1137                      leaf used-capacity {\r
1138                         description "Updated for destination port when source port is mapped/unmapped.";\r
1139                         type uint32;\r
1140                      }\r
1141                   }\r
1142                   container vnic-ip-addresses {\r
1143                      uses ip-addresses;\r
1144                   }\r
1145                }\r
1146             }\r
1147          }\r
1148       }\r
1149    }\r
1150    grouping vnfcs {\r
1151       container vnfcs {\r
1152          list vnfc {\r
1153             key "vnfc-name";\r
1154             leaf vnfc-name {\r
1155                description "Vnfc name as key in A&AI";\r
1156                type string;\r
1157             }\r
1158             leaf vserver-name {\r
1159                type string;\r
1160             }\r
1161             leaf vserver-id {\r
1162                type string;\r
1163             }\r
1164             uses vnics;\r
1165          }\r
1166       }\r
1167    }\r
1168    grouping vnics {\r
1169       container vnics {\r
1170          list vnic {\r
1171             key "vnic-port-name";\r
1172             leaf vnic-port-name {\r
1173                type string;\r
1174             }\r
1175             leaf vnic-port-id {\r
1176                type string;\r
1177             }\r
1178             uses sub-interfaces;\r
1179          }\r
1180       }\r
1181    }\r
1182    grouping sub-interfaces {\r
1183       container sub-interfaces {\r
1184          list sub-interface {\r
1185             key "sub-interface-port-name";\r
1186             leaf sub-interface-port-name {\r
1187                type string;\r
1188             }\r
1189             leaf sub-interface-port-id {\r
1190                type string;\r
1191             }\r
1192             container sub-interface-ip-addresses {\r
1193                uses ip-addresses;\r
1194             }\r
1195             uses vlan-tags;\r
1196             container sub-interface-network {\r
1197                leaf network-name {\r
1198                   type string;\r
1199                }\r
1200                leaf network-id {\r
1201                   type string;\r
1202                }\r
1203             }\r
1204             leaf sub-interface-status {\r
1205                description "NULL, unassigned, assigned";\r
1206                type string;\r
1207             }\r
1208          }\r
1209       }\r
1210    }\r
1211    grouping vlan-tags {\r
1212       container vlan-tags {\r
1213          leaf vlan-interface {\r
1214             description "A&AI Key";\r
1215             type string;\r
1216          }\r
1217          leaf upper-tag-id {\r
1218             type uint32;\r
1219          }\r
1220          leaf lower-tag-id {\r
1221             type uint32;\r
1222          }\r
1223          leaf is-private {\r
1224             type boolean;\r
1225          }\r
1226       }\r
1227    }\r
1228    grouping vlan-vnfc-instance-groups {\r
1229       container vlan-vnfc-instance-groups {\r
1230          list vlan-vnfc-instance-group {\r
1231             key "instance-group-id";\r
1232             leaf instance-group-id {\r
1233                description "A&AI ID";\r
1234                type string;\r
1235                mandatory true;\r
1236             }\r
1237             leaf instance-group-function {\r
1238                type string;\r
1239             }\r
1240             leaf vnf-id {\r
1241                type string;\r
1242             }\r
1243             container vnfcs {\r
1244                list vnfc {\r
1245                   key "vnfc-name";\r
1246                   leaf vnfc-name {\r
1247                      type string;\r
1248                   }\r
1249                   uses vnic-groups;\r
1250                }\r
1251             }\r
1252          }\r
1253       }\r
1254    }\r
1255    grouping vnic-groups {\r
1256       container vnic-groups {\r
1257          list vnic-group {\r
1258             key "vnic-interface-role";\r
1259             leaf vnic-interface-role {\r
1260                description "Same as network-role of network where vnic is connected";\r
1261                type string;\r
1262                mandatory true;\r
1263             }\r
1264             leaf network-instance-group-function {\r
1265                description "network-instance-Group-function for network collection where vnics with vnic-interface-role will connect";\r
1266                type string;\r
1267             } \r
1268             leaf vlan-assignment-policy-name {\r
1269                description "Policy name in ASDC model & policy definition in Policy Engine";\r
1270                type string;\r
1271             }\r
1272             leaf vlan-tag-index-next {\r
1273                description "Next tag to be assigned";\r
1274                type uint32;\r
1275             }\r
1276             container vlan-common-ip-addresses {\r
1277                uses ip-addresses;\r
1278             }\r
1279             container vlan-vnics {\r
1280                list vlan-vnic {\r
1281                   key "vnic-port-id";\r
1282                   leaf vnic-port-id {\r
1283                      type string;\r
1284                      mandatory true;\r
1285                   }\r
1286                   container vnic-sub-interfaces {\r
1287                      uses sub-interface-network-data;\r
1288                   }\r
1289                }\r
1290             }\r
1291          }\r
1292       }\r
1293    }\r
1294    grouping vnf-network-collection {\r
1295       list vnf-network-collection {\r
1296          key "network-instance-group-function";\r
1297          leaf network-instance-group-function {\r
1298             description "Network Instance-Group function in A&AI";\r
1299             type string;\r
1300             mandatory true;\r
1301          }\r
1302          leaf network-instance-group-id {\r
1303             description "Network Instance-Group id in A&AI";\r
1304             type string;\r
1305          }\r
1306          leaf network-collection-service-instance-id {\r
1307             description "Service-instance-id of service that created the network collection";\r
1308             type string;\r
1309          }\r
1310          leaf network-collection-customization-uuid {\r
1311             description "network-collection-customization-uuid stored in Network IsntanceGroup.customization-uuid in A&AI";\r
1312             type string;\r
1313          }\r
1314          container networks {\r
1315             list network {\r
1316                key "network-id";\r
1317                leaf network-id {\r
1318                   description "Index into network-topology-identifier structure";\r
1319                   type string;\r
1320                   mandatory true;\r
1321                }\r
1322                leaf neutron-network-id {\r
1323                   description "Neutron-network-id assigned by PO/RO";\r
1324                   type string;\r
1325                }\r
1326             }\r
1327          }\r
1328          container vnf-floating-ip {\r
1329             uses ip-addresses;\r
1330          }\r
1331       }\r
1332    }\r
1333    grouping vnf-sub-interface-group {\r
1334       list vnf-sub-interface-group {\r
1335          key "vnfc-instance-group-function network-instance-group-function parent-port-role";\r
1336          leaf vnfc-instance-group-function {\r
1337             type string;\r
1338             mandatory true;\r
1339          }\r
1340          leaf network-instance-group-function {\r
1341             type string;\r
1342             mandatory true;\r
1343          }\r
1344          leaf parent-port-role {\r
1345             type string;\r
1346             mandatory true;\r
1347          }\r
1348          uses vnfcs;\r
1349          container customer-bonding-requests {\r
1350             list customer-bonding-request {\r
1351                key "configuration-id";\r
1352                leaf configuration-id {\r
1353                   description "e.g. vlan network receptor configuration id";\r
1354                   type string;\r
1355                }\r
1356             }\r
1357          }\r
1358       }\r
1359    }\r
1360    grouping sub-interface-network-data {\r
1361       list sub-interface-network-data {\r
1362          key "network-id";\r
1363          leaf network-id {\r
1364             description "Subinterface network id (UUID in A&AI)";\r
1365             type string;\r
1366             mandatory true;\r
1367          }\r
1368          leaf neutron-network-id {\r
1369             description "Neutron network id assigned by PO/RP";\r
1370             type string;\r
1371          }\r
1372          leaf network-name {\r
1373             description "Subinterface network name";\r
1374             type uint32;\r
1375          }\r
1376          leaf vlan-tag-id {\r
1377             description "Vlan tag assigned to subinterface port";\r
1378             type uint32;\r
1379          }\r
1380          leaf network-role {\r
1381             description "e.g. untrusted ";\r
1382             type string;\r
1383          }\r
1384          leaf network-role-tag {\r
1385             description "Assuming HEAT template network role tag parameter - not used";\r
1386             type string;\r
1387          }\r
1388          container network-information-items {\r
1389             list network-information-item {\r
1390                key "ip-version";\r
1391                leaf ip-version {\r
1392                   description "Use ipv4 or ipv6";\r
1393                   type string;\r
1394                }\r
1395                leaf use-dhcp {\r
1396                   description "Indicator to use DHCP on this network for this VM - set to N for Vlan tagging";\r
1397                   type enumeration {\r
1398                      enum "Y";\r
1399                      enum "N";\r
1400                   }\r
1401                }\r
1402                leaf ip-count {\r
1403                   description "The number of ip addresses to be assigned per vm for this network role";\r
1404                   type uint8;\r
1405                }\r
1406                container network-ips {\r
1407                   leaf-list network-ip {\r
1408                      description "List of assigned ip addresses of type ip-version on a network.";\r
1409                      type inet:ip-address;\r
1410                      ordered-by user;\r
1411                   }\r
1412                }\r
1413             }\r
1414          }\r
1415          container floating-ips {\r
1416             leaf-list floating-ip-v4 {\r
1417                description "Floating ipv4 for VMs of a given type on this network";\r
1418                type inet:ip-address;\r
1419                ordered-by user;\r
1420             }\r
1421             leaf-list floating-ip-v6 {\r
1422                description "Floating ipv6 for VMs of a given type on this network";\r
1423                type inet:ipv6-address;\r
1424                ordered-by user;\r
1425             }\r
1426          }\r
1427       }\r
1428    }\r
1429    grouping vnf-cloud-param {\r
1430       leaf service-instance-id {\r
1431          type string;\r
1432       }\r
1433       leaf service-instance-name {\r
1434          type string;\r
1435       }\r
1436       list vnf {\r
1437          key "vnf-id";\r
1438          leaf vnf-id {\r
1439             type string;\r
1440          }\r
1441          leaf vnf-name {\r
1442             type string;\r
1443          }\r
1444          uses param;\r
1445          list vf-module {\r
1446             key "vf-module-id";\r
1447             leaf vf-module-id {\r
1448                type string;\r
1449             }\r
1450             uses param;\r
1451          }\r
1452       }\r
1453    }\r
1454    grouping vnf-get-resource-request-input-data {\r
1455       list vnf {\r
1456          key "vnf-id";\r
1457          leaf vnf-id {\r
1458             type string;\r
1459          }\r
1460          list vf-module {\r
1461             key "vf-module-id";\r
1462             leaf vf-module-id {\r
1463                type string;\r
1464             }\r
1465          }\r
1466       }\r
1467    }\r
1468    grouping license-information {\r
1469       container license-information {\r
1470          list entitlement-pool-list {\r
1471             key "entitlement-pool-uuid action";\r
1472             leaf entitlement-pool-uuid {\r
1473                type string;\r
1474                mandatory true;\r
1475             }\r
1476             leaf action {\r
1477                type string;\r
1478                mandatory true;\r
1479             }\r
1480             leaf entitlement-pool-invariant-uuid {\r
1481                type string;\r
1482             }\r
1483             leaf entitlement-uuid {\r
1484                description "assigned by ALTS";\r
1485                type string;\r
1486             }\r
1487          }\r
1488          list license-key-group-list {\r
1489             key "license-key-group-uuid action";\r
1490             leaf license-key-group-uuid {\r
1491                type string;\r
1492                mandatory true;\r
1493             }\r
1494             leaf action {\r
1495                type string;\r
1496                mandatory true;\r
1497             }\r
1498             leaf license-key-group-invariant-uuid {\r
1499                type string;\r
1500             }\r
1501             leaf license-key {\r
1502                description "assigned by ALTS";\r
1503                type string;\r
1504             }\r
1505             leaf license-uuid {\r
1506                description "assigned by ALTS";\r
1507                type string;\r
1508             }\r
1509          }\r
1510       }\r
1511    }\r
1512    grouping related-network {\r
1513       list related-network {\r
1514          key "network-id";\r
1515          leaf network-id {\r
1516             description "Key to l3-network object";\r
1517             type string;\r
1518          }\r
1519          leaf network-role {\r
1520             type string;\r
1521          }\r
1522          uses vlan-tags;\r
1523       }\r
1524    }\r
1525    grouping connection-point {\r
1526       container connection-point {\r
1527          leaf connection-point-id {\r
1528             description "Key to CP object in A&AI";\r
1529             type string;\r
1530          }\r
1531          leaf port-id {\r
1532             description "port-index when multiple CPs connect to same network. Default zero (0)";\r
1533             type string;\r
1534          }\r
1535          list vlan-data {\r
1536             key "vlan-uuid";\r
1537             leaf vlan-uuid {\r
1538                description "Key to vlan-tag uuid object in A&AI Generated by vlan mS";\r
1539                type string;\r
1540             }\r
1541             leaf vlan-tag-id {\r
1542                type string;\r
1543             }\r
1544             leaf vlan-tag-description {\r
1545                type string;\r
1546             }\r
1547             leaf vlan-role {\r
1548                description "Inner/Outer roles";\r
1549                type string;\r
1550             }\r
1551          }\r
1552       }\r
1553    }\r
1554    grouping aggregate-routes {\r
1555       list aggregate-routes {\r
1556          key "route-id";\r
1557          leaf route-id {\r
1558             description "Unique id";\r
1559             type string;\r
1560          }\r
1561          leaf start-address {\r
1562             type inet:ip-address;\r
1563          }\r
1564          leaf cidr-mask {\r
1565             type string;\r
1566          }\r
1567          leaf ip-version {\r
1568             description "Use values 4 or 6.";\r
1569             type string;\r
1570          }\r
1571       }\r
1572    }\r
1573    grouping pnf-information {\r
1574       container pnf-information {\r
1575          leaf pnf-name {\r
1576             description "Key for A&AI query";\r
1577             type string;\r
1578          }\r
1579          leaf pnf-type {\r
1580             type string;\r
1581          }\r
1582          uses onap-model-information;\r
1583       }\r
1584    }\r
1585    grouping contrail-route-operation-information {\r
1586       uses sdnc-request-header;\r
1587       uses request-information;\r
1588       uses service-information;\r
1589       uses allotted-resource-information;\r
1590       uses contrail-route-request-input;\r
1591    }\r
1592    grouping contrail-route-request-input {\r
1593       container contrail-route-request-input {\r
1594          container source-network {\r
1595             uses network-info;\r
1596          }\r
1597          container dest-network {\r
1598             uses network-info;\r
1599          }\r
1600          container contrail-applied-service-info {\r
1601             leaf service-instance-id {\r
1602                description "The service-instance-id of the service in which the resource(s) providing the applied-service are. For vIPR, this is the service-instance-id of the vIPR-ATM service in which the vIPR-ATM VNF Contrail service is the applied service. MSO will populate with the input data.";\r
1603                type string;\r
1604             }\r
1605             leaf contrail-fqdn {\r
1606                description "For future use by MSO on input; MSO not expected to populate in 1707. If MSO can identify the contrail-fqdn of the Contrail applied service for this contrail-route, then it would be specified here on input. Otherwise, SDN-C will look it up by the vIPR-ATM VNF in the service-instance-id of the contrail-applied-service-info grouing.";\r
1607                type string;\r
1608             }\r
1609          }\r
1610          container contrail-route-input-parameters {\r
1611             uses param;\r
1612          }\r
1613       }\r
1614    }\r
1615    grouping network-info {\r
1616       leaf network-id {\r
1617          type string;\r
1618       }\r
1619       leaf network-role {\r
1620          type string;\r
1621       }\r
1622    }\r
1623    grouping contrail-route-topology {\r
1624       container contrail-route-topology {\r
1625          uses allotted-resource-identifiers;\r
1626          uses onap-model-information;\r
1627          uses contrail-route-assignments;\r
1628          container contrail-route-parameters {\r
1629             uses param;\r
1630          }\r
1631       }\r
1632    }\r
1633    grouping contrail-route-assignments {\r
1634       container contrail-route-assignments {\r
1635          leaf fq-name {\r
1636             description "The Contrail fq-name of the network policy";\r
1637             type string;\r
1638          }\r
1639          leaf contrail-id {\r
1640             description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)";\r
1641             type string;\r
1642          }\r
1643          container source-network {\r
1644             uses network-info;\r
1645          }\r
1646          container dest-network {\r
1647             uses network-info;\r
1648          }\r
1649          container contrail-applied-service {\r
1650             leaf service-instance-id {\r
1651                description "The service-instance-id of the vnf from which the contrail applied service is coming";\r
1652                type string;\r
1653             }\r
1654             leaf vnf-id {\r
1655                description "The vnf representing the contrail applied service";\r
1656                type string;\r
1657             }\r
1658             leaf contrail-fqdn {\r
1659                description "This is the fq-name of the Contrail service instance through which the route is passing.";\r
1660                type string;\r
1661             }\r
1662          }\r
1663          leaf vlan-tag {\r
1664             description "Contrail-assigned vlan-tag to the vipr vm interface for this route.";\r
1665             type string;\r
1666          }\r
1667       }\r
1668    }\r
1669    grouping security-zone-operation-information {\r
1670       uses sdnc-request-header;\r
1671       uses request-information;\r
1672       uses service-information;\r
1673       uses allotted-resource-information;\r
1674       uses security-zone-request-input;\r
1675    }\r
1676    grouping security-zone-request-input {\r
1677       container security-zone-request-input {\r
1678          leaf vlan-tag {\r
1679             type string;\r
1680          }\r
1681          leaf trusted-network-role {\r
1682             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
1683             type string;\r
1684          }\r
1685          leaf untrusted-network-role {\r
1686             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
1687             type string;\r
1688          }\r
1689          container security-zone-input-parameters {\r
1690             uses param;\r
1691          }\r
1692       }\r
1693    }\r
1694    grouping security-zone-topology {\r
1695       container security-zone-topology {\r
1696          uses allotted-resource-identifiers;\r
1697          uses onap-model-information;\r
1698          uses security-zone-assignments;\r
1699          container security-zone-parameters {\r
1700             uses param;\r
1701          }\r
1702       }\r
1703    }\r
1704    grouping security-zone-assignments {\r
1705       container security-zone-assignments {\r
1706          leaf trusted-network-role {\r
1707             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
1708             type string;\r
1709          }\r
1710          leaf security-zone-name-trusted {\r
1711             type string;\r
1712          }\r
1713          leaf untrusted-network-role {\r
1714             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
1715             type string;\r
1716          }\r
1717          leaf security-zone-name-untrusted {\r
1718             type string;\r
1719          }\r
1720          leaf security-zone-service-instance-id {\r
1721             description "Will be the same as the parent-service-instance-id";\r
1722             type string;\r
1723          }\r
1724          leaf security-zone-vnf-id {\r
1725             description "Selected by SDNC from the security-zone-service-instance-id";\r
1726             type string;\r
1727          }\r
1728          leaf vlan-tag {\r
1729             type string;\r
1730          }\r
1731       }\r
1732    }\r
1733    grouping port-mirror-topology-operation-information {\r
1734       uses sdnc-request-header;\r
1735       uses request-information;\r
1736       uses service-information;\r
1737       uses configuration-information;\r
1738       uses port-mirror-configuration-request-input;\r
1739    }\r
1740    grouping port-mirror-configuration-request-input {\r
1741       container port-mirror-configuration-request-input {\r
1742          container source-port {\r
1743             uses port-info;\r
1744             leaf source-port-id {\r
1745                description "needed for srv-action=disable/enable";\r
1746                type string;\r
1747             }\r
1748          }\r
1749          container dest-port {\r
1750             uses port-info;\r
1751          }\r
1752          uses region-identifier;\r
1753          container port-mirror-configuration-input-parameters {\r
1754             uses param;\r
1755          }\r
1756       }\r
1757    }\r
1758    grouping port-info {\r
1759       leaf service-instance-id {\r
1760          description "May not be need.";\r
1761          type string;\r
1762       }\r
1763       uses pnf-information;\r
1764       uses vnf-information;\r
1765    }\r
1766    grouping port-mirror-configuration-topology {\r
1767       container port-mirror-configuration-topology {\r
1768          uses configuration-identifiers;\r
1769          uses onap-model-information;\r
1770          uses port-mirror-configuration-assignments;\r
1771          container port-mirror-configuration-parameters {\r
1772             uses param;\r
1773          }\r
1774       }\r
1775    }\r
1776    grouping port-mirror-configuration-assignments {\r
1777       container port-mirror-configuration-assignments {\r
1778          container contrail-vmi-params {\r
1779             uses param;\r
1780          }\r
1781          leaf vnics-group-id {\r
1782             type string;\r
1783          }\r
1784          leaf owning-entity {\r
1785             type string;\r
1786          }\r
1787          leaf tenant-context {\r
1788             description "From tenant object in A&AI";\r
1789             type string;\r
1790          }\r
1791          leaf tenant {\r
1792             description "Tenant name from A&AI for source VNF";\r
1793             type string;\r
1794          }\r
1795          leaf tenant-id {\r
1796             description "tenant-id from A&AI for source VNF";\r
1797             type string;\r
1798          }\r
1799          leaf dest-tenant {\r
1800             description "Tenant name from A&AI for destination VNF";\r
1801             type string;\r
1802          }\r
1803          leaf dest-tenant-id {\r
1804             description "tenant-id from A&AI for destination VNF";\r
1805             type string;\r
1806          }\r
1807          leaf cloud-region-id {\r
1808             type string;\r
1809          }\r
1810          leaf cloud-owner {\r
1811             type string;\r
1812          }\r
1813          leaf dest-network-fqdn {\r
1814             type string;\r
1815          }\r
1816          leaf source-network-fqdn {\r
1817             type string;\r
1818          }\r
1819          leaf source-capacity {\r
1820             description "Source port pps (packets per second) rating from tosca model";\r
1821             type uint32;\r
1822          }\r
1823          leaf source-vnf-id {\r
1824             type string;\r
1825          }\r
1826          leaf dest-vnf-id {\r
1827             description "For vProbe";\r
1828             type string;\r
1829          }\r
1830          leaf dest-pnf-name {\r
1831             description "For pProbe";\r
1832             type string;\r
1833          }\r
1834          leaf dest-p-interface {\r
1835             description "For pProbe; from policy manager";\r
1836             type string;\r
1837          }\r
1838          leaf dest-pnf-port-policy-name {\r
1839             description "For pProbe; from tosca model";\r
1840             type string;\r
1841          }\r
1842          leaf probe-type {\r
1843             description "vprobe or pprobe; derived from configuration-information.configuration-sub-type";\r
1844             type string;\r
1845          }\r
1846          leaf route-allotted-resource-id {\r
1847             description "For vProbe";\r
1848             type string;\r
1849          }\r
1850          container source-vnfc-instance-group-id {\r
1851             leaf service-instance-id {\r
1852                type string;\r
1853             }\r
1854             leaf nfc-naming-code {\r
1855                type string;\r
1856             }\r
1857             leaf instance-group-role {\r
1858                type string;\r
1859             }\r
1860             leaf configuration-id {\r
1861                type string;\r
1862             }\r
1863          }\r
1864          container dest-vnfc-instance-group-id {\r
1865             leaf service-instance-id {\r
1866                type string;\r
1867             }\r
1868             leaf nfc-naming-code {\r
1869                type string;\r
1870             }\r
1871             leaf instance-group-role {\r
1872                type string;\r
1873             }\r
1874             leaf configuration-id {\r
1875                type string;\r
1876             }\r
1877          }\r
1878          container source-to-dest-maps {\r
1879             list source-to-dest-map {\r
1880                key "source-port-id";\r
1881                leaf source-port-id {\r
1882                   type string;\r
1883                   mandatory true;\r
1884                }\r
1885                leaf source-port-name {\r
1886                   type string;\r
1887                }\r
1888                leaf source-vserver-id {\r
1889                   type string;\r
1890                }\r
1891                leaf dest-vserver-id {\r
1892                   type string;\r
1893                }\r
1894                leaf dest-port-id {\r
1895                   type string;\r
1896                }\r
1897                leaf dest-port-name {\r
1898                   type string;\r
1899                }\r
1900                leaf link-name {\r
1901                   type string;\r
1902                }\r
1903                container dest-ip-addresses {\r
1904                   uses ip-addresses;\r
1905                }\r
1906             }\r
1907          }\r
1908       }\r
1909    }\r
1910    grouping gc-topology-operation-information {\r
1911       uses sdnc-request-header;\r
1912       uses request-information;\r
1913       uses service-information;\r
1914       uses configuration-information;\r
1915       uses gc-request-input;\r
1916    }\r
1917    grouping gc-request-input {\r
1918       container gc-request-input {\r
1919          leaf vnf-id {\r
1920             type string;\r
1921          }\r
1922          leaf vf-module-id {\r
1923             description "This is mandatory in case of rebuild";\r
1924             type string;\r
1925          }\r
1926          container input-parameters {\r
1927             uses param;\r
1928          }\r
1929          leaf rebuild {\r
1930             description "Value will indicate what to rebuild";\r
1931             type string;\r
1932          }\r
1933          list configuration-ids {\r
1934             key "configuration-id";\r
1935             leaf configuration-id {\r
1936                type string;\r
1937             }\r
1938          }\r
1939       }\r
1940    }\r
1941    grouping vnr-parameters {\r
1942       container vnr-parameters {\r
1943          leaf vnf-id {\r
1944             type string;\r
1945          }\r
1946          leaf vf-module-id {\r
1947             description "This is mandatory in case of rebuild";\r
1948             type string;\r
1949          }\r
1950          leaf vnf-service-instance-id {\r
1951             type string;\r
1952          }\r
1953          leaf network-collection-service-instance-id {\r
1954             description "service instance id that created network-collection";\r
1955             type string;\r
1956          }\r
1957          leaf network-instance-group-id {\r
1958             type string;\r
1959          }\r
1960          leaf network-id {\r
1961             type string;\r
1962          }\r
1963          leaf vnfc-instance-group-function {\r
1964             type string;\r
1965          }\r
1966          leaf network-instance-group-function {\r
1967             type string;\r
1968          }\r
1969          leaf parent-port-role {\r
1970             type string;\r
1971          }\r
1972          leaf upper-tag-id {\r
1973             type uint32;\r
1974          }\r
1975          leaf lower-tag-id {\r
1976             type uint32;\r
1977          }\r
1978       }\r
1979    }\r
1980    grouping tunnelxconn-operation-information {\r
1981        uses sdnc-request-header;\r
1982        uses request-information;\r
1983        uses service-information;\r
1984        uses allotted-resource-information;\r
1985        uses tunnelxconn-request-input;\r
1986    }\r
1987    grouping tunnelxconn-request-input {\r
1988 \r
1989        container tunnelxconn-request-input {\r
1990            leaf brg-wan-mac-address {\r
1991                type string;\r
1992            }\r
1993        }\r
1994    }\r
1995    grouping tunnelxconn-topology {\r
1996        container tunnelxconn-topology {\r
1997            uses allotted-resource-identifiers;\r
1998            uses onap-model-information;\r
1999            uses tunnelxconn-assignments;\r
2000            container tunnelxconn-parameters {\r
2001                uses param;\r
2002            }\r
2003        }\r
2004    }\r
2005    grouping tunnelxconn-assignments {\r
2006            container tunnelxconn-assignments {\r
2007                leaf vni {\r
2008                    description "The Network Controller will assign a VNI value from the associated vGMUX VNI pool";\r
2009                    type string;\r
2010                }\r
2011                leaf vgmux-bearer-ip {\r
2012                    description "The Network Controller will look up the vgmux bearer ip from the vgmux vf module";\r
2013                    type inet:ip-address;\r
2014                }\r
2015                leaf vgmux-lan-ip {\r
2016                    description "The Network Controller will look up the vgmux lan ip from the vgmux vg module";\r
2017                    type inet:ip-address;\r
2018                }\r
2019                leaf vg-ip {\r
2020                    description "The Network Controller will assign the VG IP address from local inventory";\r
2021                    type inet:ip-address;\r
2022                }\r
2023            }\r
2024    }\r
2025    grouping brg-operation-information {\r
2026        uses sdnc-request-header;\r
2027        uses request-information;\r
2028        uses service-information;\r
2029        uses allotted-resource-information;\r
2030        uses brg-request-input;\r
2031    }\r
2032    grouping brg-request-input {\r
2033        container brg-request-input {\r
2034            leaf vgmux-bearer-ip {\r
2035                type inet:ip-address;\r
2036            }\r
2037            leaf vni {\r
2038                type string;\r
2039            }\r
2040            leaf brg-wan-mac-address {\r
2041                type string;\r
2042            }\r
2043        }\r
2044    }\r
2045    grouping brg-topology {\r
2046        container brg-topology {\r
2047            uses allotted-resource-identifiers;\r
2048            uses onap-model-information;\r
2049            uses brg-assignments;\r
2050            container brg-parameters {\r
2051                uses param;\r
2052            }\r
2053        }\r
2054    }\r
2055    grouping brg-assignments {\r
2056            container brg-assignments {\r
2057                leaf vbrg-wan-ip {\r
2058                    type inet:ip-address;\r
2059                }\r
2060            }\r
2061    }\r
2062    grouping connection-attachment-operation-information {\r
2063       uses sdnc-request-header;\r
2064       uses request-information;\r
2065       uses service-information;\r
2066       uses allotted-resource-information;\r
2067       uses connection-attachment-request-input;\r
2068    }\r
2069 \r
2070    grouping connection-attachment-request-input {\r
2071       container connection-attachment-request-input {\r
2072          uses param;\r
2073       }\r
2074    }\r
2075 \r
2076    grouping connection-attachment-topology {\r
2077       container connection-attachment-topology {\r
2078          uses allotted-resource-identifiers;\r
2079          uses onap-model-information;\r
2080          uses connection-attachment-assignments;\r
2081          container connection-attachment-parameters {\r
2082             uses param;\r
2083          }\r
2084       }\r
2085    }\r
2086 \r
2087    grouping connection-attachment-assignments {\r
2088       container connection-attachment-assignments {\r
2089       }\r
2090    }\r
2091 \r
2092    grouping vnf-vnr-rebuild-data {\r
2093       container vnf-vnr-rebuild-data {\r
2094          leaf vnf-id {\r
2095             type string;\r
2096          }\r
2097          leaf vnf-service-instance-id {\r
2098             type string;\r
2099          }\r
2100          list vnrs-data {\r
2101             key "configuration-id";\r
2102             leaf configuration-id {\r
2103                type string;\r
2104             }\r
2105             leaf network-instance-group-id {\r
2106                type string;\r
2107             }\r
2108             leaf network-id {\r
2109                type string;\r
2110             }\r
2111             leaf vnfc-instance-group-function {\r
2112                type string;\r
2113             }\r
2114             leaf network-instance-group-function {\r
2115                type string;\r
2116             }\r
2117             leaf parent-port-role {\r
2118                type string;\r
2119             }\r
2120             leaf upper-tag-id {\r
2121                type uint32;\r
2122             }\r
2123             leaf lower-tag-id {\r
2124                type uint32;\r
2125             }\r
2126          }\r
2127       }\r
2128    }\r
2129    grouping allotted-resource-information {\r
2130       container allotted-resource-information {\r
2131          leaf allotted-resource-id {\r
2132             type string;\r
2133          }\r
2134          leaf allotted-resource-type {\r
2135             description "Not an enum, but expected values are contrail-route and security-zone.";\r
2136             type string;\r
2137          }\r
2138          leaf parent-service-instance-id {\r
2139             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
2140             type string;\r
2141          }\r
2142          uses onap-model-information;\r
2143       }\r
2144    }\r
2145    grouping allotted-resource-identifiers {\r
2146       container allotted-resource-identifiers {\r
2147          leaf allotted-resource-id {\r
2148             type string;\r
2149          }\r
2150          leaf allotted-resource-name {\r
2151             description "For a contrail-route, the network policy name.";\r
2152             type string;\r
2153          }\r
2154          leaf allotted-resource-type {\r
2155             description "(Added in draft 32)Expected to be contrail-route or security-zone.";\r
2156             type string;\r
2157          }\r
2158          leaf consuming-service-instance-id {\r
2159             description "The service-instance-id of the consuming service of this allotted resource";\r
2160             type string;\r
2161          }\r
2162          leaf parent-service-instance-id {\r
2163             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
2164             type string;\r
2165          }\r
2166       }\r
2167    }\r
2168    grouping allotted-resource-oper-status {\r
2169       container allotted-resource-oper-status {\r
2170          uses oper-status-data;\r
2171       }\r
2172    }\r
2173    grouping allotted-resource-status {\r
2174       container allotted-resource-status {\r
2175          leaf response-code {\r
2176             type string;\r
2177          }\r
2178          leaf response-message {\r
2179             type string;\r
2180          }\r
2181          leaf final-indicator {\r
2182             type string;\r
2183          }\r
2184          leaf request-status {\r
2185             type enumeration {\r
2186                enum "synccomplete";\r
2187                enum "asynccomplete";\r
2188                enum "notifycomplete";\r
2189             }\r
2190          }\r
2191          leaf action {\r
2192             description "value would one of possible request-actions; match the list in service-data oper-status";\r
2193             type string;\r
2194          }\r
2195          leaf rpc-name {\r
2196             type string;\r
2197          }\r
2198          leaf rpc-action {\r
2199             description "this is the svc-action from the incoming request";\r
2200             type enumeration {\r
2201                enum "assign";\r
2202                enum "activate";\r
2203                enum "create";\r
2204                enum "delete";\r
2205                enum "unassign";\r
2206                enum "deactivate";\r
2207             }\r
2208          }\r
2209          leaf response-timestamp {\r
2210             type string;\r
2211          }\r
2212       }\r
2213    }\r
2214    grouping configuration-information {\r
2215       container configuration-information {\r
2216          leaf configuration-id {\r
2217             type string;\r
2218          }\r
2219          leaf configuration-name {\r
2220             type string;\r
2221          }\r
2222          leaf configuration-type {\r
2223             description "Not an enum, but expected values are port-mirror-configuration, vlan-network-receptor";\r
2224             type string;\r
2225          }\r
2226          leaf configuration-sub-type {\r
2227             description "e.g. vprobe and pprobe when configuration-type=port-mirror-configuration";\r
2228             type string;\r
2229          }\r
2230          uses onap-model-information;\r
2231       }\r
2232    }\r
2233    grouping configuration-identifiers {\r
2234       container configuration-identifiers {\r
2235          leaf configuration-id {\r
2236             type string;\r
2237          }\r
2238          leaf configuration-name {\r
2239             type string;\r
2240          }\r
2241          leaf configuration-type {\r
2242             description "Not an enum, but expected values are port-mirror-configuration.";\r
2243             type string;\r
2244          }\r
2245          leaf configuration-sub-type {\r
2246             description " vprobe and pprobe";\r
2247             type string;\r
2248          }\r
2249          leaf parent-service-instance-id {\r
2250             description "Service-instance-id of the parent service to which this resource belongs.";\r
2251             type string;\r
2252          }\r
2253       }\r
2254    }\r
2255    grouping configuration-oper-status {\r
2256       container configuration-oper-status {\r
2257          uses oper-status-data;\r
2258       }\r
2259    }\r
2260    grouping configuration-status {\r
2261       container configuration-status {\r
2262          leaf response-code {\r
2263             type string;\r
2264          }\r
2265          leaf response-message {\r
2266             type string;\r
2267          }\r
2268          leaf final-indicator {\r
2269             type string;\r
2270          }\r
2271          leaf request-status {\r
2272             type enumeration {\r
2273                enum "synccomplete";\r
2274                enum "asynccomplete";\r
2275                enum "notifycomplete";\r
2276             }\r
2277          }\r
2278          leaf action {\r
2279             description "value would one of possible request-actions; match the list in service-data oper-status";\r
2280             type string;\r
2281          }\r
2282          leaf rpc-name {\r
2283             type string;\r
2284          }\r
2285          leaf rpc-action {\r
2286             description "this is the svc-action from the incoming request";\r
2287             type enumeration {\r
2288                enum "assign";\r
2289                enum "activate";\r
2290                enum "create";\r
2291                enum "disable";\r
2292                enum "enable";\r
2293                enum "delete";\r
2294                enum "unassign";\r
2295                enum "deactivate";\r
2296             }\r
2297          }\r
2298          leaf response-timestamp {\r
2299             type string;\r
2300          }\r
2301       }\r
2302    }\r
2303    grouping topology-response-common {\r
2304       leaf svc-request-id {\r
2305          description "the request id from the request message for which this is the responseKeep as M";\r
2306          type string;\r
2307       }\r
2308       leaf response-code {\r
2309          description "a success code or an defined error codeKeep as M";\r
2310          type string;\r
2311       }\r
2312       leaf response-message {\r
2313          description "message included for error code";\r
2314          type string;\r
2315       }\r
2316       leaf ack-final-indicator {\r
2317          description "Expected to be Y or N.";\r
2318          type string;\r
2319       }\r
2320    }\r
2321    grouping sdnc-request-header {\r
2322       container sdnc-request-header {\r
2323          leaf svc-request-id {\r
2324             description "Uniquely generated by calling system (e.g. MSO or SDN-GP)";\r
2325             type string;\r
2326          }\r
2327          leaf svc-action {\r
2328             description "This is the rpcAction";\r
2329             type enumeration {\r
2330                enum "reserve";\r
2331                enum "assign";\r
2332                enum "activate";\r
2333                enum "delete";\r
2334                enum "changeassign";\r
2335                enum "changedelete";\r
2336                enum "rollback";\r
2337                enum "deactivate";\r
2338                enum "unassign";\r
2339                enum "create";\r
2340                enum "disable";\r
2341                enum "enable";\r
2342                enum "update";\r
2343                enum "reoptimize";\r
2344                enum "rebuild";\r
2345             }\r
2346          }\r
2347          leaf svc-notification-url {\r
2348             description "Contains URL for asynchronous response";\r
2349             type string;\r
2350          }\r
2351       }\r
2352    }\r
2353    grouping request-information {\r
2354       container request-information {\r
2355          leaf request-id {\r
2356             description "Request ID generated upstream of MSO";\r
2357             type string;\r
2358          }\r
2359          leaf request-action {\r
2360             description "still need to work Disconnect";\r
2361             type enumeration {\r
2362                enum "CreateNetworkInstance";\r
2363                enum "ActivateNetworkInstance";\r
2364                enum "DeActivateNetworkInstance";\r
2365                enum "CreateServiceInstance";\r
2366                enum "DeleteServiceInstance";\r
2367                enum "DeleteNetworkInstance";\r
2368                enum "CreateVnfInstance";\r
2369                enum "ActivateVnfInstance";\r
2370                enum "DeleteVnfInstance";\r
2371                enum "CreateVfModuleInstance";\r
2372                enum "ActivateVfModuleInstance";\r
2373                enum "DeleteVfModuleInstance";\r
2374                enum "CreateContrailRouteInstance";\r
2375                enum "DeleteContrailRouteInstance";\r
2376                enum "CreateSecurityZoneInstance";\r
2377                enum "DeleteSecurityZoneInstance";\r
2378                enum "ActivateDCINetworkInstance";\r
2379                enum "DeActivateDCINetworkInstance";\r
2380                enum "CreateTunnelXConnInstance";\r
2381                enum "DeleteTunnelXConnInstance";\r
2382                enum "CreateBRGInstance";\r
2383                enum "DeleteBRGInstance";\r
2384                enum "CreateSOTNConnectivityInstance";\r
2385                enum "ActivateSOTNConnectivityInstance";\r
2386                enum "DeactivateSOTNConnectivityInstance";\r
2387                enum "DeleteSOTNConnectivityInstance";\r
2388                enum "CreateSOTNAttachmentInstance";\r
2389                enum "ActivateSOTNAttachmentInstance";\r
2390                enum "DeactivateSOTNAttachmentInstance";\r
2391                enum "DeleteSOTNAttachmentInstance";\r
2392                enum "CreateSiteInstance";\r
2393                enum "ActivateSiteInstance";\r
2394                enum "DeactivateSiteInstance";\r
2395                enum "DeleteSiteInstance";\r
2396                enum "CreatePortMirrorConfigurationInstance";\r
2397                enum "DeletePortMirrorConfigurationInstance";\r
2398                enum "ChangePortMirrorConfigurationInstance";\r
2399                enum "CreateGenericConfigurationInstance";\r
2400                enum "RebuildGenericConfigurationInstance";\r
2401                enum "DeleteGenericConfigurationInstance";\r
2402                enum "PreloadVfModuleRequest";\r
2403                enum "DeletePreloadVfModuleRequest";\r
2404                enum "PreloadNetworkRequest";\r
2405                enum "DeletePreloadNetworkRequest";\r
2406                enum "CreateForwardingPathInstance";\r
2407                enum "DeleteForwardingPathInstance";\r
2408                enum "UpdateForwardingPathInstance";\r
2409                enum "CreateSDWANDeviceInstance";\r
2410                enum "ActivateSDWANDeviceInstance";\r
2411                enum "DeactivateSDWANDeviceInstance";\r
2412                enum "DeleteSDWANDeviceInstance";\r
2413                enum "CreateSDWANPortInstance";\r
2414                enum "ActivateSDWANPortInstance";\r
2415                enum "DeactivateSDWANPortInstance";\r
2416                enum "DeleteSDWANPortInstance";\r
2417                enum "ReoptimizeSOTNInstance";\r
2418                enum "CreateSDWANLanPortInstance";\r
2419                enum "ActivateSDWANLanPortInstance";\r
2420                enum "DeactivateSDWANLanPortInstance";\r
2421                enum "DeleteSDWANLanPortInstance";\r
2422                enum "CreateSDWANVpnInstance";\r
2423                enum "ActivateSDWANVpnInstance";\r
2424                enum "DeactivateSDWANVpnInstance";\r
2425                enum "DeleteSDWANVpnInstance";\r
2426                enum "CreateSDWANSiteInstance";\r
2427                enum "ActivateSDWANSiteInstance";\r
2428                enum "DeactivateSDWANSiteInstance";\r
2429                enum "DeleteSDWANSiteInstance";\r
2430                enum "SdwanBandwidthChange";\r
2431             }\r
2432          }\r
2433          leaf source {\r
2434             type string;\r
2435          }\r
2436          leaf notification-url {\r
2437             type string;\r
2438          }\r
2439          leaf order-number {\r
2440             type string;\r
2441          }\r
2442          leaf order-version {\r
2443             type string;\r
2444          }\r
2445       }\r
2446    }\r
2447    grouping service-information {\r
2448       container service-information {\r
2449          leaf service-id {\r
2450             description "This maps to the product-family-id in A&AI";\r
2451             type string;\r
2452          }\r
2453          leaf subscription-service-type {\r
2454             description "used to reference a&ai subscription-service-type. For example, we show as vIPR-ATM in example.";\r
2455             type string;\r
2456          }\r
2457          uses onap-model-information;\r
2458          leaf service-instance-id {\r
2459             type string;\r
2460          }\r
2461          leaf global-customer-id {\r
2462             description "need for put of data to AnAI (MSO provides)";\r
2463             type string;\r
2464          }\r
2465          leaf subscriber-name {\r
2466             description "Would not be expected for vIPR-ATM or mobility services.";\r
2467             type string;\r
2468          }\r
2469       }\r
2470    }\r
2471    grouping onap-model-information {\r
2472       container onap-model-information {\r
2473          leaf model-invariant-uuid {\r
2474             description "identifies the invariant uuid for this service or resource";\r
2475             type string;\r
2476          }\r
2477          leaf model-customization-uuid {\r
2478             description "customized resource for use within a given service.Would not be present at the service level but would be present for the resource level";\r
2479             type string;\r
2480          }\r
2481          leaf model-uuid {\r
2482             description "identifies the uuid for this service or resource, which is version specific";\r
2483             type string;\r
2484          }\r
2485          leaf model-version {\r
2486             type string;\r
2487          }\r
2488          leaf model-name {\r
2489             type string;\r
2490          }\r
2491       }\r
2492    }\r
2493    grouping region-identifier {\r
2494       leaf tenant {\r
2495          type string;\r
2496       }\r
2497       leaf aic-cloud-region {\r
2498          description "The AIC cloud region which maps to contrail versions";\r
2499          type string;\r
2500       }\r
2501       leaf cloud-owner {\r
2502          description "The cloud owner provided by the caller";\r
2503          type string;\r
2504       }\r
2505       leaf aic-clli {\r
2506          description "Not expected to be used";\r
2507          type string;\r
2508       }\r
2509    }\r
2510    grouping param {\r
2511       list param {\r
2512          key "name";\r
2513          leaf name {\r
2514             type string;\r
2515          }\r
2516          leaf value {\r
2517             type string;\r
2518          }\r
2519          container resource-resolution-data {\r
2520             list resource-key {\r
2521                key "name";\r
2522                leaf name {\r
2523                   type string;\r
2524                }\r
2525                leaf value {\r
2526                   type string;\r
2527                }\r
2528             }\r
2529             leaf status {\r
2530                description "SUCCESS, FAILED, or PENDING - RA returned data as capability";\r
2531                type string;\r
2532             }\r
2533             leaf capability-name {\r
2534                description "Resource assignment resolution Capability name";\r
2535                type string;\r
2536             }\r
2537          }\r
2538       }\r
2539    }\r
2540    grouping ip-addresses {\r
2541       container ip-addresses {\r
2542          leaf ipv4-address {\r
2543             type inet:ip-address;\r
2544          }\r
2545          leaf ipv6-address {\r
2546             type inet:ip-address;\r
2547          }\r
2548          leaf vipv4-address {\r
2549             description "Virtual v4";\r
2550             type inet:ip-address;\r
2551          }\r
2552          leaf vipv6-address {\r
2553             description "Virtual v6";\r
2554             type inet:ip-address;\r
2555          }\r
2556       }\r
2557    }\r
2558    grouping instance-reference {\r
2559       leaf instance-id {\r
2560          type string;\r
2561       }\r
2562       leaf object-path {\r
2563          description "restconf retrieval path to this particular objectE.g. restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/service-topology/";\r
2564          type string;\r
2565       }\r
2566    }\r
2567    grouping oper-status-data {\r
2568       leaf order-status {\r
2569          description "TBD - do we need Request failed statuses? RequestFailed | InProgressTimeout";\r
2570          type enumeration {\r
2571             enum "Active";\r
2572             enum "PendingAssignment";\r
2573             enum "PendingCreate";\r
2574             enum "PendingUpdate";\r
2575             enum "PendingDelete";\r
2576             enum "Deleted";\r
2577             enum "Created";\r
2578          }\r
2579       }\r
2580       leaf last-rpc-action {\r
2581          type enumeration {\r
2582             enum "assign";\r
2583             enum "activate";\r
2584             enum "delete";\r
2585             enum "unassign";\r
2586             enum "deactivate";\r
2587             enum "create";\r
2588             enum "changeassign";\r
2589             enum "reoptimize";\r
2590          }\r
2591       }\r
2592       leaf last-action {\r
2593          description "should be list of possible request-actions";\r
2594          type enumeration {\r
2595             enum "CreateNetworkInstance";\r
2596             enum "ActivateNetworkInstance";\r
2597             enum "DeActivateNetworkInstance";\r
2598             enum "CreateServiceInstance";\r
2599             enum "DeleteServiceInstance";\r
2600             enum "DeleteNetworkInstance";\r
2601             enum "CreateVnfInstance";\r
2602             enum "ActivateVnfInstance";\r
2603             enum "DeleteVnfInstance";\r
2604             enum "CreateVfModuleInstance";\r
2605             enum "ActivateVfModuleInstance";\r
2606             enum "DeleteVfModuleInstance";\r
2607             enum "CreateContrailRouteInstance";\r
2608             enum "DeleteContrailRouteInstance";\r
2609             enum "CreateSecurityZoneInstance";\r
2610             enum "DeleteSecurityZoneInstance";\r
2611             enum "ActivateDCINetworkInstance";\r
2612             enum "DeActivateDCINetworkInstance";\r
2613             enum "CreateTunnelXConnInstance";\r
2614             enum "DeleteTunnelXConnInstance";\r
2615             enum "CreateBRGInstance";\r
2616             enum "DeleteBRGInstance";\r
2617             enum "CreateSOTNConnectivityInstance";\r
2618             enum "ActivateSOTNConnectivityInstance";\r
2619             enum "DeactivateSOTNConnectivityInstance";\r
2620             enum "DeleteSOTNConnectivityInstance";\r
2621             enum "CreateSOTNAttachmentInstance";\r
2622             enum "ActivateSOTNAttachmentInstance";\r
2623             enum "DeactivateSOTNAttachmentInstance";\r
2624             enum "DeleteSOTNAttachmentInstance";\r
2625             enum "CreateSiteInstance";\r
2626             enum "ActivateSiteInstance";\r
2627             enum "DeactivateSiteInstance";\r
2628             enum "DeleteSiteInstance";\r
2629             enum "CreatePortMirrorConfigurationInstance";\r
2630             enum "DeletePortMirrorConfigurationInstance";\r
2631             enum "ChangePortMirrorConfigurationInstance";\r
2632             enum "CreateGenericConfigurationInstance";\r
2633             enum "DeleteGenericConfigurationInstance";\r
2634             enum "PreloadVfModuleRequest";\r
2635             enum "DeletePreloadVfModuleRequest";\r
2636             enum "PreloadNetworkRequest";\r
2637             enum "DeletePreloadNetworkRequest";\r
2638             enum "CreateForwardingPathInstance";\r
2639             enum "DeleteForwardingPathInstance";\r
2640             enum "UpdateForwardingPathInstance";\r
2641             enum "CreateSDWANDeviceInstance";\r
2642             enum "ActivateSDWANDeviceInstance";\r
2643             enum "DeactivateSDWANDeviceInstance";\r
2644             enum "DeleteSDWANDeviceInstance";\r
2645             enum "CreateSDWANPortInstance";\r
2646             enum "ActivateSDWANPortInstance";\r
2647             enum "DeactivateSDWANPortInstance";\r
2648             enum "DeleteSDWANPortInstance";\r
2649             enum "ReoptimizeSOTNInstance";\r
2650             enum "CreateSDWANLanPortInstance";\r
2651             enum "ActivateSDWANLanPortInstance";\r
2652             enum "DeactivateSDWANLanPortInstance";\r
2653             enum "DeleteSDWANLanPortInstance";\r
2654             enum "CreateSDWANVpnInstance";\r
2655             enum "ActivateSDWANVpnInstance";\r
2656             enum "DeactivateSDWANVpnInstance";\r
2657             enum "DeleteSDWANVpnInstance";\r
2658             enum "CreateSDWANSiteInstance";\r
2659             enum "ActivateSDWANSiteInstance";\r
2660             enum "DeactivateSDWANSiteInstance";\r
2661             enum "DeleteSDWANSiteInstance";\r
2662             enum "SdwanBandwidthChange";\r
2663          }\r
2664       }\r
2665       leaf last-svc-request-id {\r
2666          description "Not currently populated in service data.";\r
2667          type string;\r
2668       }\r
2669       leaf last-order-status {\r
2670          type enumeration {\r
2671             enum "Active";\r
2672             enum "PendingAssignment";\r
2673             enum "PendingCreate";\r
2674             enum "PendingUpdate";\r
2675             enum "PendingDelete";\r
2676             enum "Deleted";\r
2677             enum "Created";\r
2678          }\r
2679       }\r
2680       leaf create-timestamp {\r
2681          description "Not currently populated in service data.";\r
2682          type string;\r
2683       }\r
2684       leaf modify-timestamp {\r
2685          type string;\r
2686       }\r
2687    }\r
2688    grouping service-response-information {\r
2689       container service-response-information {\r
2690          uses instance-reference;\r
2691       }\r
2692    }\r
2693    grouping network-response-information {\r
2694       container network-response-information {\r
2695          uses instance-reference;\r
2696       }\r
2697    }\r
2698    grouping vnf-response-information {\r
2699       container vnf-response-information {\r
2700          uses instance-reference;\r
2701       }\r
2702    }\r
2703    grouping vf-module-response-information {\r
2704       container vf-module-response-information {\r
2705          uses instance-reference;\r
2706       }\r
2707    }\r
2708    grouping contrail-route-response-information {\r
2709       container contrail-route-response-information {\r
2710          uses instance-reference;\r
2711       }\r
2712    }\r
2713    grouping security-zone-response-information {\r
2714       container security-zone-response-information {\r
2715          uses instance-reference;\r
2716       }\r
2717    }\r
2718    grouping getpathsegment-response-information {\r
2719       container getpathsegment-response-information {\r
2720          uses instance-reference;\r
2721       }\r
2722    }\r
2723    grouping port-mirror-response-information {\r
2724       container port-mirror-response-information {\r
2725          uses instance-reference;\r
2726       }\r
2727    }\r
2728    grouping gc-response-information {\r
2729       container gc-response-information {\r
2730          uses instance-reference;\r
2731       }\r
2732    }\r
2733    grouping tunnelxconn-response-information {\r
2734        container tunnelxconn-response-information {\r
2735            uses instance-reference;\r
2736        }\r
2737    }\r
2738    grouping brg-response-information {\r
2739        container brg-response-information {\r
2740            uses instance-reference;\r
2741        }\r
2742    }\r
2743    grouping connection-attachment-response-information {\r
2744       container connection-attachment-response-information {\r
2745          uses instance-reference;\r
2746       }\r
2747    }\r
2748    grouping preload-model-information {\r
2749       list preload-list {\r
2750          key "preload-id preload-type";\r
2751          leaf preload-id {\r
2752             description "vf-module-name or network name";\r
2753             type string;\r
2754             mandatory true;\r
2755          }\r
2756          leaf preload-type {\r
2757             description "network or vf-module";\r
2758             type string;\r
2759             mandatory true;\r
2760          }\r
2761          uses preload-data;\r
2762       }\r
2763    }\r
2764    grouping preload-data {\r
2765       container preload-data {\r
2766          uses preload-vf-module-topology-information;\r
2767          uses preload-network-topology-information;\r
2768          uses preload-oper-status;\r
2769       }\r
2770    }\r
2771    grouping preload-vf-module-topology-information {\r
2772       container preload-vf-module-topology-information {\r
2773          uses vnf-topology-identifier-structure;\r
2774          uses vnf-resource-assignments;\r
2775          uses vf-module-topology;\r
2776       }\r
2777    }\r
2778    grouping preload-network-topology-information {\r
2779       container preload-network-topology-information {\r
2780          uses network-topology-identifier-structure;\r
2781          uses subnets;\r
2782          uses vpn-bindings;\r
2783          uses network-policy;\r
2784          uses route-table-reference;\r
2785          uses host-routes;\r
2786          uses provider-network-information;\r
2787       }\r
2788    }\r
2789    grouping subnets {\r
2790       list subnets {\r
2791          key "start-address";\r
2792          leaf start-address {\r
2793             type inet:ip-address;\r
2794          }\r
2795          leaf gateway-address {\r
2796             type inet:ip-address;\r
2797          }\r
2798          leaf cidr-mask {\r
2799             type string;\r
2800          }\r
2801          leaf ip-version {\r
2802             type string;\r
2803          }\r
2804          leaf dhcp-enabled {\r
2805             type enumeration {\r
2806                enum "Y";\r
2807                enum "N";\r
2808             }\r
2809          }\r
2810          leaf dhcp-start-address {\r
2811             type string;\r
2812          }\r
2813          leaf dhcp-end-address {\r
2814             type string;\r
2815          }\r
2816          leaf addr-from-start {\r
2817             description "Default is N";\r
2818             type enumeration {\r
2819                enum "Y";\r
2820                enum "N";\r
2821             }\r
2822          }\r
2823          leaf subnet-name {\r
2824             type string;\r
2825          }\r
2826          leaf subnet-role {\r
2827             type string;\r
2828          }\r
2829          leaf subnet-sequence {\r
2830             type uint8;\r
2831          }\r
2832       }\r
2833    }\r
2834    grouping vpn-bindings {\r
2835       list vpn-bindings {\r
2836          key "vpn-binding-id";\r
2837          leaf vpn-binding-id {\r
2838             type string;\r
2839          }\r
2840          leaf vpn-name {\r
2841             type string;\r
2842          }\r
2843          leaf global-route-target {\r
2844             type string;\r
2845          }\r
2846          leaf route-target-role {\r
2847             type string;\r
2848          }\r
2849          leaf aic-zone {\r
2850             description "AIC Zone the route target associated with";\r
2851             type string;\r
2852          }\r
2853       }\r
2854    }\r
2855    grouping network-policy {\r
2856       list network-policy {\r
2857          key "network-policy-fqdn";\r
2858          leaf network-policy-fqdn {\r
2859             type string;\r
2860          }\r
2861          leaf network-policy-id {\r
2862             type string;\r
2863          }\r
2864       }\r
2865    }\r
2866    grouping route-table-reference {\r
2867       list route-table-reference {\r
2868          key "route-table-reference-fqdn";\r
2869          leaf route-table-reference-fqdn {\r
2870             type string;\r
2871             mandatory true;\r
2872          }\r
2873          leaf route-table-reference-id {\r
2874             type string;\r
2875          }\r
2876       }\r
2877    }\r
2878    grouping provider-network-information {\r
2879       leaf physical-network-name {\r
2880          type string;\r
2881       }\r
2882       leaf is-provider-network {\r
2883          type boolean;\r
2884       }\r
2885       leaf is-shared-network {\r
2886          type boolean;\r
2887       }\r
2888       leaf is-external-network { \r
2889          type boolean;\r
2890       }\r
2891    }\r
2892    grouping host-routes {\r
2893       list host-routes {\r
2894          key "route-prefix";\r
2895          leaf route-prefix {\r
2896             type string;\r
2897          }\r
2898          leaf next-hop {\r
2899             description "Could be ip-address or hostname or service-instance";\r
2900             type string;\r
2901          }\r
2902       }\r
2903    }\r
2904    grouping preload-oper-status {\r
2905       container preload-oper-status {\r
2906          leaf order-status {\r
2907             type enumeration {\r
2908                enum "Active";\r
2909                enum "PendingAssignment";\r
2910                enum "PendingCreate";\r
2911                enum "PendingUpdate";\r
2912                enum "PendingDelete";\r
2913                enum "Deleted";\r
2914             }\r
2915          }\r
2916          leaf last-action {\r
2917             type enumeration {\r
2918                enum "PreloadVfModuleRequest";\r
2919                enum "DeletePreloadVfModuleRequest";\r
2920                enum "PreloadNetworkRequest";\r
2921                enum "DeletePreloadNetworkRequest";\r
2922             }\r
2923          }\r
2924          leaf last-svc-request-id {\r
2925             type string;\r
2926          }\r
2927          leaf last-order-status {\r
2928             type enumeration {\r
2929                enum "Active";\r
2930                enum "PendingAssignment";\r
2931                enum "PendingCreate";\r
2932                enum "PendingUpdate";\r
2933                enum "PendingDelete";\r
2934                enum "Deleted";\r
2935             }\r
2936          }\r
2937          leaf create-timestamp {\r
2938             type string;\r
2939          }\r
2940          leaf modify-timestamp {\r
2941             type string;\r
2942          }\r
2943          leaf maintenance-indicator {\r
2944             type enumeration {\r
2945                enum "Y";\r
2946                enum "N";\r
2947             }\r
2948          }\r
2949       }\r
2950    }\r
2951    grouping preload-topology-response-body {\r
2952       leaf svc-request-id {\r
2953          type string;\r
2954       }\r
2955       leaf response-code {\r
2956          type string;\r
2957       }\r
2958       leaf response-message {\r
2959          type string;\r
2960       }\r
2961       leaf ack-final-indicator {\r
2962          type string;\r
2963       }\r
2964    }\r
2965    rpc generic-configuration-notification {\r
2966       input {\r
2967          uses sdnc-request-header;\r
2968          uses request-information;\r
2969          uses service-information;\r
2970          uses configuration-information;\r
2971          uses topology-response-common;\r
2972          leaf configuration-topology-link {\r
2973             description "Returns URL to generic-configuration-topology ";\r
2974             type string;\r
2975          }\r
2976          uses vnr-parameters;\r
2977          uses vnf-vnr-rebuild-data;\r
2978       }\r
2979    }\r
2980    container services {\r
2981       uses service-model-infrastructure;\r
2982    }\r
2983    container contrail-route-allotted-resources {\r
2984       list contrail-route-allotted-resource {\r
2985          key "allotted-resource-id";\r
2986          leaf allotted-resource-id {\r
2987             type string;\r
2988             mandatory true;\r
2989          }\r
2990          container allotted-resource-data {\r
2991             container allotted-resource-operation-information {\r
2992                uses contrail-route-operation-information;\r
2993             }\r
2994             uses contrail-route-topology;\r
2995             uses allotted-resource-oper-status;\r
2996          }\r
2997          uses allotted-resource-status;\r
2998       }\r
2999    }\r
3000    container security-zone-allotted-resources {\r
3001       list security-zone-allotted-resource {\r
3002          key "allotted-resource-id";\r
3003          leaf allotted-resource-id {\r
3004             type string;\r
3005             mandatory true;\r
3006          }\r
3007          container allotted-resource-data {\r
3008             container allotted-resource-operation-information {\r
3009                uses security-zone-operation-information;\r
3010             }\r
3011             uses security-zone-topology;\r
3012             container security-zone-parameters {\r
3013                uses param;\r
3014             }\r
3015             uses allotted-resource-oper-status;\r
3016          }\r
3017          uses allotted-resource-status;\r
3018       }\r
3019    }\r
3020    container tunnelxconn-allotted-resources {\r
3021        list tunnelxconn-allotted-resource {\r
3022            key "allotted-resource-id";\r
3023            leaf allotted-resource-id {\r
3024                type string;\r
3025                mandatory true;\r
3026            }\r
3027            container allotted-resource-data {\r
3028                container allotted-resource-operation-information {\r
3029                    uses tunnelxconn-operation-information;\r
3030                }\r
3031                uses tunnelxconn-topology;\r
3032                container tunnelxconn-parameters {\r
3033                    uses param;\r
3034                }\r
3035                uses allotted-resource-oper-status;\r
3036            }\r
3037            uses allotted-resource-status;\r
3038        }\r
3039    }\r
3040    container brg-allotted-resources {\r
3041        list brg-allotted-resource {\r
3042            key "allotted-resource-id";\r
3043            leaf allotted-resource-id {\r
3044                type string;\r
3045                mandatory true;\r
3046            }\r
3047            container allotted-resource-data {\r
3048                container allotted-resource-operation-information {\r
3049                    uses brg-operation-information;\r
3050                }\r
3051                uses brg-topology;\r
3052                container brg-parameters {\r
3053                    uses param;\r
3054                }\r
3055                uses allotted-resource-oper-status;\r
3056            }\r
3057            uses allotted-resource-status;\r
3058        }\r
3059    }\r
3060    container connection-attachment-allotted-resources {\r
3061       list connection-attachment-allotted-resource {\r
3062          key "allotted-resource-id";\r
3063          leaf allotted-resource-id {\r
3064             type string;\r
3065             mandatory true;\r
3066          }\r
3067          container allotted-resource-data {\r
3068             container allotted-resource-operation-information {\r
3069                uses connection-attachment-operation-information;\r
3070             }\r
3071             uses connection-attachment-topology;\r
3072             container connection-attachment-parameters {\r
3073                uses param;\r
3074             }\r
3075             uses allotted-resource-oper-status;\r
3076          }\r
3077          uses allotted-resource-status;\r
3078       }\r
3079    }\r
3080    container port-mirror-configurations {\r
3081       list port-mirror-configuration {\r
3082          key "configuration-id";\r
3083          leaf configuration-id {\r
3084             type string;\r
3085             mandatory true;\r
3086          }\r
3087          container configuration-data {\r
3088             container configuration-operation-information {\r
3089                uses port-mirror-topology-operation-information;\r
3090             }\r
3091             uses port-mirror-configuration-topology;\r
3092             uses configuration-oper-status;\r
3093          }\r
3094          uses configuration-status;\r
3095       }\r
3096    }\r
3097    container generic-configurations {\r
3098       list gc-configuration {\r
3099          key "configuration-id";\r
3100          leaf configuration-id {\r
3101             type string;\r
3102             mandatory true;\r
3103          }\r
3104          container configuration-data {\r
3105             container configuration-operation-information {\r
3106                uses gc-topology-operation-information;\r
3107             }\r
3108             uses configuration-oper-status;\r
3109          }\r
3110          uses configuration-status;\r
3111       }\r
3112    }\r
3113    rpc service-topology-operation {\r
3114       input {\r
3115          uses service-operation-information;\r
3116       }\r
3117       output {\r
3118          uses topology-response-common;\r
3119          uses service-response-information;\r
3120       }\r
3121    }\r
3122    rpc network-topology-operation {\r
3123       input {\r
3124          uses network-operation-information;\r
3125       }\r
3126       output {\r
3127          uses topology-response-common;\r
3128          uses network-response-information;\r
3129          uses service-response-information;\r
3130       }\r
3131    }\r
3132    rpc vnf-topology-operation {\r
3133       input {\r
3134          uses vnf-operation-information;\r
3135       }\r
3136       output {\r
3137          uses topology-response-common;\r
3138          uses vnf-response-information;\r
3139          uses service-response-information;\r
3140       }\r
3141    }\r
3142    rpc vf-module-topology-operation {\r
3143       input {\r
3144          uses vf-module-operation-information;\r
3145       }\r
3146       output {\r
3147          uses topology-response-common;\r
3148          uses vf-module-response-information;\r
3149          uses vnf-response-information;\r
3150          uses service-response-information;\r
3151       }\r
3152    }\r
3153    rpc contrail-route-topology-operation {\r
3154       input {\r
3155          uses contrail-route-operation-information;\r
3156       }\r
3157       output {\r
3158          uses topology-response-common;\r
3159          uses contrail-route-response-information;\r
3160          uses service-response-information;\r
3161       }\r
3162    }\r
3163    rpc security-zone-topology-operation {\r
3164       input {\r
3165          uses security-zone-operation-information;\r
3166       }\r
3167       output {\r
3168          uses topology-response-common;\r
3169          uses security-zone-response-information;\r
3170          uses service-response-information;\r
3171       }\r
3172    }\r
3173    rpc tunnelxconn-topology-operation {\r
3174        input {\r
3175            uses tunnelxconn-operation-information;\r
3176        }\r
3177        output {\r
3178            uses topology-response-common;\r
3179            uses tunnelxconn-response-information;\r
3180            uses service-response-information;\r
3181        }\r
3182    }\r
3183    rpc brg-topology-operation {\r
3184        input {\r
3185            uses brg-operation-information;\r
3186        }\r
3187        output {\r
3188            uses topology-response-common;\r
3189            uses brg-response-information;\r
3190            uses service-response-information;\r
3191        }\r
3192    }\r
3193    rpc policy-update-notify-operation {\r
3194       input {\r
3195          leaf policy-name {\r
3196             type string;\r
3197             mandatory true;\r
3198          }\r
3199          leaf version-id {\r
3200             description "Map JSON versionNo to version-id";\r
3201             type string;\r
3202             mandatory true;\r
3203          }\r
3204          leaf update-type {\r
3205             type string;\r
3206             mandatory true;\r
3207          }\r
3208       }\r
3209       output {\r
3210          leaf error-code {\r
3211             type string;\r
3212          }\r
3213          leaf error-msg {\r
3214             type string;\r
3215          }\r
3216       }\r
3217    }\r
3218    rpc getpathsegment-topology-operation {\r
3219       input {\r
3220          uses forwarding-path-operation-information;\r
3221       }\r
3222       output {\r
3223          uses topology-response-common;\r
3224          uses getpathsegment-response-information;\r
3225          uses service-response-information;\r
3226       }\r
3227    }\r
3228    rpc port-mirror-topology-operation {\r
3229       input {\r
3230          uses port-mirror-topology-operation-information;\r
3231       }\r
3232       output {\r
3233          uses topology-response-common;\r
3234          uses port-mirror-response-information;\r
3235          uses service-response-information;\r
3236       }\r
3237    }\r
3238    rpc generic-configuration-topology-operation {\r
3239       input {\r
3240          uses gc-topology-operation-information;\r
3241       }\r
3242       output {\r
3243          uses topology-response-common;\r
3244          uses gc-response-information;\r
3245          uses service-response-information;\r
3246       }\r
3247    }\r
3248    rpc vnf-get-resource-request {\r
3249       input {\r
3250          uses sdnc-request-header;\r
3251          uses request-information;\r
3252          uses service-information;\r
3253          uses vnf-get-resource-request-input-data;\r
3254       }\r
3255       output {\r
3256          container vnf-get-resource-response-information {\r
3257             uses vnf-cloud-param;\r
3258          }\r
3259       }\r
3260    }\r
3261    container preload-information {\r
3262       uses preload-model-information;\r
3263    }\r
3264    rpc preload-vf-module-topology-operation {\r
3265       input {\r
3266          uses sdnc-request-header;\r
3267          uses request-information;\r
3268          uses preload-vf-module-topology-information;\r
3269       }\r
3270       output {\r
3271          uses preload-topology-response-body;\r
3272       }\r
3273    }\r
3274    rpc preload-network-topology-operation {\r
3275       input {\r
3276          uses sdnc-request-header;\r
3277          uses request-information;\r
3278          uses preload-network-topology-information;\r
3279       }\r
3280       output {\r
3281          uses preload-topology-response-body;\r
3282       }\r
3283    }\r
3284 \r
3285    rpc connection-attachment-topology-operation {\r
3286        input {\r
3287            uses connection-attachment-operation-information;\r
3288        }\r
3289        output {\r
3290            uses topology-response-common;\r
3291            uses connection-attachment-response-information;\r
3292            uses service-response-information;\r
3293        }\r
3294    }\r
3295 \r
3296 } ////closes the module\r