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