1332887bcced199b59fb1fe0b8567c5032808171
[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       }\r
711    }\r
712    grouping vm-topology-data {\r
713       leaf vm-type {\r
714          type string;\r
715          mandatory true;\r
716       }\r
717       uses onap-model-information;\r
718       leaf nfc-naming-code {\r
719          description "used in vm naming(draft 29: changed from nfc-code)";\r
720          type string;\r
721       }\r
722       leaf vm-type-tag {\r
723          description "from tosca data on vfc";\r
724          type string;\r
725       }\r
726       leaf vm-count {\r
727          type uint8;\r
728       }\r
729       container vm-names {\r
730          leaf-list vm-name {\r
731             type string;\r
732             ordered-by user;\r
733          }\r
734          list vnfc-names {\r
735             key "vnfc-name";\r
736             leaf vnfc-name {\r
737                type string;\r
738             }\r
739             container vnfc-networks {\r
740                uses vnfc-network-data;\r
741             }\r
742          }\r
743       }\r
744       container vm-networks {\r
745          list vm-network {\r
746             key "network-role";\r
747             uses vm-network-data;\r
748          }\r
749       }\r
750    }\r
751    grouping vnfc-network-data {\r
752       list vnfc-network-data {\r
753          key "vnfc-network-role";\r
754          leaf vnfc-network-role {\r
755             type string;\r
756             mandatory true;\r
757          }\r
758          leaf vnfc-type {\r
759             type string;\r
760          }\r
761          uses connection-point;\r
762          container vnfc-ports {\r
763             list vnfc-port {\r
764                key "vnfc-port-id";\r
765                leaf vnfc-port-id {\r
766                   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
767                   type string;\r
768                   mandatory true;\r
769                }\r
770                leaf common-sub-interface-role {\r
771                   description "If sub-interfaces have common interface role (network role)";\r
772                   type string;\r
773                }\r
774                container vnic-sub-interfaces {\r
775                   uses sub-interface-network-data;\r
776                }\r
777             }\r
778          }\r
779          list vnfc-subnet {\r
780             key "vnfc-subnet-role";\r
781             leaf vnfc-subnet-role {\r
782                description "Default value if subnet role is not defined.";\r
783                type string;\r
784                mandatory true;\r
785             }\r
786             list vnfc-ip-assignments {\r
787                key "vnfc-address-family";\r
788                leaf vnfc-address-family {\r
789                   description "indicates if this is IpV4 or IpV6";\r
790                   type enumeration {\r
791                      enum "ipv4";\r
792                      enum "ipv6";\r
793                   }\r
794                }\r
795                leaf vnfc-subnet-dhcp {\r
796                   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
797                   type enumeration {\r
798                      enum "Y";\r
799                      enum "N";\r
800                   }\r
801                }\r
802                leaf vnfc-subnet-ip-count {\r
803                   description "The number of IP addresses to be assigned per vnfc for this subnet role";\r
804                   type uint8;\r
805                }\r
806                list vnfc-subnet-ip {\r
807                   key "vnfc-ip-address";\r
808                   leaf vnfc-ip-address {\r
809                      description "Either IpV4 IP or IpV6 IP addresses should be present";\r
810                      type inet:ip-address;\r
811                   }\r
812                   leaf vnfc-client-key {\r
813                      type string;\r
814                   }\r
815                   leaf ip-type {\r
816                      description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. ";\r
817                      type enumeration {\r
818                         enum "FIXED";\r
819                         enum "VIP";\r
820                      }\r
821                   }\r
822                }\r
823             }\r
824          }\r
825       }\r
826    }\r
827    grouping vm-network-data {\r
828       leaf network-role {\r
829          description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
830          type string;\r
831          mandatory true;\r
832       }\r
833       leaf network-role-tag {\r
834          type string;\r
835       }\r
836       container network-information-items {\r
837          list network-information-item {\r
838             key "ip-version";\r
839             leaf ip-version {\r
840                description "Use ipv4 or ipv6";\r
841                type string;\r
842             }\r
843             leaf use-dhcp {\r
844                description "Indicator to use DHCP on this network for this VM";\r
845                type enumeration {\r
846                   enum "Y";\r
847                   enum "N";\r
848                }\r
849             }\r
850             leaf ip-count {\r
851                description "The number of ip addresses to be assigned per vm for this network role";\r
852                type uint8;\r
853             }\r
854             container network-ips {\r
855                leaf-list network-ip {\r
856                   description "List of assigned ip addresses of type ip-version on a network";\r
857                   type string;\r
858                   ordered-by user;\r
859                }\r
860             }\r
861          }\r
862       }\r
863       container mac-addresses {\r
864          leaf-list mac-address {\r
865             description "List of network assignments for this vm-type";\r
866             type string;\r
867             ordered-by user;\r
868          }\r
869       }\r
870       container floating-ips {\r
871          leaf-list floating-ip-v4 {\r
872             description "Floating ipv4 for VMs of a given type on this network";\r
873             type inet:ip-address;\r
874             ordered-by user;\r
875          }\r
876          leaf-list floating-ip-v6 {\r
877             description "Floating ipv6 for VMs of a given type on this network";\r
878             type inet:ipv6-address;\r
879             ordered-by user;\r
880          }\r
881       }\r
882       container interface-route-prefixes {\r
883          leaf-list interface-route-prefix {\r
884             description "ordered-by: user";\r
885             type string;\r
886             ordered-by user;\r
887          }\r
888       }\r
889       container sriov-parameters {\r
890          container heat-vlan-filters {\r
891             leaf-list heat-vlan-filter {\r
892                type string;\r
893                ordered-by user;\r
894             }\r
895          }\r
896          container application-tags {\r
897             container c-tags {\r
898                leaf-list c-tag {\r
899                   type string;\r
900                   ordered-by user;\r
901                }\r
902             }\r
903             container s-tags {\r
904                leaf-list s-tag {\r
905                   type string;\r
906                   ordered-by user;\r
907                }\r
908             }\r
909          }\r
910       }\r
911       leaf is-trunked {\r
912          type boolean;\r
913       }\r
914       leaf segmentation-id {\r
915          type string;\r
916       }\r
917       container related-networks {\r
918          uses related-network;\r
919       }\r
920    }\r
921    grouping vf-module-level-oper-status {\r
922       container vf-module-level-oper-status {\r
923          uses oper-status-data;\r
924       }\r
925    }\r
926    grouping allotted-resource-info {\r
927       leaf allotted-resource-id {\r
928          type string;\r
929       }\r
930       leaf allotted-resource-type {\r
931          description "Not an enum, but expected values are contrail-route and security-zone.";\r
932          type string;\r
933       }\r
934       leaf allotted-resource-pointer {\r
935          description "Pointer to the allotted-resources topology";\r
936          type string;\r
937       }\r
938    }\r
939    grouping forwarding-path-operation-information {\r
940       uses sdnc-request-header;\r
941       uses request-information;\r
942       uses service-information;\r
943       uses forwarding-path-request-input;\r
944    }\r
945    grouping forwarding-path-request-input {\r
946       container forwarding-path-request-input {\r
947          list forwarding-paths {\r
948             key "forwarding-path-name";\r
949             leaf forwarding-path-name {\r
950                description "Forwarding-path-name from tosca-model. ";\r
951                type string;\r
952                mandatory true;\r
953             }\r
954             uses onap-model-information;\r
955          }\r
956       }\r
957    }\r
958    grouping forwarding-path-information {\r
959       leaf forwarding-path-name {\r
960          description "Fowarding-path name from TOSCA model, or name generated by SDNC";\r
961          type string;\r
962       }\r
963       leaf forwarding-path-type {\r
964          description "Based on MySQL Forwarding_Path tables path_type value from related TOSCA model";\r
965          type enumeration {\r
966             enum "VNF";\r
967             enum "Service";\r
968          }\r
969       }\r
970       uses onap-model-information;\r
971       container service-paths {\r
972          list service-path {\r
973             key "service-path-instance-id";\r
974             uses service-path-information;\r
975          }\r
976       }\r
977    }\r
978    grouping service-path-information {\r
979       leaf service-path-instance-id {\r
980          description "Service path instance ID generated by SDNC. Identifies a service-path-instance within a forwarding-path definition";\r
981          type string;\r
982       }\r
983       leaf service-path-instance-name {\r
984          description "A unique name generated by SDNC ( forwarding-path-name + service-path-instance-id )";\r
985          type string;\r
986       }\r
987       leaf version {\r
988          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
989          type string;\r
990       }\r
991       list service {\r
992          key "service-instance-id";\r
993          leaf service-instance-id {\r
994             description "service-instance-id of each service-instance in the service-path-instance";\r
995             type string;\r
996          }\r
997          leaf service-path-sequence-id {\r
998             description "e.g. S1S2S3S5seq id=1  S1-S2seq id=2  S2S3seq id=3  S3S5Incremental integer value";\r
999             type uint32;\r
1000          }\r
1001          container vnfs {\r
1002             list vnf {\r
1003                key "vnf-instance-id";\r
1004                uses vnf-path-information;\r
1005             }\r
1006          }\r
1007       }\r
1008    }\r
1009    grouping vnf-path-information {\r
1010       leaf vnf-instance-id {\r
1011          description "VNF instance ID in the path";\r
1012          type string;\r
1013       }\r
1014       leaf vnf-path-sequence-id {\r
1015          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
1016          type uint32;\r
1017       }\r
1018       leaf left-network-name {\r
1019          description "Every VNF instance in the path is connected to one or two VNFs.";\r
1020          type string;\r
1021       }\r
1022       leaf left-network-role {\r
1023          type string;\r
1024       }\r
1025       leaf right-network-name {\r
1026          type string;\r
1027       }\r
1028       leaf right-network-role {\r
1029          type string;\r
1030       }\r
1031       container vf-module-instance {\r
1032          leaf vf-module-id {\r
1033             type string;\r
1034          }\r
1035          leaf vf-module-name {\r
1036             type string;\r
1037          }\r
1038       }\r
1039    }\r
1040    grouping forwarding-path-level-oper-status { \r
1041       container forwarding-path-level-oper-status { \r
1042          uses oper-status-data; \r
1043       } \r
1044    }\r
1045    grouping configuration-info {\r
1046       leaf configuration-id {\r
1047          type string;\r
1048       }\r
1049       leaf configuration-type {\r
1050          description "Not an enum, but expected values are port-mirror-configuration, , vlan-network-receptor";\r
1051          type string;\r
1052       }\r
1053       leaf configuration-sub-type {\r
1054          description "Not an enum, but expected values are vprobe and pprobe";\r
1055          type string;\r
1056       }\r
1057       leaf configuration-topology-link {\r
1058          description "Pointer to the configurations topology";\r
1059          type string;\r
1060       }\r
1061    }\r
1062    grouping vnfc-instance-group {\r
1063       list vnfc-instance-group {\r
1064          key "instance-group-role nfc-naming-code configuration-id";\r
1065          leaf instance-group-role {\r
1066             description "i.e.TSBC_VNFC_group";\r
1067             type string;\r
1068             mandatory true;\r
1069          }\r
1070          leaf nfc-naming-code {\r
1071             description "Set to nfc-naming-code from A&AI";\r
1072             type string;\r
1073             mandatory true;\r
1074          }\r
1075          leaf configuration-id {\r
1076             type string;\r
1077             mandatory true;\r
1078          }\r
1079          leaf group-type {\r
1080             description " port-mirror-source or  port-mirror-dest";\r
1081             type string;\r
1082          }\r
1083          uses vnfc-objects;\r
1084       }\r
1085    }\r
1086    grouping vnfc-objects {\r
1087       container vnfc-objects {\r
1088          list vnfc-object {\r
1089             key "vnfc-key";\r
1090             leaf vnfc-key {\r
1091                type string;\r
1092             }\r
1093             leaf vnfc-name {\r
1094                description "Vnfc name as key in A&AI";\r
1095                type string;\r
1096             }\r
1097             leaf vm-type {\r
1098                type string;\r
1099             }\r
1100             leaf vnf-id {\r
1101                type string;\r
1102             }\r
1103             leaf vserver-name {\r
1104                type string;\r
1105             }\r
1106             leaf vserver-id {\r
1107                type string;\r
1108             }\r
1109             container vnics {\r
1110                list vnic {\r
1111                   key "vnic-port-name";\r
1112                   leaf vnic-port-name {\r
1113                      type string;\r
1114                   }\r
1115                   leaf vnic-port-id {\r
1116                      type string;\r
1117                   }\r
1118                   container capacity {\r
1119                      leaf vnic-capacity {\r
1120                         type uint32;\r
1121                      }\r
1122                      leaf used-capacity {\r
1123                         description "Updated for destination port when source port is mapped/unmapped.";\r
1124                         type uint32;\r
1125                      }\r
1126                   }\r
1127                   container vnic-ip-addresses {\r
1128                      uses ip-addresses;\r
1129                   }\r
1130                }\r
1131             }\r
1132          }\r
1133       }\r
1134    }\r
1135    grouping vnfcs {\r
1136       container vnfcs {\r
1137          list vnfc {\r
1138             key "vnfc-name";\r
1139             leaf vnfc-name {\r
1140                description "Vnfc name as key in A&AI";\r
1141                type string;\r
1142             }\r
1143             leaf vserver-name {\r
1144                type string;\r
1145             }\r
1146             leaf vserver-id {\r
1147                type string;\r
1148             }\r
1149             uses vnics;\r
1150          }\r
1151       }\r
1152    }\r
1153    grouping vnics {\r
1154       container vnics {\r
1155          list vnic {\r
1156             key "vnic-port-name";\r
1157             leaf vnic-port-name {\r
1158                type string;\r
1159             }\r
1160             leaf vnic-port-id {\r
1161                type string;\r
1162             }\r
1163             uses sub-interfaces;\r
1164          }\r
1165       }\r
1166    }\r
1167    grouping sub-interfaces {\r
1168       container sub-interfaces {\r
1169          list sub-interface {\r
1170             key "sub-interface-port-name";\r
1171             leaf sub-interface-port-name {\r
1172                type string;\r
1173             }\r
1174             leaf sub-interface-port-id {\r
1175                type string;\r
1176             }\r
1177             container sub-interface-ip-addresses {\r
1178                uses ip-addresses;\r
1179             }\r
1180             uses vlan-tags;\r
1181             container sub-interface-network {\r
1182                leaf network-name {\r
1183                   type string;\r
1184                }\r
1185                leaf network-id {\r
1186                   type string;\r
1187                }\r
1188             }\r
1189             leaf sub-interface-status {\r
1190                description "NULL, unassigned, assigned";\r
1191                type string;\r
1192             }\r
1193          }\r
1194       }\r
1195    }\r
1196    grouping vlan-tags {\r
1197       container vlan-tags {\r
1198          leaf vlan-interface {\r
1199             description "A&AI Key";\r
1200             type string;\r
1201          }\r
1202          leaf upper-tag-id {\r
1203             type uint32;\r
1204          }\r
1205          leaf lower-tag-id {\r
1206             type uint32;\r
1207          }\r
1208          leaf is-private {\r
1209             type boolean;\r
1210          }\r
1211       }\r
1212    }\r
1213    grouping vlan-vnfc-instance-groups {\r
1214       container vlan-vnfc-instance-groups {\r
1215          list vlan-vnfc-instance-group {\r
1216             key "instance-group-id";\r
1217             leaf instance-group-id {\r
1218                description "A&AI ID";\r
1219                type string;\r
1220                mandatory true;\r
1221             }\r
1222             leaf instance-group-function {\r
1223                type string;\r
1224             }\r
1225             leaf vnf-id {\r
1226                type string;\r
1227             }\r
1228             container vnfcs {\r
1229                list vnfc {\r
1230                   key "vnfc-name";\r
1231                   leaf vnfc-name {\r
1232                      type string;\r
1233                   }\r
1234                   uses vnic-groups;\r
1235                }\r
1236             }\r
1237          }\r
1238       }\r
1239    }\r
1240    grouping vnic-groups {\r
1241       container vnic-groups {\r
1242          list vnic-group {\r
1243             key "vnic-interface-role";\r
1244             leaf vnic-interface-role {\r
1245                description "Same as network-role of network where vnic is connected";\r
1246                type string;\r
1247                mandatory true;\r
1248             }\r
1249             leaf network-instance-group-function {\r
1250                description "network-instance-Group-function for network collection where vnics with vnic-interface-role will connect";\r
1251                type string;\r
1252             } \r
1253             leaf vlan-assignment-policy-name {\r
1254                description "Policy name in ASDC model & policy definition in Policy Engine";\r
1255                type string;\r
1256             }\r
1257             leaf vlan-tag-index-next {\r
1258                description "Next tag to be assigned";\r
1259                type uint32;\r
1260             }\r
1261             container vlan-common-ip-addresses {\r
1262                uses ip-addresses;\r
1263             }\r
1264             container vlan-vnics {\r
1265                list vlan-vnic {\r
1266                   key "vnic-port-id";\r
1267                   leaf vnic-port-id {\r
1268                      type string;\r
1269                      mandatory true;\r
1270                   }\r
1271                   container vnic-sub-interfaces {\r
1272                      uses sub-interface-network-data;\r
1273                   }\r
1274                }\r
1275             }\r
1276          }\r
1277       }\r
1278    }\r
1279    grouping vnf-network-collection {\r
1280       list vnf-network-collection {\r
1281          key "network-instance-group-function";\r
1282          leaf network-instance-group-function {\r
1283             description "Network Instance-Group function in A&AI";\r
1284             type string;\r
1285             mandatory true;\r
1286          }\r
1287          leaf network-instance-group-id {\r
1288             description "Network Instance-Group id in A&AI";\r
1289             type string;\r
1290          }\r
1291          leaf network-collection-service-instance-id {\r
1292             description "Service-instance-id of service that created the network collection";\r
1293             type string;\r
1294          }\r
1295          leaf network-collection-customization-uuid {\r
1296             description "network-collection-customization-uuid stored in Network IsntanceGroup.customization-uuid in A&AI";\r
1297             type string;\r
1298          }\r
1299          container networks {\r
1300             list network {\r
1301                key "network-id";\r
1302                leaf network-id {\r
1303                   description "Index into network-topology-identifier structure";\r
1304                   type string;\r
1305                   mandatory true;\r
1306                }\r
1307                leaf neutron-network-id {\r
1308                   description "Neutron-network-id assigned by PO/RO";\r
1309                   type string;\r
1310                }\r
1311             }\r
1312          }\r
1313          container vnf-floating-ip {\r
1314             uses ip-addresses;\r
1315          }\r
1316       }\r
1317    }\r
1318    grouping vnf-sub-interface-group {\r
1319       list vnf-sub-interface-group {\r
1320          key "vnfc-instance-group-function network-instance-group-function parent-port-role";\r
1321          leaf vnfc-instance-group-function {\r
1322             type string;\r
1323             mandatory true;\r
1324          }\r
1325          leaf network-instance-group-function {\r
1326             type string;\r
1327             mandatory true;\r
1328          }\r
1329          leaf parent-port-role {\r
1330             type string;\r
1331             mandatory true;\r
1332          }\r
1333          uses vnfcs;\r
1334          container customer-bonding-requests {\r
1335             list customer-bonding-request {\r
1336                key "configuration-id";\r
1337                leaf configuration-id {\r
1338                   description "e.g. vlan network receptor configuration id";\r
1339                   type string;\r
1340                }\r
1341             }\r
1342          }\r
1343       }\r
1344    }\r
1345    grouping sub-interface-network-data {\r
1346       list sub-interface-network-data {\r
1347          key "network-id";\r
1348          leaf network-id {\r
1349             description "Subinterface network id (UUID in A&AI)";\r
1350             type string;\r
1351             mandatory true;\r
1352          }\r
1353          leaf neutron-network-id {\r
1354             description "Neutron network id assigned by PO/RP";\r
1355             type string;\r
1356          }\r
1357          leaf network-name {\r
1358             description "Subinterface network name";\r
1359             type uint32;\r
1360          }\r
1361          leaf vlan-tag-id {\r
1362             description "Vlan tag assigned to subinterface port";\r
1363             type uint32;\r
1364          }\r
1365          leaf network-role {\r
1366             description "e.g. untrusted ";\r
1367             type string;\r
1368          }\r
1369          leaf network-role-tag {\r
1370             description "Assuming HEAT template network role tag parameter - not used";\r
1371             type string;\r
1372          }\r
1373          container network-information-items {\r
1374             list network-information-item {\r
1375                key "ip-version";\r
1376                leaf ip-version {\r
1377                   description "Use ipv4 or ipv6";\r
1378                   type string;\r
1379                }\r
1380                leaf use-dhcp {\r
1381                   description "Indicator to use DHCP on this network for this VM - set to N for Vlan tagging";\r
1382                   type enumeration {\r
1383                      enum "Y";\r
1384                      enum "N";\r
1385                   }\r
1386                }\r
1387                leaf ip-count {\r
1388                   description "The number of ip addresses to be assigned per vm for this network role";\r
1389                   type uint8;\r
1390                }\r
1391                container network-ips {\r
1392                   leaf-list network-ip {\r
1393                      description "List of assigned ip addresses of type ip-version on a network.";\r
1394                      type inet:ip-address;\r
1395                      ordered-by user;\r
1396                   }\r
1397                }\r
1398             }\r
1399          }\r
1400          container floating-ips {\r
1401             leaf-list floating-ip-v4 {\r
1402                description "Floating ipv4 for VMs of a given type on this network";\r
1403                type inet:ip-address;\r
1404                ordered-by user;\r
1405             }\r
1406             leaf-list floating-ip-v6 {\r
1407                description "Floating ipv6 for VMs of a given type on this network";\r
1408                type inet:ipv6-address;\r
1409                ordered-by user;\r
1410             }\r
1411          }\r
1412       }\r
1413    }\r
1414    grouping vnf-cloud-param {\r
1415       leaf service-instance-id {\r
1416          type string;\r
1417       }\r
1418       leaf service-instance-name {\r
1419          type string;\r
1420       }\r
1421       list vnf {\r
1422          key "vnf-id";\r
1423          leaf vnf-id {\r
1424             type string;\r
1425          }\r
1426          leaf vnf-name {\r
1427             type string;\r
1428          }\r
1429          uses param;\r
1430          list vf-module {\r
1431             key "vf-module-id";\r
1432             leaf vf-module-id {\r
1433                type string;\r
1434             }\r
1435             uses param;\r
1436          }\r
1437       }\r
1438    }\r
1439    grouping vnf-get-resource-request-input-data {\r
1440       list vnf {\r
1441          key "vnf-id";\r
1442          leaf vnf-id {\r
1443             type string;\r
1444          }\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          }\r
1451       }\r
1452    }\r
1453    grouping license-information {\r
1454       container license-information {\r
1455          list entitlement-pool-list {\r
1456             key "entitlement-pool-uuid action";\r
1457             leaf entitlement-pool-uuid {\r
1458                type string;\r
1459                mandatory true;\r
1460             }\r
1461             leaf action {\r
1462                type string;\r
1463                mandatory true;\r
1464             }\r
1465             leaf entitlement-pool-invariant-uuid {\r
1466                type string;\r
1467             }\r
1468             leaf entitlement-uuid {\r
1469                description "assigned by ALTS";\r
1470                type string;\r
1471             }\r
1472          }\r
1473          list license-key-group-list {\r
1474             key "license-key-group-uuid action";\r
1475             leaf license-key-group-uuid {\r
1476                type string;\r
1477                mandatory true;\r
1478             }\r
1479             leaf action {\r
1480                type string;\r
1481                mandatory true;\r
1482             }\r
1483             leaf license-key-group-invariant-uuid {\r
1484                type string;\r
1485             }\r
1486             leaf license-key {\r
1487                description "assigned by ALTS";\r
1488                type string;\r
1489             }\r
1490             leaf license-uuid {\r
1491                description "assigned by ALTS";\r
1492                type string;\r
1493             }\r
1494          }\r
1495       }\r
1496    }\r
1497    grouping related-network {\r
1498       list related-network {\r
1499          key "network-id";\r
1500          leaf network-id {\r
1501             description "Key to l3-network object";\r
1502             type string;\r
1503          }\r
1504          leaf network-role {\r
1505             type string;\r
1506          }\r
1507          uses vlan-tags;\r
1508       }\r
1509    }\r
1510    grouping connection-point {\r
1511       container connection-point {\r
1512          leaf connection-point-id {\r
1513             description "Key to CP object in A&AI";\r
1514             type string;\r
1515          }\r
1516          leaf port-id {\r
1517             description "port-index when multiple CPs connect to same network. Default zero (0)";\r
1518             type string;\r
1519          }\r
1520          list vlan-data {\r
1521             key "vlan-uuid";\r
1522             leaf vlan-uuid {\r
1523                description "Key to vlan-tag uuid object in A&AI Generated by vlan mS";\r
1524                type string;\r
1525             }\r
1526             leaf vlan-tag-id {\r
1527                type string;\r
1528             }\r
1529             leaf vlan-tag-description {\r
1530                type string;\r
1531             }\r
1532             leaf vlan-role {\r
1533                description "Inner/Outer roles";\r
1534                type string;\r
1535             }\r
1536          }\r
1537       }\r
1538    }\r
1539    grouping aggregate-routes {\r
1540       list aggregate-routes {\r
1541          key "route-id";\r
1542          leaf route-id {\r
1543             description "Unique id";\r
1544             type string;\r
1545          }\r
1546          leaf start-address {\r
1547             type inet:ip-address;\r
1548          }\r
1549          leaf cidr-mask {\r
1550             type string;\r
1551          }\r
1552          leaf ip-version {\r
1553             description "Use values 4 or 6.";\r
1554             type string;\r
1555          }\r
1556       }\r
1557    }\r
1558    grouping pnf-information {\r
1559       container pnf-information {\r
1560          leaf pnf-name {\r
1561             description "Key for A&AI query";\r
1562             type string;\r
1563          }\r
1564          leaf pnf-type {\r
1565             type string;\r
1566          }\r
1567          uses onap-model-information;\r
1568       }\r
1569    }\r
1570    grouping contrail-route-operation-information {\r
1571       uses sdnc-request-header;\r
1572       uses request-information;\r
1573       uses service-information;\r
1574       uses allotted-resource-information;\r
1575       uses contrail-route-request-input;\r
1576    }\r
1577    grouping contrail-route-request-input {\r
1578       container contrail-route-request-input {\r
1579          container source-network {\r
1580             uses network-info;\r
1581          }\r
1582          container dest-network {\r
1583             uses network-info;\r
1584          }\r
1585          container contrail-applied-service-info {\r
1586             leaf service-instance-id {\r
1587                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
1588                type string;\r
1589             }\r
1590             leaf contrail-fqdn {\r
1591                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
1592                type string;\r
1593             }\r
1594          }\r
1595          container contrail-route-input-parameters {\r
1596             uses param;\r
1597          }\r
1598       }\r
1599    }\r
1600    grouping network-info {\r
1601       leaf network-id {\r
1602          type string;\r
1603       }\r
1604       leaf network-role {\r
1605          type string;\r
1606       }\r
1607    }\r
1608    grouping contrail-route-topology {\r
1609       container contrail-route-topology {\r
1610          uses allotted-resource-identifiers;\r
1611          uses onap-model-information;\r
1612          uses contrail-route-assignments;\r
1613          container contrail-route-parameters {\r
1614             uses param;\r
1615          }\r
1616       }\r
1617    }\r
1618    grouping contrail-route-assignments {\r
1619       container contrail-route-assignments {\r
1620          leaf fq-name {\r
1621             description "The Contrail fq-name of the network policy";\r
1622             type string;\r
1623          }\r
1624          leaf contrail-id {\r
1625             description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)";\r
1626             type string;\r
1627          }\r
1628          container source-network {\r
1629             uses network-info;\r
1630          }\r
1631          container dest-network {\r
1632             uses network-info;\r
1633          }\r
1634          container contrail-applied-service {\r
1635             leaf service-instance-id {\r
1636                description "The service-instance-id of the vnf from which the contrail applied service is coming";\r
1637                type string;\r
1638             }\r
1639             leaf vnf-id {\r
1640                description "The vnf representing the contrail applied service";\r
1641                type string;\r
1642             }\r
1643             leaf contrail-fqdn {\r
1644                description "This is the fq-name of the Contrail service instance through which the route is passing.";\r
1645                type string;\r
1646             }\r
1647          }\r
1648          leaf vlan-tag {\r
1649             description "Contrail-assigned vlan-tag to the vipr vm interface for this route.";\r
1650             type string;\r
1651          }\r
1652       }\r
1653    }\r
1654    grouping security-zone-operation-information {\r
1655       uses sdnc-request-header;\r
1656       uses request-information;\r
1657       uses service-information;\r
1658       uses allotted-resource-information;\r
1659       uses security-zone-request-input;\r
1660    }\r
1661    grouping security-zone-request-input {\r
1662       container security-zone-request-input {\r
1663          leaf vlan-tag {\r
1664             type string;\r
1665          }\r
1666          leaf trusted-network-role {\r
1667             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
1668             type string;\r
1669          }\r
1670          leaf untrusted-network-role {\r
1671             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
1672             type string;\r
1673          }\r
1674          container security-zone-input-parameters {\r
1675             uses param;\r
1676          }\r
1677       }\r
1678    }\r
1679    grouping security-zone-topology {\r
1680       container security-zone-topology {\r
1681          uses allotted-resource-identifiers;\r
1682          uses onap-model-information;\r
1683          uses security-zone-assignments;\r
1684          container security-zone-parameters {\r
1685             uses param;\r
1686          }\r
1687       }\r
1688    }\r
1689    grouping security-zone-assignments {\r
1690       container security-zone-assignments {\r
1691          leaf trusted-network-role {\r
1692             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
1693             type string;\r
1694          }\r
1695          leaf security-zone-name-trusted {\r
1696             type string;\r
1697          }\r
1698          leaf untrusted-network-role {\r
1699             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
1700             type string;\r
1701          }\r
1702          leaf security-zone-name-untrusted {\r
1703             type string;\r
1704          }\r
1705          leaf security-zone-service-instance-id {\r
1706             description "Will be the same as the parent-service-instance-id";\r
1707             type string;\r
1708          }\r
1709          leaf security-zone-vnf-id {\r
1710             description "Selected by SDNC from the security-zone-service-instance-id";\r
1711             type string;\r
1712          }\r
1713          leaf vlan-tag {\r
1714             type string;\r
1715          }\r
1716       }\r
1717    }\r
1718    grouping port-mirror-topology-operation-information {\r
1719       uses sdnc-request-header;\r
1720       uses request-information;\r
1721       uses service-information;\r
1722       uses configuration-information;\r
1723       uses port-mirror-configuration-request-input;\r
1724    }\r
1725    grouping port-mirror-configuration-request-input {\r
1726       container port-mirror-configuration-request-input {\r
1727          container source-port {\r
1728             uses port-info;\r
1729             leaf source-port-id {\r
1730                description "needed for srv-action=disable/enable";\r
1731                type string;\r
1732             }\r
1733          }\r
1734          container dest-port {\r
1735             uses port-info;\r
1736          }\r
1737          uses region-identifier;\r
1738          container port-mirror-configuration-input-parameters {\r
1739             uses param;\r
1740          }\r
1741       }\r
1742    }\r
1743    grouping port-info {\r
1744       leaf service-instance-id {\r
1745          description "May not be need.";\r
1746          type string;\r
1747       }\r
1748       uses pnf-information;\r
1749       uses vnf-information;\r
1750    }\r
1751    grouping port-mirror-configuration-topology {\r
1752       container port-mirror-configuration-topology {\r
1753          uses configuration-identifiers;\r
1754          uses onap-model-information;\r
1755          uses port-mirror-configuration-assignments;\r
1756          container port-mirror-configuration-parameters {\r
1757             uses param;\r
1758          }\r
1759       }\r
1760    }\r
1761    grouping port-mirror-configuration-assignments {\r
1762       container port-mirror-configuration-assignments {\r
1763          container contrail-vmi-params {\r
1764             uses param;\r
1765          }\r
1766          leaf vnics-group-id {\r
1767             type string;\r
1768          }\r
1769          leaf owning-entity {\r
1770             type string;\r
1771          }\r
1772          leaf tenant-context {\r
1773             description "From tenant object in A&AI";\r
1774             type string;\r
1775          }\r
1776          leaf tenant {\r
1777             description "Tenant name from A&AI for source VNF";\r
1778             type string;\r
1779          }\r
1780          leaf tenant-id {\r
1781             description "tenant-id from A&AI for source VNF";\r
1782             type string;\r
1783          }\r
1784          leaf dest-tenant {\r
1785             description "Tenant name from A&AI for destination VNF";\r
1786             type string;\r
1787          }\r
1788          leaf dest-tenant-id {\r
1789             description "tenant-id from A&AI for destination VNF";\r
1790             type string;\r
1791          }\r
1792          leaf cloud-region-id {\r
1793             type string;\r
1794          }\r
1795          leaf cloud-owner {\r
1796             type string;\r
1797          }\r
1798          leaf dest-network-fqdn {\r
1799             type string;\r
1800          }\r
1801          leaf source-network-fqdn {\r
1802             type string;\r
1803          }\r
1804          leaf source-capacity {\r
1805             description "Source port pps (packets per second) rating from tosca model";\r
1806             type uint32;\r
1807          }\r
1808          leaf source-vnf-id {\r
1809             type string;\r
1810          }\r
1811          leaf dest-vnf-id {\r
1812             description "For vProbe";\r
1813             type string;\r
1814          }\r
1815          leaf dest-pnf-name {\r
1816             description "For pProbe";\r
1817             type string;\r
1818          }\r
1819          leaf dest-p-interface {\r
1820             description "For pProbe; from policy manager";\r
1821             type string;\r
1822          }\r
1823          leaf dest-pnf-port-policy-name {\r
1824             description "For pProbe; from tosca model";\r
1825             type string;\r
1826          }\r
1827          leaf probe-type {\r
1828             description "vprobe or pprobe; derived from configuration-information.configuration-sub-type";\r
1829             type string;\r
1830          }\r
1831          leaf route-allotted-resource-id {\r
1832             description "For vProbe";\r
1833             type string;\r
1834          }\r
1835          container source-vnfc-instance-group-id {\r
1836             leaf service-instance-id {\r
1837                type string;\r
1838             }\r
1839             leaf nfc-naming-code {\r
1840                type string;\r
1841             }\r
1842             leaf instance-group-role {\r
1843                type string;\r
1844             }\r
1845             leaf configuration-id {\r
1846                type string;\r
1847             }\r
1848          }\r
1849          container dest-vnfc-instance-group-id {\r
1850             leaf service-instance-id {\r
1851                type string;\r
1852             }\r
1853             leaf nfc-naming-code {\r
1854                type string;\r
1855             }\r
1856             leaf instance-group-role {\r
1857                type string;\r
1858             }\r
1859             leaf configuration-id {\r
1860                type string;\r
1861             }\r
1862          }\r
1863          container source-to-dest-maps {\r
1864             list source-to-dest-map {\r
1865                key "source-port-id";\r
1866                leaf source-port-id {\r
1867                   type string;\r
1868                   mandatory true;\r
1869                }\r
1870                leaf source-port-name {\r
1871                   type string;\r
1872                }\r
1873                leaf source-vserver-id {\r
1874                   type string;\r
1875                }\r
1876                leaf dest-vserver-id {\r
1877                   type string;\r
1878                }\r
1879                leaf dest-port-id {\r
1880                   type string;\r
1881                }\r
1882                leaf dest-port-name {\r
1883                   type string;\r
1884                }\r
1885                leaf link-name {\r
1886                   type string;\r
1887                }\r
1888                container dest-ip-addresses {\r
1889                   uses ip-addresses;\r
1890                }\r
1891             }\r
1892          }\r
1893       }\r
1894    }\r
1895    grouping gc-topology-operation-information {\r
1896       uses sdnc-request-header;\r
1897       uses request-information;\r
1898       uses service-information;\r
1899       uses configuration-information;\r
1900       uses gc-request-input;\r
1901    }\r
1902    grouping gc-request-input {\r
1903       container gc-request-input {\r
1904          leaf vnf-id {\r
1905             type string;\r
1906          }\r
1907          leaf vf-module-id {\r
1908             description "This is mandatory in case of rebuild";\r
1909             type string;\r
1910          }\r
1911          container input-parameters {\r
1912             uses param;\r
1913          }\r
1914          leaf rebuild {\r
1915             description "Value will indicate what to rebuild";\r
1916             type string;\r
1917          }\r
1918          list configuration-ids {\r
1919             key "configuration-id";\r
1920             leaf configuration-id {\r
1921                type string;\r
1922             }\r
1923          }\r
1924       }\r
1925    }\r
1926    grouping vnr-parameters {\r
1927       container vnr-parameters {\r
1928          leaf vnf-id {\r
1929             type string;\r
1930          }\r
1931          leaf vf-module-id {\r
1932             description "This is mandatory in case of rebuild";\r
1933             type string;\r
1934          }\r
1935          leaf vnf-service-instance-id {\r
1936             type string;\r
1937          }\r
1938          leaf network-collection-service-instance-id {\r
1939             description "service instance id that created network-collection";\r
1940             type string;\r
1941          }\r
1942          leaf network-instance-group-id {\r
1943             type string;\r
1944          }\r
1945          leaf network-id {\r
1946             type string;\r
1947          }\r
1948          leaf vnfc-instance-group-function {\r
1949             type string;\r
1950          }\r
1951          leaf network-instance-group-function {\r
1952             type string;\r
1953          }\r
1954          leaf parent-port-role {\r
1955             type string;\r
1956          }\r
1957          leaf upper-tag-id {\r
1958             type uint32;\r
1959          }\r
1960          leaf lower-tag-id {\r
1961             type uint32;\r
1962          }\r
1963       }\r
1964    }\r
1965    grouping tunnelxconn-operation-information {\r
1966        uses sdnc-request-header;\r
1967        uses request-information;\r
1968        uses service-information;\r
1969        uses allotted-resource-information;\r
1970        uses tunnelxconn-request-input;\r
1971    }\r
1972    grouping tunnelxconn-request-input {\r
1973 \r
1974        container tunnelxconn-request-input {\r
1975            leaf brg-wan-mac-address {\r
1976                type string;\r
1977            }\r
1978        }\r
1979    }\r
1980    grouping tunnelxconn-topology {\r
1981        container tunnelxconn-topology {\r
1982            uses allotted-resource-identifiers;\r
1983            uses onap-model-information;\r
1984            uses tunnelxconn-assignments;\r
1985            container tunnelxconn-parameters {\r
1986                uses param;\r
1987            }\r
1988        }\r
1989    }\r
1990    grouping tunnelxconn-assignments {\r
1991            container tunnelxconn-assignments {\r
1992                leaf vni {\r
1993                    description "The Network Controller will assign a VNI value from the associated vGMUX VNI pool";\r
1994                    type string;\r
1995                }\r
1996                leaf vgmux-bearer-ip {\r
1997                    description "The Network Controller will look up the vgmux bearer ip from the vgmux vf module";\r
1998                    type inet:ip-address;\r
1999                }\r
2000                leaf vgmux-lan-ip {\r
2001                    description "The Network Controller will look up the vgmux lan ip from the vgmux vg module";\r
2002                    type inet:ip-address;\r
2003                }\r
2004                leaf vg-ip {\r
2005                    description "The Network Controller will assign the VG IP address from local inventory";\r
2006                    type inet:ip-address;\r
2007                }\r
2008            }\r
2009    }\r
2010    grouping brg-operation-information {\r
2011        uses sdnc-request-header;\r
2012        uses request-information;\r
2013        uses service-information;\r
2014        uses allotted-resource-information;\r
2015        uses brg-request-input;\r
2016    }\r
2017    grouping brg-request-input {\r
2018        container brg-request-input {\r
2019            leaf vgmux-bearer-ip {\r
2020                type inet:ip-address;\r
2021            }\r
2022            leaf vni {\r
2023                type string;\r
2024            }\r
2025            leaf brg-wan-mac-address {\r
2026                type string;\r
2027            }\r
2028        }\r
2029    }\r
2030    grouping brg-topology {\r
2031        container brg-topology {\r
2032            uses allotted-resource-identifiers;\r
2033            uses onap-model-information;\r
2034            uses brg-assignments;\r
2035            container brg-parameters {\r
2036                uses param;\r
2037            }\r
2038        }\r
2039    }\r
2040    grouping brg-assignments {\r
2041            container brg-assignments {\r
2042                leaf vbrg-wan-ip {\r
2043                    type inet:ip-address;\r
2044                }\r
2045            }\r
2046    }\r
2047    grouping connection-attachment-operation-information {\r
2048       uses sdnc-request-header;\r
2049       uses request-information;\r
2050       uses service-information;\r
2051       uses allotted-resource-information;\r
2052       uses connection-attachment-request-input;\r
2053    }\r
2054 \r
2055    grouping connection-attachment-request-input {\r
2056       container connection-attachment-request-input {\r
2057          uses param;\r
2058       }\r
2059    }\r
2060 \r
2061    grouping connection-attachment-topology {\r
2062       container connection-attachment-topology {\r
2063          uses allotted-resource-identifiers;\r
2064          uses onap-model-information;\r
2065          uses connection-attachment-assignments;\r
2066          container connection-attachment-parameters {\r
2067             uses param;\r
2068          }\r
2069       }\r
2070    }\r
2071 \r
2072    grouping connection-attachment-assignments {\r
2073       container connection-attachment-assignments {\r
2074       }\r
2075    }\r
2076 \r
2077    grouping vnf-vnr-rebuild-data {\r
2078       container vnf-vnr-rebuild-data {\r
2079          leaf vnf-id {\r
2080             type string;\r
2081          }\r
2082          leaf vnf-service-instance-id {\r
2083             type string;\r
2084          }\r
2085          list vnrs-data {\r
2086             key "configuration-id";\r
2087             leaf configuration-id {\r
2088                type string;\r
2089             }\r
2090             leaf network-instance-group-id {\r
2091                type string;\r
2092             }\r
2093             leaf network-id {\r
2094                type string;\r
2095             }\r
2096             leaf vnfc-instance-group-function {\r
2097                type string;\r
2098             }\r
2099             leaf network-instance-group-function {\r
2100                type string;\r
2101             }\r
2102             leaf parent-port-role {\r
2103                type string;\r
2104             }\r
2105             leaf upper-tag-id {\r
2106                type uint32;\r
2107             }\r
2108             leaf lower-tag-id {\r
2109                type uint32;\r
2110             }\r
2111          }\r
2112       }\r
2113    }\r
2114    grouping allotted-resource-information {\r
2115       container allotted-resource-information {\r
2116          leaf allotted-resource-id {\r
2117             type string;\r
2118          }\r
2119          leaf allotted-resource-type {\r
2120             description "Not an enum, but expected values are contrail-route and security-zone.";\r
2121             type string;\r
2122          }\r
2123          leaf parent-service-instance-id {\r
2124             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
2125             type string;\r
2126          }\r
2127          uses onap-model-information;\r
2128       }\r
2129    }\r
2130    grouping allotted-resource-identifiers {\r
2131       container allotted-resource-identifiers {\r
2132          leaf allotted-resource-id {\r
2133             type string;\r
2134          }\r
2135          leaf allotted-resource-name {\r
2136             description "For a contrail-route, the network policy name.";\r
2137             type string;\r
2138          }\r
2139          leaf allotted-resource-type {\r
2140             description "(Added in draft 32)Expected to be contrail-route or security-zone.";\r
2141             type string;\r
2142          }\r
2143          leaf consuming-service-instance-id {\r
2144             description "The service-instance-id of the consuming service of this allotted resource";\r
2145             type string;\r
2146          }\r
2147          leaf parent-service-instance-id {\r
2148             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
2149             type string;\r
2150          }\r
2151       }\r
2152    }\r
2153    grouping allotted-resource-oper-status {\r
2154       container allotted-resource-oper-status {\r
2155          uses oper-status-data;\r
2156       }\r
2157    }\r
2158    grouping allotted-resource-status {\r
2159       container allotted-resource-status {\r
2160          leaf response-code {\r
2161             type string;\r
2162          }\r
2163          leaf response-message {\r
2164             type string;\r
2165          }\r
2166          leaf final-indicator {\r
2167             type string;\r
2168          }\r
2169          leaf request-status {\r
2170             type enumeration {\r
2171                enum "synccomplete";\r
2172                enum "asynccomplete";\r
2173                enum "notifycomplete";\r
2174             }\r
2175          }\r
2176          leaf action {\r
2177             description "value would one of possible request-actions; match the list in service-data oper-status";\r
2178             type string;\r
2179          }\r
2180          leaf rpc-name {\r
2181             type string;\r
2182          }\r
2183          leaf rpc-action {\r
2184             description "this is the svc-action from the incoming request";\r
2185             type enumeration {\r
2186                enum "assign";\r
2187                enum "activate";\r
2188                enum "create";\r
2189                enum "delete";\r
2190                enum "unassign";\r
2191                enum "deactivate";\r
2192             }\r
2193          }\r
2194          leaf response-timestamp {\r
2195             type string;\r
2196          }\r
2197       }\r
2198    }\r
2199    grouping configuration-information {\r
2200       container configuration-information {\r
2201          leaf configuration-id {\r
2202             type string;\r
2203          }\r
2204          leaf configuration-name {\r
2205             type string;\r
2206          }\r
2207          leaf configuration-type {\r
2208             description "Not an enum, but expected values are port-mirror-configuration, vlan-network-receptor";\r
2209             type string;\r
2210          }\r
2211          leaf configuration-sub-type {\r
2212             description "e.g. vprobe and pprobe when configuration-type=port-mirror-configuration";\r
2213             type string;\r
2214          }\r
2215          uses onap-model-information;\r
2216       }\r
2217    }\r
2218    grouping configuration-identifiers {\r
2219       container configuration-identifiers {\r
2220          leaf configuration-id {\r
2221             type string;\r
2222          }\r
2223          leaf configuration-name {\r
2224             type string;\r
2225          }\r
2226          leaf configuration-type {\r
2227             description "Not an enum, but expected values are port-mirror-configuration.";\r
2228             type string;\r
2229          }\r
2230          leaf configuration-sub-type {\r
2231             description " vprobe and pprobe";\r
2232             type string;\r
2233          }\r
2234          leaf parent-service-instance-id {\r
2235             description "Service-instance-id of the parent service to which this resource belongs.";\r
2236             type string;\r
2237          }\r
2238       }\r
2239    }\r
2240    grouping configuration-oper-status {\r
2241       container configuration-oper-status {\r
2242          uses oper-status-data;\r
2243       }\r
2244    }\r
2245    grouping configuration-status {\r
2246       container configuration-status {\r
2247          leaf response-code {\r
2248             type string;\r
2249          }\r
2250          leaf response-message {\r
2251             type string;\r
2252          }\r
2253          leaf final-indicator {\r
2254             type string;\r
2255          }\r
2256          leaf request-status {\r
2257             type enumeration {\r
2258                enum "synccomplete";\r
2259                enum "asynccomplete";\r
2260                enum "notifycomplete";\r
2261             }\r
2262          }\r
2263          leaf action {\r
2264             description "value would one of possible request-actions; match the list in service-data oper-status";\r
2265             type string;\r
2266          }\r
2267          leaf rpc-name {\r
2268             type string;\r
2269          }\r
2270          leaf rpc-action {\r
2271             description "this is the svc-action from the incoming request";\r
2272             type enumeration {\r
2273                enum "assign";\r
2274                enum "activate";\r
2275                enum "create";\r
2276                enum "disable";\r
2277                enum "enable";\r
2278                enum "delete";\r
2279                enum "unassign";\r
2280                enum "deactivate";\r
2281             }\r
2282          }\r
2283          leaf response-timestamp {\r
2284             type string;\r
2285          }\r
2286       }\r
2287    }\r
2288    grouping topology-response-common {\r
2289       leaf svc-request-id {\r
2290          description "the request id from the request message for which this is the responseKeep as M";\r
2291          type string;\r
2292       }\r
2293       leaf response-code {\r
2294          description "a success code or an defined error codeKeep as M";\r
2295          type string;\r
2296       }\r
2297       leaf response-message {\r
2298          description "message included for error code";\r
2299          type string;\r
2300       }\r
2301       leaf ack-final-indicator {\r
2302          description "Expected to be Y or N.";\r
2303          type string;\r
2304       }\r
2305    }\r
2306    grouping sdnc-request-header {\r
2307       container sdnc-request-header {\r
2308          leaf svc-request-id {\r
2309             description "Uniquely generated by calling system (e.g. MSO or SDN-GP)";\r
2310             type string;\r
2311          }\r
2312          leaf svc-action {\r
2313             description "This is the rpcAction";\r
2314             type enumeration {\r
2315                enum "reserve";\r
2316                enum "assign";\r
2317                enum "activate";\r
2318                enum "delete";\r
2319                enum "changeassign";\r
2320                enum "changedelete";\r
2321                enum "rollback";\r
2322                enum "deactivate";\r
2323                enum "unassign";\r
2324                enum "create";\r
2325                enum "disable";\r
2326                enum "enable";\r
2327                enum "update";\r
2328                enum "reoptimize";\r
2329                enum "rebuild";\r
2330             }\r
2331          }\r
2332          leaf svc-notification-url {\r
2333             description "Contains URL for asynchronous response";\r
2334             type string;\r
2335          }\r
2336       }\r
2337    }\r
2338    grouping request-information {\r
2339       container request-information {\r
2340          leaf request-id {\r
2341             description "Request ID generated upstream of MSO";\r
2342             type string;\r
2343          }\r
2344          leaf request-action {\r
2345             description "still need to work Disconnect";\r
2346             type enumeration {\r
2347                enum "CreateNetworkInstance";\r
2348                enum "ActivateNetworkInstance";\r
2349                enum "DeActivateNetworkInstance";\r
2350                enum "CreateServiceInstance";\r
2351                enum "DeleteServiceInstance";\r
2352                enum "DeleteNetworkInstance";\r
2353                enum "CreateVnfInstance";\r
2354                enum "ActivateVnfInstance";\r
2355                enum "DeleteVnfInstance";\r
2356                enum "CreateVfModuleInstance";\r
2357                enum "ActivateVfModuleInstance";\r
2358                enum "DeleteVfModuleInstance";\r
2359                enum "CreateContrailRouteInstance";\r
2360                enum "DeleteContrailRouteInstance";\r
2361                enum "CreateSecurityZoneInstance";\r
2362                enum "DeleteSecurityZoneInstance";\r
2363                enum "ActivateDCINetworkInstance";\r
2364                enum "DeActivateDCINetworkInstance";\r
2365                enum "CreateTunnelXConnInstance";\r
2366                enum "DeleteTunnelXConnInstance";\r
2367                enum "CreateBRGInstance";\r
2368                enum "DeleteBRGInstance";\r
2369                enum "CreateSOTNConnectivityInstance";\r
2370                enum "ActivateSOTNConnectivityInstance";\r
2371                enum "DeactivateSOTNConnectivityInstance";\r
2372                enum "DeleteSOTNConnectivityInstance";\r
2373                enum "CreateSOTNAttachmentInstance";\r
2374                enum "ActivateSOTNAttachmentInstance";\r
2375                enum "DeactivateSOTNAttachmentInstance";\r
2376                enum "DeleteSOTNAttachmentInstance";\r
2377                enum "CreateSiteInstance";\r
2378                enum "ActivateSiteInstance";\r
2379                enum "DeactivateSiteInstance";\r
2380                enum "DeleteSiteInstance";\r
2381                enum "CreatePortMirrorConfigurationInstance";\r
2382                enum "DeletePortMirrorConfigurationInstance";\r
2383                enum "ChangePortMirrorConfigurationInstance";\r
2384                enum "CreateGenericConfigurationInstance";\r
2385                enum "RebuildGenericConfigurationInstance";\r
2386                enum "DeleteGenericConfigurationInstance";\r
2387                enum "PreloadVfModuleRequest";\r
2388                enum "DeletePreloadVfModuleRequest";\r
2389                enum "PreloadNetworkRequest";\r
2390                enum "DeletePreloadNetworkRequest";\r
2391                enum "CreateForwardingPathInstance";\r
2392                enum "DeleteForwardingPathInstance";\r
2393                enum "UpdateForwardingPathInstance";\r
2394                enum "CreateSDWANConnectivityInstance";\r
2395                enum "ActivateSDWANConnectivityInstance";\r
2396                enum "DeactivateSDWANConnectivityInstance";\r
2397                enum "DeleteSDWANConnectivityInstance";\r
2398                enum "CreateSDWANDeviceInstance";\r
2399                enum "ActivateSDWANDeviceInstance";\r
2400                enum "DeactivateSDWANDeviceInstance";\r
2401                enum "DeleteSDWANDeviceInstance";\r
2402                enum "CreateSDWANPortInstance";\r
2403                enum "ActivateSDWANPortInstance";\r
2404                enum "DeactivateSDWANPortInstance";\r
2405                enum "DeleteSDWANPortInstance";\r
2406                enum "CreateSDWANAttachmentInstance";\r
2407                enum "ActivateSDWANAttachmentInstance";\r
2408                enum "DeactivateSDWANAttachmentInstance";\r
2409                enum "DeleteSDWANAttachmentInstance";\r
2410                enum "ReoptimizeSOTNInstance";\r
2411             }\r
2412          }\r
2413          leaf source {\r
2414             type string;\r
2415          }\r
2416          leaf notification-url {\r
2417             type string;\r
2418          }\r
2419          leaf order-number {\r
2420             type string;\r
2421          }\r
2422          leaf order-version {\r
2423             type string;\r
2424          }\r
2425       }\r
2426    }\r
2427    grouping service-information {\r
2428       container service-information {\r
2429          leaf service-id {\r
2430             description "This maps to the product-family-id in A&AI";\r
2431             type string;\r
2432          }\r
2433          leaf subscription-service-type {\r
2434             description "used to reference a&ai subscription-service-type. For example, we show as vIPR-ATM in example.";\r
2435             type string;\r
2436          }\r
2437          uses onap-model-information;\r
2438          leaf service-instance-id {\r
2439             type string;\r
2440          }\r
2441          leaf global-customer-id {\r
2442             description "need for put of data to AnAI (MSO provides)";\r
2443             type string;\r
2444          }\r
2445          leaf subscriber-name {\r
2446             description "Would not be expected for vIPR-ATM or mobility services.";\r
2447             type string;\r
2448          }\r
2449       }\r
2450    }\r
2451    grouping onap-model-information {\r
2452       container onap-model-information {\r
2453          leaf model-invariant-uuid {\r
2454             description "identifies the invariant uuid for this service or resource";\r
2455             type string;\r
2456          }\r
2457          leaf model-customization-uuid {\r
2458             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
2459             type string;\r
2460          }\r
2461          leaf model-uuid {\r
2462             description "identifies the uuid for this service or resource, which is version specific";\r
2463             type string;\r
2464          }\r
2465          leaf model-version {\r
2466             type string;\r
2467          }\r
2468          leaf model-name {\r
2469             type string;\r
2470          }\r
2471       }\r
2472    }\r
2473    grouping region-identifier {\r
2474       leaf tenant {\r
2475          type string;\r
2476       }\r
2477       leaf aic-cloud-region {\r
2478          description "The AIC cloud region which maps to contrail versions";\r
2479          type string;\r
2480       }\r
2481       leaf cloud-owner {\r
2482          description "The cloud owner provided by the caller";\r
2483          type string;\r
2484       }\r
2485       leaf aic-clli {\r
2486          description "Not expected to be used";\r
2487          type string;\r
2488       }\r
2489    }\r
2490    grouping param {\r
2491       list param {\r
2492          key "name";\r
2493          leaf name {\r
2494             type string;\r
2495          }\r
2496          leaf value {\r
2497             type string;\r
2498          }\r
2499          container resource-resolution-data {\r
2500             list resource-key {\r
2501                key "name";\r
2502                leaf name {\r
2503                   type string;\r
2504                }\r
2505                leaf value {\r
2506                   type string;\r
2507                }\r
2508             }\r
2509             leaf status {\r
2510                description "SUCCESS, FAILED, or PENDING - RA returned data as capability";\r
2511                type string;\r
2512             }\r
2513             leaf capability-name {\r
2514                description "Resource assignment resolution Capability name";\r
2515                type string;\r
2516             }\r
2517          }\r
2518       }\r
2519    }\r
2520    grouping ip-addresses {\r
2521       container ip-addresses {\r
2522          leaf ipv4-address {\r
2523             type inet:ip-address;\r
2524          }\r
2525          leaf ipv6-address {\r
2526             type inet:ip-address;\r
2527          }\r
2528          leaf vipv4-address {\r
2529             description "Virtual v4";\r
2530             type inet:ip-address;\r
2531          }\r
2532          leaf vipv6-address {\r
2533             description "Virtual v6";\r
2534             type inet:ip-address;\r
2535          }\r
2536       }\r
2537    }\r
2538    grouping instance-reference {\r
2539       leaf instance-id {\r
2540          type string;\r
2541       }\r
2542       leaf object-path {\r
2543          description "restconf retrieval path to this particular objectE.g. restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/service-topology/";\r
2544          type string;\r
2545       }\r
2546    }\r
2547    grouping oper-status-data {\r
2548       leaf order-status {\r
2549          description "TBD - do we need Request failed statuses? RequestFailed | InProgressTimeout";\r
2550          type enumeration {\r
2551             enum "Active";\r
2552             enum "PendingAssignment";\r
2553             enum "PendingCreate";\r
2554             enum "PendingUpdate";\r
2555             enum "PendingDelete";\r
2556             enum "Deleted";\r
2557             enum "Created";\r
2558          }\r
2559       }\r
2560       leaf last-rpc-action {\r
2561          type enumeration {\r
2562             enum "assign";\r
2563             enum "activate";\r
2564             enum "delete";\r
2565             enum "unassign";\r
2566             enum "deactivate";\r
2567             enum "create";\r
2568             enum "changeassign";\r
2569             enum "reoptimize";\r
2570          }\r
2571       }\r
2572       leaf last-action {\r
2573          description "should be list of possible request-actions";\r
2574          type enumeration {\r
2575             enum "CreateNetworkInstance";\r
2576             enum "ActivateNetworkInstance";\r
2577             enum "DeActivateNetworkInstance";\r
2578             enum "CreateServiceInstance";\r
2579             enum "DeleteServiceInstance";\r
2580             enum "DeleteNetworkInstance";\r
2581             enum "CreateVnfInstance";\r
2582             enum "ActivateVnfInstance";\r
2583             enum "DeleteVnfInstance";\r
2584             enum "CreateVfModuleInstance";\r
2585             enum "ActivateVfModuleInstance";\r
2586             enum "DeleteVfModuleInstance";\r
2587             enum "CreateContrailRouteInstance";\r
2588             enum "DeleteContrailRouteInstance";\r
2589             enum "CreateSecurityZoneInstance";\r
2590             enum "DeleteSecurityZoneInstance";\r
2591             enum "ActivateDCINetworkInstance";\r
2592             enum "DeActivateDCINetworkInstance";\r
2593             enum "CreateTunnelXConnInstance";\r
2594             enum "DeleteTunnelXConnInstance";\r
2595             enum "CreateBRGInstance";\r
2596             enum "DeleteBRGInstance";\r
2597             enum "CreateSOTNConnectivityInstance";\r
2598             enum "ActivateSOTNConnectivityInstance";\r
2599             enum "DeactivateSOTNConnectivityInstance";\r
2600             enum "DeleteSOTNConnectivityInstance";\r
2601             enum "CreateSOTNAttachmentInstance";\r
2602             enum "ActivateSOTNAttachmentInstance";\r
2603             enum "DeactivateSOTNAttachmentInstance";\r
2604             enum "DeleteSOTNAttachmentInstance";\r
2605             enum "CreateSiteInstance";\r
2606             enum "ActivateSiteInstance";\r
2607             enum "DeactivateSiteInstance";\r
2608             enum "DeleteSiteInstance";\r
2609             enum "CreatePortMirrorConfigurationInstance";\r
2610             enum "DeletePortMirrorConfigurationInstance";\r
2611             enum "ChangePortMirrorConfigurationInstance";\r
2612             enum "CreateGenericConfigurationInstance";\r
2613             enum "DeleteGenericConfigurationInstance";\r
2614             enum "PreloadVfModuleRequest";\r
2615             enum "DeletePreloadVfModuleRequest";\r
2616             enum "PreloadNetworkRequest";\r
2617             enum "DeletePreloadNetworkRequest";\r
2618             enum "CreateForwardingPathInstance";\r
2619             enum "DeleteForwardingPathInstance";\r
2620             enum "UpdateForwardingPathInstance";\r
2621             enum "CreateSDWANConnectivityInstance";\r
2622             enum "ActivateSDWANConnectivityInstance";\r
2623             enum "DeactivateSDWANConnectivityInstance";\r
2624             enum "DeleteSDWANConnectivityInstance";\r
2625             enum "CreateSDWANDeviceInstance";\r
2626             enum "ActivateSDWANDeviceInstance";\r
2627             enum "DeactivateSDWANDeviceInstance";\r
2628             enum "DeleteSDWANDeviceInstance";\r
2629             enum "CreateSDWANPortInstance";\r
2630             enum "ActivateSDWANPortInstance";\r
2631             enum "DeactivateSDWANPortInstance";\r
2632             enum "DeleteSDWANPortInstance";\r
2633             enum "CreateSDWANAttachmentInstance";\r
2634             enum "ActivateSDWANAttachmentInstance";\r
2635             enum "DeactivateSDWANAttachmentInstance";\r
2636             enum "DeleteSDWANAttachmentInstance";\r
2637             enum "ReoptimizeSOTNInstance";\r
2638          }\r
2639       }\r
2640       leaf last-svc-request-id {\r
2641          description "Not currently populated in service data.";\r
2642          type string;\r
2643       }\r
2644       leaf last-order-status {\r
2645          type enumeration {\r
2646             enum "Active";\r
2647             enum "PendingAssignment";\r
2648             enum "PendingCreate";\r
2649             enum "PendingUpdate";\r
2650             enum "PendingDelete";\r
2651             enum "Deleted";\r
2652             enum "Created";\r
2653          }\r
2654       }\r
2655       leaf create-timestamp {\r
2656          description "Not currently populated in service data.";\r
2657          type string;\r
2658       }\r
2659       leaf modify-timestamp {\r
2660          type string;\r
2661       }\r
2662    }\r
2663    grouping service-response-information {\r
2664       container service-response-information {\r
2665          uses instance-reference;\r
2666       }\r
2667    }\r
2668    grouping network-response-information {\r
2669       container network-response-information {\r
2670          uses instance-reference;\r
2671       }\r
2672    }\r
2673    grouping vnf-response-information {\r
2674       container vnf-response-information {\r
2675          uses instance-reference;\r
2676       }\r
2677    }\r
2678    grouping vf-module-response-information {\r
2679       container vf-module-response-information {\r
2680          uses instance-reference;\r
2681       }\r
2682    }\r
2683    grouping contrail-route-response-information {\r
2684       container contrail-route-response-information {\r
2685          uses instance-reference;\r
2686       }\r
2687    }\r
2688    grouping security-zone-response-information {\r
2689       container security-zone-response-information {\r
2690          uses instance-reference;\r
2691       }\r
2692    }\r
2693    grouping getpathsegment-response-information {\r
2694       container getpathsegment-response-information {\r
2695          uses instance-reference;\r
2696       }\r
2697    }\r
2698    grouping port-mirror-response-information {\r
2699       container port-mirror-response-information {\r
2700          uses instance-reference;\r
2701       }\r
2702    }\r
2703    grouping gc-response-information {\r
2704       container gc-response-information {\r
2705          uses instance-reference;\r
2706       }\r
2707    }\r
2708    grouping tunnelxconn-response-information {\r
2709        container tunnelxconn-response-information {\r
2710            uses instance-reference;\r
2711        }\r
2712    }\r
2713    grouping brg-response-information {\r
2714        container brg-response-information {\r
2715            uses instance-reference;\r
2716        }\r
2717    }\r
2718    grouping connection-attachment-response-information {\r
2719       container connection-attachment-response-information {\r
2720          uses instance-reference;\r
2721       }\r
2722    }\r
2723    grouping preload-model-information {\r
2724       list preload-list {\r
2725          key "preload-id preload-type";\r
2726          leaf preload-id {\r
2727             description "vf-module-name or network name";\r
2728             type string;\r
2729             mandatory true;\r
2730          }\r
2731          leaf preload-type {\r
2732             description "network or vf-module";\r
2733             type string;\r
2734             mandatory true;\r
2735          }\r
2736          uses preload-data;\r
2737       }\r
2738    }\r
2739    grouping preload-data {\r
2740       container preload-data {\r
2741          uses preload-vf-module-topology-information;\r
2742          uses preload-network-topology-information;\r
2743          uses preload-oper-status;\r
2744       }\r
2745    }\r
2746    grouping preload-vf-module-topology-information {\r
2747       container preload-vf-module-topology-information {\r
2748          uses vnf-topology-identifier-structure;\r
2749          uses vnf-resource-assignments;\r
2750          uses vf-module-topology;\r
2751       }\r
2752    }\r
2753    grouping preload-network-topology-information {\r
2754       container preload-network-topology-information {\r
2755          uses network-topology-identifier-structure;\r
2756          uses subnets;\r
2757          uses vpn-bindings;\r
2758          uses network-policy;\r
2759          uses route-table-reference;\r
2760          uses host-routes;\r
2761          uses provider-network-information;\r
2762       }\r
2763    }\r
2764    grouping subnets {\r
2765       list subnets {\r
2766          key "start-address";\r
2767          leaf start-address {\r
2768             type inet:ip-address;\r
2769          }\r
2770          leaf gateway-address {\r
2771             type inet:ip-address;\r
2772          }\r
2773          leaf cidr-mask {\r
2774             type string;\r
2775          }\r
2776          leaf ip-version {\r
2777             type string;\r
2778          }\r
2779          leaf dhcp-enabled {\r
2780             type enumeration {\r
2781                enum "Y";\r
2782                enum "N";\r
2783             }\r
2784          }\r
2785          leaf dhcp-start-address {\r
2786             type string;\r
2787          }\r
2788          leaf dhcp-end-address {\r
2789             type string;\r
2790          }\r
2791          leaf addr-from-start {\r
2792             description "Default is N";\r
2793             type enumeration {\r
2794                enum "Y";\r
2795                enum "N";\r
2796             }\r
2797          }\r
2798          leaf subnet-name {\r
2799             type string;\r
2800          }\r
2801          leaf subnet-role {\r
2802             type string;\r
2803          }\r
2804          leaf subnet-sequence {\r
2805             type uint8;\r
2806          }\r
2807       }\r
2808    }\r
2809    grouping vpn-bindings {\r
2810       list vpn-bindings {\r
2811          key "vpn-binding-id";\r
2812          leaf vpn-binding-id {\r
2813             type string;\r
2814          }\r
2815          leaf vpn-name {\r
2816             type string;\r
2817          }\r
2818          leaf global-route-target {\r
2819             type string;\r
2820          }\r
2821          leaf route-target-role {\r
2822             type string;\r
2823          }\r
2824          leaf aic-zone {\r
2825             description "AIC Zone the route target associated with";\r
2826             type string;\r
2827          }\r
2828       }\r
2829    }\r
2830    grouping network-policy {\r
2831       list network-policy {\r
2832          key "network-policy-fqdn";\r
2833          leaf network-policy-fqdn {\r
2834             type string;\r
2835          }\r
2836          leaf network-policy-id {\r
2837             type string;\r
2838          }\r
2839       }\r
2840    }\r
2841    grouping route-table-reference {\r
2842       list route-table-reference {\r
2843          key "route-table-reference-fqdn";\r
2844          leaf route-table-reference-fqdn {\r
2845             type string;\r
2846             mandatory true;\r
2847          }\r
2848          leaf route-table-reference-id {\r
2849             type string;\r
2850          }\r
2851       }\r
2852    }\r
2853    grouping provider-network-information {\r
2854       leaf physical-network-name {\r
2855          type string;\r
2856       }\r
2857       leaf is-provider-network {\r
2858          type boolean;\r
2859       }\r
2860       leaf is-shared-network {\r
2861          type boolean;\r
2862       }\r
2863       leaf is-external-network { \r
2864          type boolean;\r
2865       }\r
2866    }\r
2867    grouping host-routes {\r
2868       list host-routes {\r
2869          key "route-prefix";\r
2870          leaf route-prefix {\r
2871             type string;\r
2872          }\r
2873          leaf next-hop {\r
2874             description "Could be ip-address or hostname or service-instance";\r
2875             type string;\r
2876          }\r
2877       }\r
2878    }\r
2879    grouping preload-oper-status {\r
2880       container preload-oper-status {\r
2881          leaf order-status {\r
2882             type enumeration {\r
2883                enum "Active";\r
2884                enum "PendingAssignment";\r
2885                enum "PendingCreate";\r
2886                enum "PendingUpdate";\r
2887                enum "PendingDelete";\r
2888                enum "Deleted";\r
2889             }\r
2890          }\r
2891          leaf last-action {\r
2892             type enumeration {\r
2893                enum "PreloadVfModuleRequest";\r
2894                enum "DeletePreloadVfModuleRequest";\r
2895                enum "PreloadNetworkRequest";\r
2896                enum "DeletePreloadNetworkRequest";\r
2897             }\r
2898          }\r
2899          leaf last-svc-request-id {\r
2900             type string;\r
2901          }\r
2902          leaf last-order-status {\r
2903             type enumeration {\r
2904                enum "Active";\r
2905                enum "PendingAssignment";\r
2906                enum "PendingCreate";\r
2907                enum "PendingUpdate";\r
2908                enum "PendingDelete";\r
2909                enum "Deleted";\r
2910             }\r
2911          }\r
2912          leaf create-timestamp {\r
2913             type string;\r
2914          }\r
2915          leaf modify-timestamp {\r
2916             type string;\r
2917          }\r
2918          leaf maintenance-indicator {\r
2919             type enumeration {\r
2920                enum "Y";\r
2921                enum "N";\r
2922             }\r
2923          }\r
2924       }\r
2925    }\r
2926    grouping preload-topology-response-body {\r
2927       leaf svc-request-id {\r
2928          type string;\r
2929       }\r
2930       leaf response-code {\r
2931          type string;\r
2932       }\r
2933       leaf response-message {\r
2934          type string;\r
2935       }\r
2936       leaf ack-final-indicator {\r
2937          type string;\r
2938       }\r
2939    }\r
2940    rpc generic-configuration-notification {\r
2941       input {\r
2942          uses sdnc-request-header;\r
2943          uses request-information;\r
2944          uses service-information;\r
2945          uses configuration-information;\r
2946          uses topology-response-common;\r
2947          leaf configuration-topology-link {\r
2948             description "Returns URL to generic-configuration-topology ";\r
2949             type string;\r
2950          }\r
2951          uses vnr-parameters;\r
2952          uses vnf-vnr-rebuild-data;\r
2953       }\r
2954    }\r
2955    container services {\r
2956       uses service-model-infrastructure;\r
2957    }\r
2958    container contrail-route-allotted-resources {\r
2959       list contrail-route-allotted-resource {\r
2960          key "allotted-resource-id";\r
2961          leaf allotted-resource-id {\r
2962             type string;\r
2963             mandatory true;\r
2964          }\r
2965          container allotted-resource-data {\r
2966             container allotted-resource-operation-information {\r
2967                uses contrail-route-operation-information;\r
2968             }\r
2969             uses contrail-route-topology;\r
2970             uses allotted-resource-oper-status;\r
2971          }\r
2972          uses allotted-resource-status;\r
2973       }\r
2974    }\r
2975    container security-zone-allotted-resources {\r
2976       list security-zone-allotted-resource {\r
2977          key "allotted-resource-id";\r
2978          leaf allotted-resource-id {\r
2979             type string;\r
2980             mandatory true;\r
2981          }\r
2982          container allotted-resource-data {\r
2983             container allotted-resource-operation-information {\r
2984                uses security-zone-operation-information;\r
2985             }\r
2986             uses security-zone-topology;\r
2987             container security-zone-parameters {\r
2988                uses param;\r
2989             }\r
2990             uses allotted-resource-oper-status;\r
2991          }\r
2992          uses allotted-resource-status;\r
2993       }\r
2994    }\r
2995    container tunnelxconn-allotted-resources {\r
2996        list tunnelxconn-allotted-resource {\r
2997            key "allotted-resource-id";\r
2998            leaf allotted-resource-id {\r
2999                type string;\r
3000                mandatory true;\r
3001            }\r
3002            container allotted-resource-data {\r
3003                container allotted-resource-operation-information {\r
3004                    uses tunnelxconn-operation-information;\r
3005                }\r
3006                uses tunnelxconn-topology;\r
3007                container tunnelxconn-parameters {\r
3008                    uses param;\r
3009                }\r
3010                uses allotted-resource-oper-status;\r
3011            }\r
3012            uses allotted-resource-status;\r
3013        }\r
3014    }\r
3015    container brg-allotted-resources {\r
3016        list brg-allotted-resource {\r
3017            key "allotted-resource-id";\r
3018            leaf allotted-resource-id {\r
3019                type string;\r
3020                mandatory true;\r
3021            }\r
3022            container allotted-resource-data {\r
3023                container allotted-resource-operation-information {\r
3024                    uses brg-operation-information;\r
3025                }\r
3026                uses brg-topology;\r
3027                container brg-parameters {\r
3028                    uses param;\r
3029                }\r
3030                uses allotted-resource-oper-status;\r
3031            }\r
3032            uses allotted-resource-status;\r
3033        }\r
3034    }\r
3035    container connection-attachment-allotted-resources {\r
3036       list connection-attachment-allotted-resource {\r
3037          key "allotted-resource-id";\r
3038          leaf allotted-resource-id {\r
3039             type string;\r
3040             mandatory true;\r
3041          }\r
3042          container allotted-resource-data {\r
3043             container allotted-resource-operation-information {\r
3044                uses connection-attachment-operation-information;\r
3045             }\r
3046             uses connection-attachment-topology;\r
3047             container connection-attachment-parameters {\r
3048                uses param;\r
3049             }\r
3050             uses allotted-resource-oper-status;\r
3051          }\r
3052          uses allotted-resource-status;\r
3053       }\r
3054    }\r
3055    container port-mirror-configurations {\r
3056       list port-mirror-configuration {\r
3057          key "configuration-id";\r
3058          leaf configuration-id {\r
3059             type string;\r
3060             mandatory true;\r
3061          }\r
3062          container configuration-data {\r
3063             container configuration-operation-information {\r
3064                uses port-mirror-topology-operation-information;\r
3065             }\r
3066             uses port-mirror-configuration-topology;\r
3067             uses configuration-oper-status;\r
3068          }\r
3069          uses configuration-status;\r
3070       }\r
3071    }\r
3072    container generic-configurations {\r
3073       list gc-configuration {\r
3074          key "configuration-id";\r
3075          leaf configuration-id {\r
3076             type string;\r
3077             mandatory true;\r
3078          }\r
3079          container configuration-data {\r
3080             container configuration-operation-information {\r
3081                uses gc-topology-operation-information;\r
3082             }\r
3083             uses configuration-oper-status;\r
3084          }\r
3085          uses configuration-status;\r
3086       }\r
3087    }\r
3088    rpc service-topology-operation {\r
3089       input {\r
3090          uses service-operation-information;\r
3091       }\r
3092       output {\r
3093          uses topology-response-common;\r
3094          uses service-response-information;\r
3095       }\r
3096    }\r
3097    rpc network-topology-operation {\r
3098       input {\r
3099          uses network-operation-information;\r
3100       }\r
3101       output {\r
3102          uses topology-response-common;\r
3103          uses network-response-information;\r
3104          uses service-response-information;\r
3105       }\r
3106    }\r
3107    rpc vnf-topology-operation {\r
3108       input {\r
3109          uses vnf-operation-information;\r
3110       }\r
3111       output {\r
3112          uses topology-response-common;\r
3113          uses vnf-response-information;\r
3114          uses service-response-information;\r
3115       }\r
3116    }\r
3117    rpc vf-module-topology-operation {\r
3118       input {\r
3119          uses vf-module-operation-information;\r
3120       }\r
3121       output {\r
3122          uses topology-response-common;\r
3123          uses vf-module-response-information;\r
3124          uses vnf-response-information;\r
3125          uses service-response-information;\r
3126       }\r
3127    }\r
3128    rpc contrail-route-topology-operation {\r
3129       input {\r
3130          uses contrail-route-operation-information;\r
3131       }\r
3132       output {\r
3133          uses topology-response-common;\r
3134          uses contrail-route-response-information;\r
3135          uses service-response-information;\r
3136       }\r
3137    }\r
3138    rpc security-zone-topology-operation {\r
3139       input {\r
3140          uses security-zone-operation-information;\r
3141       }\r
3142       output {\r
3143          uses topology-response-common;\r
3144          uses security-zone-response-information;\r
3145          uses service-response-information;\r
3146       }\r
3147    }\r
3148    rpc tunnelxconn-topology-operation {\r
3149        input {\r
3150            uses tunnelxconn-operation-information;\r
3151        }\r
3152        output {\r
3153            uses topology-response-common;\r
3154            uses tunnelxconn-response-information;\r
3155            uses service-response-information;\r
3156        }\r
3157    }\r
3158    rpc brg-topology-operation {\r
3159        input {\r
3160            uses brg-operation-information;\r
3161        }\r
3162        output {\r
3163            uses topology-response-common;\r
3164            uses brg-response-information;\r
3165            uses service-response-information;\r
3166        }\r
3167    }\r
3168    rpc policy-update-notify-operation {\r
3169       input {\r
3170          leaf policy-name {\r
3171             type string;\r
3172             mandatory true;\r
3173          }\r
3174          leaf version-id {\r
3175             description "Map JSON versionNo to version-id";\r
3176             type string;\r
3177             mandatory true;\r
3178          }\r
3179          leaf update-type {\r
3180             type string;\r
3181             mandatory true;\r
3182          }\r
3183       }\r
3184       output {\r
3185          leaf error-code {\r
3186             type string;\r
3187          }\r
3188          leaf error-msg {\r
3189             type string;\r
3190          }\r
3191       }\r
3192    }\r
3193    rpc getpathsegment-topology-operation {\r
3194       input {\r
3195          uses forwarding-path-operation-information;\r
3196       }\r
3197       output {\r
3198          uses topology-response-common;\r
3199          uses getpathsegment-response-information;\r
3200          uses service-response-information;\r
3201       }\r
3202    }\r
3203    rpc port-mirror-topology-operation {\r
3204       input {\r
3205          uses port-mirror-topology-operation-information;\r
3206       }\r
3207       output {\r
3208          uses topology-response-common;\r
3209          uses port-mirror-response-information;\r
3210          uses service-response-information;\r
3211       }\r
3212    }\r
3213    rpc generic-configuration-topology-operation {\r
3214       input {\r
3215          uses gc-topology-operation-information;\r
3216       }\r
3217       output {\r
3218          uses topology-response-common;\r
3219          uses gc-response-information;\r
3220          uses service-response-information;\r
3221       }\r
3222    }\r
3223    rpc vnf-get-resource-request {\r
3224       input {\r
3225          uses sdnc-request-header;\r
3226          uses request-information;\r
3227          uses service-information;\r
3228          uses vnf-get-resource-request-input-data;\r
3229       }\r
3230       output {\r
3231          container vnf-get-resource-response-information {\r
3232             uses vnf-cloud-param;\r
3233          }\r
3234       }\r
3235    }\r
3236    container preload-information {\r
3237       uses preload-model-information;\r
3238    }\r
3239    rpc preload-vf-module-topology-operation {\r
3240       input {\r
3241          uses sdnc-request-header;\r
3242          uses request-information;\r
3243          uses preload-vf-module-topology-information;\r
3244       }\r
3245       output {\r
3246          uses preload-topology-response-body;\r
3247       }\r
3248    }\r
3249    rpc preload-network-topology-operation {\r
3250       input {\r
3251          uses sdnc-request-header;\r
3252          uses request-information;\r
3253          uses preload-network-topology-information;\r
3254       }\r
3255       output {\r
3256          uses preload-topology-response-body;\r
3257       }\r
3258    }\r
3259 \r
3260    rpc connection-attachment-topology-operation {\r
3261        input {\r
3262            uses connection-attachment-operation-information;\r
3263        }\r
3264        output {\r
3265            uses topology-response-common;\r
3266            uses connection-attachment-response-information;\r
3267            uses service-response-information;\r
3268        }\r
3269    }\r
3270 \r
3271 } ////closes the module\r