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