86458994ea556323b37b2d4d899e60786dee4749
[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                enum "CreateAccessConnectivityInstance";\r
2522                enum "DeleteAccessConnectivityInstance";\r
2523                enum "CreateInternetProfileInstance";\r
2524                enum "ChangeInternetProfileInstance";\r
2525                enum "DeleteInternetProfileInstance";\r
2526             }\r
2527          }\r
2528          leaf source {\r
2529             type string;\r
2530          }\r
2531          leaf notification-url {\r
2532             type string;\r
2533          }\r
2534          leaf order-number {\r
2535             type string;\r
2536          }\r
2537          leaf order-version {\r
2538             type string;\r
2539          }\r
2540       }\r
2541    }\r
2542    grouping service-information {\r
2543       container service-information {\r
2544          leaf service-id {\r
2545             description "This maps to the product-family-id in A&AI";\r
2546             type string;\r
2547          }\r
2548          leaf subscription-service-type {\r
2549             description "used to reference a&ai subscription-service-type. For example, we show as vIPR-ATM in example.";\r
2550             type string;\r
2551          }\r
2552          uses onap-model-information;\r
2553          leaf service-instance-id {\r
2554             type string;\r
2555          }\r
2556          leaf global-customer-id {\r
2557             description "need for put of data to AnAI (MSO provides)";\r
2558             type string;\r
2559          }\r
2560          leaf subscriber-name {\r
2561             description "Would not be expected for vIPR-ATM or mobility services.";\r
2562             type string;\r
2563          }\r
2564       }\r
2565    }\r
2566    grouping onap-model-information {\r
2567       container onap-model-information {\r
2568          leaf model-invariant-uuid {\r
2569             description "identifies the invariant uuid for this service or resource";\r
2570             type string;\r
2571          }\r
2572          leaf model-customization-uuid {\r
2573             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
2574             type string;\r
2575          }\r
2576          leaf model-uuid {\r
2577             description "identifies the uuid for this service or resource, which is version specific";\r
2578             type string;\r
2579          }\r
2580          leaf model-version {\r
2581             type string;\r
2582          }\r
2583          leaf model-name {\r
2584             type string;\r
2585          }\r
2586       }\r
2587    }\r
2588    grouping region-identifier {\r
2589       leaf tenant {\r
2590          type string;\r
2591       }\r
2592       leaf aic-cloud-region {\r
2593          description "The AIC cloud region which maps to contrail versions";\r
2594          type string;\r
2595       }\r
2596       leaf cloud-owner {\r
2597          description "The cloud owner provided by the caller";\r
2598          type string;\r
2599       }\r
2600       leaf aic-clli {\r
2601          description "Not expected to be used";\r
2602          type string;\r
2603       }\r
2604    }\r
2605    grouping param {\r
2606       list param {\r
2607          key "name";\r
2608          leaf name {\r
2609             type string;\r
2610          }\r
2611          leaf value {\r
2612             type string;\r
2613          }\r
2614          container resource-resolution-data {\r
2615             list resource-key {\r
2616                key "name";\r
2617                leaf name {\r
2618                   type string;\r
2619                }\r
2620                leaf value {\r
2621                   type string;\r
2622                }\r
2623             }\r
2624             leaf status {\r
2625                description "SUCCESS, FAILED, or PENDING - RA returned data as capability";\r
2626                type string;\r
2627             }\r
2628             leaf capability-name {\r
2629                description "Resource assignment resolution Capability name";\r
2630                type string;\r
2631             }\r
2632          }\r
2633       }\r
2634    }\r
2635    grouping ip-addresses {\r
2636       container ip-addresses {\r
2637          leaf ipv4-address {\r
2638             type inet:ip-address;\r
2639          }\r
2640          leaf ipv6-address {\r
2641             type inet:ip-address;\r
2642          }\r
2643          leaf vipv4-address {\r
2644             description "Virtual v4";\r
2645             type inet:ip-address;\r
2646          }\r
2647          leaf vipv6-address {\r
2648             description "Virtual v6";\r
2649             type inet:ip-address;\r
2650          }\r
2651       }\r
2652    }\r
2653    grouping instance-reference {\r
2654       leaf instance-id {\r
2655          type string;\r
2656       }\r
2657       leaf object-path {\r
2658          description "restconf retrieval path to this particular objectE.g. restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/service-topology/";\r
2659          type string;\r
2660       }\r
2661    }\r
2662    grouping oper-status-data {\r
2663       leaf order-status {\r
2664          description "TBD - do we need Request failed statuses? RequestFailed | InProgressTimeout";\r
2665          type enumeration {\r
2666             enum "Active";\r
2667             enum "PendingAssignment";\r
2668             enum "PendingCreate";\r
2669             enum "PendingUpdate";\r
2670             enum "PendingDelete";\r
2671             enum "Deleted";\r
2672             enum "Created";\r
2673          }\r
2674       }\r
2675       leaf last-rpc-action {\r
2676          type enumeration {\r
2677             enum "assign";\r
2678             enum "activate";\r
2679             enum "delete";\r
2680             enum "unassign";\r
2681             enum "deactivate";\r
2682             enum "create";\r
2683             enum "changeassign";\r
2684             enum "reoptimize";\r
2685          }\r
2686       }\r
2687       leaf last-action {\r
2688          description "should be list of possible request-actions";\r
2689          type enumeration {\r
2690             enum "CreateNetworkInstance";\r
2691             enum "ActivateNetworkInstance";\r
2692             enum "DeActivateNetworkInstance";\r
2693             enum "DeleteNetworkInstance";\r
2694             enum "CreateServiceInstance";\r
2695             enum "DeleteServiceInstance";\r
2696             enum "CreateVnfInstance";\r
2697             enum "ActivateVnfInstance";\r
2698             enum "DeleteVnfInstance";\r
2699             enum "CreatePnfInstance";\r
2700             enum "ActivatePnfInstance";\r
2701             enum "DeletePnfInstance";\r
2702             enum "CreateVfModuleInstance";\r
2703             enum "ActivateVfModuleInstance";\r
2704             enum "DeleteVfModuleInstance";\r
2705             enum "CreateContrailRouteInstance";\r
2706             enum "DeleteContrailRouteInstance";\r
2707             enum "CreateSecurityZoneInstance";\r
2708             enum "DeleteSecurityZoneInstance";\r
2709             enum "ActivateDCINetworkInstance";\r
2710             enum "DeActivateDCINetworkInstance";\r
2711             enum "CreateTunnelXConnInstance";\r
2712             enum "DeleteTunnelXConnInstance";\r
2713             enum "CreateBRGInstance";\r
2714             enum "DeleteBRGInstance";\r
2715             enum "CreateSOTNConnectivityInstance";\r
2716             enum "ActivateSOTNConnectivityInstance";\r
2717             enum "DeactivateSOTNConnectivityInstance";\r
2718             enum "DeleteSOTNConnectivityInstance";\r
2719             enum "CreateSOTNAttachmentInstance";\r
2720             enum "ActivateSOTNAttachmentInstance";\r
2721             enum "DeactivateSOTNAttachmentInstance";\r
2722             enum "DeleteSOTNAttachmentInstance";\r
2723             enum "CreateSiteInstance";\r
2724             enum "ActivateSiteInstance";\r
2725             enum "DeactivateSiteInstance";\r
2726             enum "DeleteSiteInstance";\r
2727             enum "CreatePortMirrorConfigurationInstance";\r
2728             enum "DeletePortMirrorConfigurationInstance";\r
2729             enum "ChangePortMirrorConfigurationInstance";\r
2730             enum "CreateGenericConfigurationInstance";\r
2731             enum "DeleteGenericConfigurationInstance";\r
2732             enum "PreloadVfModuleRequest";\r
2733             enum "DeletePreloadVfModuleRequest";\r
2734             enum "PreloadNetworkRequest";\r
2735             enum "DeletePreloadNetworkRequest";\r
2736             enum "CreateForwardingPathInstance";\r
2737             enum "DeleteForwardingPathInstance";\r
2738             enum "UpdateForwardingPathInstance";\r
2739             enum "CreateSDWANDeviceInstance";\r
2740             enum "ActivateSDWANDeviceInstance";\r
2741             enum "DeactivateSDWANDeviceInstance";\r
2742             enum "DeleteSDWANDeviceInstance";\r
2743             enum "CreateSDWANPortInstance";\r
2744             enum "ActivateSDWANPortInstance";\r
2745             enum "DeactivateSDWANPortInstance";\r
2746             enum "DeleteSDWANPortInstance";\r
2747             enum "ReoptimizeSOTNInstance";\r
2748             enum "CreateSDWANLanPortInstance";\r
2749             enum "ActivateSDWANLanPortInstance";\r
2750             enum "DeactivateSDWANLanPortInstance";\r
2751             enum "DeleteSDWANLanPortInstance";\r
2752             enum "CreateSDWANVpnInstance";\r
2753             enum "ActivateSDWANVpnInstance";\r
2754             enum "DeactivateSDWANVpnInstance";\r
2755             enum "DeleteSDWANVpnInstance";\r
2756             enum "CreateSDWANSiteInstance";\r
2757             enum "ActivateSDWANSiteInstance";\r
2758             enum "DeactivateSDWANSiteInstance";\r
2759             enum "DeleteSDWANSiteInstance";\r
2760             enum "SdwanBandwidthChange";\r
2761             enum "CreateAccessConnectivityInstance";\r
2762             enum "DeleteAccessConnectivityInstance";\r
2763             enum "CreateInternetProfileInstance";\r
2764             enum "ChangeInternetProfileInstance";\r
2765             enum "DeleteInternetProfileInstance";\r
2766          }\r
2767       }\r
2768       leaf last-svc-request-id {\r
2769          description "Not currently populated in service data.";\r
2770          type string;\r
2771       }\r
2772       leaf last-order-status {\r
2773          type enumeration {\r
2774             enum "Active";\r
2775             enum "PendingAssignment";\r
2776             enum "PendingCreate";\r
2777             enum "PendingUpdate";\r
2778             enum "PendingDelete";\r
2779             enum "Deleted";\r
2780             enum "Created";\r
2781          }\r
2782       }\r
2783       leaf create-timestamp {\r
2784          description "Not currently populated in service data.";\r
2785          type string;\r
2786       }\r
2787       leaf modify-timestamp {\r
2788          type string;\r
2789       }\r
2790    }\r
2791    grouping service-response-information {\r
2792       container service-response-information {\r
2793          uses instance-reference;\r
2794       }\r
2795    }\r
2796    grouping network-response-information {\r
2797       container network-response-information {\r
2798          uses instance-reference;\r
2799       }\r
2800    }\r
2801    grouping vnf-response-information {\r
2802       container vnf-response-information {\r
2803          uses instance-reference;\r
2804       }\r
2805    }\r
2806    grouping vf-module-response-information {\r
2807       container vf-module-response-information {\r
2808          uses instance-reference;\r
2809       }\r
2810    }\r
2811    grouping pnf-response-information {\r
2812       container pnf-response-information {\r
2813          uses instance-reference;\r
2814       }\r
2815    }\r
2816    grouping contrail-route-response-information {\r
2817       container contrail-route-response-information {\r
2818          uses instance-reference;\r
2819       }\r
2820    }\r
2821    grouping security-zone-response-information {\r
2822       container security-zone-response-information {\r
2823          uses instance-reference;\r
2824       }\r
2825    }\r
2826    grouping getpathsegment-response-information {\r
2827       container getpathsegment-response-information {\r
2828          uses instance-reference;\r
2829       }\r
2830    }\r
2831    grouping port-mirror-response-information {\r
2832       container port-mirror-response-information {\r
2833          uses instance-reference;\r
2834       }\r
2835    }\r
2836    grouping gc-response-information {\r
2837       container gc-response-information {\r
2838          uses instance-reference;\r
2839       }\r
2840    }\r
2841    grouping tunnelxconn-response-information {\r
2842        container tunnelxconn-response-information {\r
2843            uses instance-reference;\r
2844        }\r
2845    }\r
2846    grouping brg-response-information {\r
2847        container brg-response-information {\r
2848            uses instance-reference;\r
2849        }\r
2850    }\r
2851    grouping connection-attachment-response-information {\r
2852       container connection-attachment-response-information {\r
2853          uses instance-reference;\r
2854       }\r
2855    }\r
2856    grouping preload-model-information {\r
2857       list preload-list {\r
2858          key "preload-id preload-type";\r
2859          leaf preload-id {\r
2860             description "vf-module-name or network name";\r
2861             type string;\r
2862             mandatory true;\r
2863          }\r
2864          leaf preload-type {\r
2865             description "network or vf-module";\r
2866             type string;\r
2867             mandatory true;\r
2868          }\r
2869          uses preload-data;\r
2870       }\r
2871    }\r
2872    grouping preload-data {\r
2873       container preload-data {\r
2874          uses preload-vf-module-topology-information;\r
2875          uses preload-network-topology-information;\r
2876          uses preload-oper-status;\r
2877       }\r
2878    }\r
2879    grouping preload-vf-module-topology-information {\r
2880       container preload-vf-module-topology-information {\r
2881          uses vnf-topology-identifier-structure;\r
2882          uses vnf-resource-assignments;\r
2883          uses vf-module-topology;\r
2884       }\r
2885    }\r
2886    grouping preload-network-topology-information {\r
2887       container preload-network-topology-information {\r
2888          uses network-topology-identifier-structure;\r
2889          uses subnets;\r
2890          uses vpn-bindings;\r
2891          uses network-policy;\r
2892          uses route-table-reference;\r
2893          uses host-routes;\r
2894          uses provider-network-information;\r
2895       }\r
2896    }\r
2897    grouping subnets {\r
2898       list subnets {\r
2899          key "start-address";\r
2900          leaf start-address {\r
2901             type inet:ip-address;\r
2902          }\r
2903          leaf gateway-address {\r
2904             type inet:ip-address;\r
2905          }\r
2906          leaf cidr-mask {\r
2907             type string;\r
2908          }\r
2909          leaf ip-version {\r
2910             type string;\r
2911          }\r
2912          leaf dhcp-enabled {\r
2913             type enumeration {\r
2914                enum "Y";\r
2915                enum "N";\r
2916             }\r
2917          }\r
2918          leaf dhcp-start-address {\r
2919             type string;\r
2920          }\r
2921          leaf dhcp-end-address {\r
2922             type string;\r
2923          }\r
2924          leaf addr-from-start {\r
2925             description "Default is N";\r
2926             type enumeration {\r
2927                enum "Y";\r
2928                enum "N";\r
2929             }\r
2930          }\r
2931          leaf subnet-name {\r
2932             type string;\r
2933          }\r
2934          leaf subnet-role {\r
2935             type string;\r
2936          }\r
2937          leaf subnet-sequence {\r
2938             type uint8;\r
2939          }\r
2940       }\r
2941    }\r
2942    grouping vpn-bindings {\r
2943       list vpn-bindings {\r
2944          key "vpn-binding-id";\r
2945          leaf vpn-binding-id {\r
2946             type string;\r
2947          }\r
2948          leaf vpn-name {\r
2949             type string;\r
2950          }\r
2951          leaf global-route-target {\r
2952             type string;\r
2953          }\r
2954          leaf route-target-role {\r
2955             type string;\r
2956          }\r
2957          leaf aic-zone {\r
2958             description "AIC Zone the route target associated with";\r
2959             type string;\r
2960          }\r
2961       }\r
2962    }\r
2963    grouping network-policy {\r
2964       list network-policy {\r
2965          key "network-policy-fqdn";\r
2966          leaf network-policy-fqdn {\r
2967             type string;\r
2968          }\r
2969          leaf network-policy-id {\r
2970             type string;\r
2971          }\r
2972       }\r
2973    }\r
2974    grouping route-table-reference {\r
2975       list route-table-reference {\r
2976          key "route-table-reference-fqdn";\r
2977          leaf route-table-reference-fqdn {\r
2978             type string;\r
2979             mandatory true;\r
2980          }\r
2981          leaf route-table-reference-id {\r
2982             type string;\r
2983          }\r
2984       }\r
2985    }\r
2986    grouping provider-network-information {\r
2987       leaf physical-network-name {\r
2988          type string;\r
2989       }\r
2990       leaf is-provider-network {\r
2991          type boolean;\r
2992       }\r
2993       leaf is-shared-network {\r
2994          type boolean;\r
2995       }\r
2996       leaf is-external-network { \r
2997          type boolean;\r
2998       }\r
2999    }\r
3000    grouping host-routes {\r
3001       list host-routes {\r
3002          key "route-prefix";\r
3003          leaf route-prefix {\r
3004             type string;\r
3005          }\r
3006          leaf next-hop {\r
3007             description "Could be ip-address or hostname or service-instance";\r
3008             type string;\r
3009          }\r
3010       }\r
3011    }\r
3012    grouping preload-oper-status {\r
3013       container preload-oper-status {\r
3014          leaf order-status {\r
3015             type enumeration {\r
3016                enum "Active";\r
3017                enum "PendingAssignment";\r
3018                enum "PendingCreate";\r
3019                enum "PendingUpdate";\r
3020                enum "PendingDelete";\r
3021                enum "Deleted";\r
3022             }\r
3023          }\r
3024          leaf last-action {\r
3025             type enumeration {\r
3026                enum "PreloadVfModuleRequest";\r
3027                enum "DeletePreloadVfModuleRequest";\r
3028                enum "PreloadNetworkRequest";\r
3029                enum "DeletePreloadNetworkRequest";\r
3030             }\r
3031          }\r
3032          leaf last-svc-request-id {\r
3033             type string;\r
3034          }\r
3035          leaf last-order-status {\r
3036             type enumeration {\r
3037                enum "Active";\r
3038                enum "PendingAssignment";\r
3039                enum "PendingCreate";\r
3040                enum "PendingUpdate";\r
3041                enum "PendingDelete";\r
3042                enum "Deleted";\r
3043             }\r
3044          }\r
3045          leaf create-timestamp {\r
3046             type string;\r
3047          }\r
3048          leaf modify-timestamp {\r
3049             type string;\r
3050          }\r
3051          leaf maintenance-indicator {\r
3052             type enumeration {\r
3053                enum "Y";\r
3054                enum "N";\r
3055             }\r
3056          }\r
3057       }\r
3058    }\r
3059    grouping preload-topology-response-body {\r
3060       leaf svc-request-id {\r
3061          type string;\r
3062       }\r
3063       leaf response-code {\r
3064          type string;\r
3065       }\r
3066       leaf response-message {\r
3067          type string;\r
3068       }\r
3069       leaf ack-final-indicator {\r
3070          type string;\r
3071       }\r
3072    }\r
3073    rpc generic-configuration-notification {\r
3074       input {\r
3075          uses sdnc-request-header;\r
3076          uses request-information;\r
3077          uses service-information;\r
3078          uses configuration-information;\r
3079          uses topology-response-common;\r
3080          leaf configuration-topology-link {\r
3081             description "Returns URL to generic-configuration-topology ";\r
3082             type string;\r
3083          }\r
3084          uses vnr-parameters;\r
3085          uses vnf-vnr-rebuild-data;\r
3086       }\r
3087    }\r
3088    container services {\r
3089       uses service-model-infrastructure;\r
3090    }\r
3091    container contrail-route-allotted-resources {\r
3092       list contrail-route-allotted-resource {\r
3093          key "allotted-resource-id";\r
3094          leaf allotted-resource-id {\r
3095             type string;\r
3096             mandatory true;\r
3097          }\r
3098          container allotted-resource-data {\r
3099             container allotted-resource-operation-information {\r
3100                uses contrail-route-operation-information;\r
3101             }\r
3102             uses contrail-route-topology;\r
3103             uses allotted-resource-oper-status;\r
3104          }\r
3105          uses allotted-resource-status;\r
3106       }\r
3107    }\r
3108    container security-zone-allotted-resources {\r
3109       list security-zone-allotted-resource {\r
3110          key "allotted-resource-id";\r
3111          leaf allotted-resource-id {\r
3112             type string;\r
3113             mandatory true;\r
3114          }\r
3115          container allotted-resource-data {\r
3116             container allotted-resource-operation-information {\r
3117                uses security-zone-operation-information;\r
3118             }\r
3119             uses security-zone-topology;\r
3120             container security-zone-parameters {\r
3121                uses param;\r
3122             }\r
3123             uses allotted-resource-oper-status;\r
3124          }\r
3125          uses allotted-resource-status;\r
3126       }\r
3127    }\r
3128    container tunnelxconn-allotted-resources {\r
3129        list tunnelxconn-allotted-resource {\r
3130            key "allotted-resource-id";\r
3131            leaf allotted-resource-id {\r
3132                type string;\r
3133                mandatory true;\r
3134            }\r
3135            container allotted-resource-data {\r
3136                container allotted-resource-operation-information {\r
3137                    uses tunnelxconn-operation-information;\r
3138                }\r
3139                uses tunnelxconn-topology;\r
3140                container tunnelxconn-parameters {\r
3141                    uses param;\r
3142                }\r
3143                uses allotted-resource-oper-status;\r
3144            }\r
3145            uses allotted-resource-status;\r
3146        }\r
3147    }\r
3148    container brg-allotted-resources {\r
3149        list brg-allotted-resource {\r
3150            key "allotted-resource-id";\r
3151            leaf allotted-resource-id {\r
3152                type string;\r
3153                mandatory true;\r
3154            }\r
3155            container allotted-resource-data {\r
3156                container allotted-resource-operation-information {\r
3157                    uses brg-operation-information;\r
3158                }\r
3159                uses brg-topology;\r
3160                container brg-parameters {\r
3161                    uses param;\r
3162                }\r
3163                uses allotted-resource-oper-status;\r
3164            }\r
3165            uses allotted-resource-status;\r
3166        }\r
3167    }\r
3168    container connection-attachment-allotted-resources {\r
3169       list connection-attachment-allotted-resource {\r
3170          key "allotted-resource-id";\r
3171          leaf allotted-resource-id {\r
3172             type string;\r
3173             mandatory true;\r
3174          }\r
3175          container allotted-resource-data {\r
3176             container allotted-resource-operation-information {\r
3177                uses connection-attachment-operation-information;\r
3178             }\r
3179             uses connection-attachment-topology;\r
3180             container connection-attachment-parameters {\r
3181                uses param;\r
3182             }\r
3183             uses allotted-resource-oper-status;\r
3184          }\r
3185          uses allotted-resource-status;\r
3186       }\r
3187    }\r
3188    container port-mirror-configurations {\r
3189       list port-mirror-configuration {\r
3190          key "configuration-id";\r
3191          leaf configuration-id {\r
3192             type string;\r
3193             mandatory true;\r
3194          }\r
3195          container configuration-data {\r
3196             container configuration-operation-information {\r
3197                uses port-mirror-topology-operation-information;\r
3198             }\r
3199             uses port-mirror-configuration-topology;\r
3200             uses configuration-oper-status;\r
3201          }\r
3202          uses configuration-status;\r
3203       }\r
3204    }\r
3205    container generic-configurations {\r
3206       list gc-configuration {\r
3207          key "configuration-id";\r
3208          leaf configuration-id {\r
3209             type string;\r
3210             mandatory true;\r
3211          }\r
3212          container configuration-data {\r
3213             container configuration-operation-information {\r
3214                uses gc-topology-operation-information;\r
3215             }\r
3216             uses configuration-oper-status;\r
3217          }\r
3218          uses configuration-status;\r
3219       }\r
3220    }\r
3221    rpc service-topology-operation {\r
3222       input {\r
3223          uses service-operation-information;\r
3224       }\r
3225       output {\r
3226          uses topology-response-common;\r
3227          uses service-response-information;\r
3228       }\r
3229    }\r
3230    rpc network-topology-operation {\r
3231       input {\r
3232          uses network-operation-information;\r
3233       }\r
3234       output {\r
3235          uses topology-response-common;\r
3236          uses network-response-information;\r
3237          uses service-response-information;\r
3238       }\r
3239    }\r
3240    rpc vnf-topology-operation {\r
3241       input {\r
3242          uses vnf-operation-information;\r
3243       }\r
3244       output {\r
3245          uses topology-response-common;\r
3246          uses vnf-response-information;\r
3247          uses service-response-information;\r
3248       }\r
3249    }\r
3250    rpc vf-module-topology-operation {\r
3251       input {\r
3252          uses vf-module-operation-information;\r
3253       }\r
3254       output {\r
3255          uses topology-response-common;\r
3256          uses vf-module-response-information;\r
3257          uses vnf-response-information;\r
3258          uses service-response-information;\r
3259       }\r
3260    }\r
3261    rpc pnf-topology-operation {\r
3262       input {\r
3263          uses pnf-operation-information;\r
3264       }\r
3265       output {\r
3266          uses topology-response-common;\r
3267          uses pnf-response-information;\r
3268          uses service-response-information;\r
3269       }\r
3270    }\r
3271    rpc contrail-route-topology-operation {\r
3272       input {\r
3273          uses contrail-route-operation-information;\r
3274       }\r
3275       output {\r
3276          uses topology-response-common;\r
3277          uses contrail-route-response-information;\r
3278          uses service-response-information;\r
3279       }\r
3280    }\r
3281    rpc security-zone-topology-operation {\r
3282       input {\r
3283          uses security-zone-operation-information;\r
3284       }\r
3285       output {\r
3286          uses topology-response-common;\r
3287          uses security-zone-response-information;\r
3288          uses service-response-information;\r
3289       }\r
3290    }\r
3291    rpc tunnelxconn-topology-operation {\r
3292        input {\r
3293            uses tunnelxconn-operation-information;\r
3294        }\r
3295        output {\r
3296            uses topology-response-common;\r
3297            uses tunnelxconn-response-information;\r
3298            uses service-response-information;\r
3299        }\r
3300    }\r
3301    rpc brg-topology-operation {\r
3302        input {\r
3303            uses brg-operation-information;\r
3304        }\r
3305        output {\r
3306            uses topology-response-common;\r
3307            uses brg-response-information;\r
3308            uses service-response-information;\r
3309        }\r
3310    }\r
3311    rpc policy-update-notify-operation {\r
3312       input {\r
3313          leaf policy-name {\r
3314             type string;\r
3315             mandatory true;\r
3316          }\r
3317          leaf version-id {\r
3318             description "Map JSON versionNo to version-id";\r
3319             type string;\r
3320             mandatory true;\r
3321          }\r
3322          leaf update-type {\r
3323             type string;\r
3324             mandatory true;\r
3325          }\r
3326       }\r
3327       output {\r
3328          leaf error-code {\r
3329             type string;\r
3330          }\r
3331          leaf error-msg {\r
3332             type string;\r
3333          }\r
3334       }\r
3335    }\r
3336    rpc getpathsegment-topology-operation {\r
3337       input {\r
3338          uses forwarding-path-operation-information;\r
3339       }\r
3340       output {\r
3341          uses topology-response-common;\r
3342          uses getpathsegment-response-information;\r
3343          uses service-response-information;\r
3344       }\r
3345    }\r
3346    rpc port-mirror-topology-operation {\r
3347       input {\r
3348          uses port-mirror-topology-operation-information;\r
3349       }\r
3350       output {\r
3351          uses topology-response-common;\r
3352          uses port-mirror-response-information;\r
3353          uses service-response-information;\r
3354       }\r
3355    }\r
3356    rpc generic-configuration-topology-operation {\r
3357       input {\r
3358          uses gc-topology-operation-information;\r
3359       }\r
3360       output {\r
3361          uses topology-response-common;\r
3362          uses gc-response-information;\r
3363          uses service-response-information;\r
3364       }\r
3365    }\r
3366    rpc vnf-get-resource-request {\r
3367       input {\r
3368          uses sdnc-request-header;\r
3369          uses request-information;\r
3370          uses service-information;\r
3371          uses vnf-get-resource-request-input-data;\r
3372       }\r
3373       output {\r
3374          container vnf-get-resource-response-information {\r
3375             uses vnf-cloud-param;\r
3376          }\r
3377       }\r
3378    }\r
3379    container preload-information {\r
3380       uses preload-model-information;\r
3381    }\r
3382    rpc preload-vf-module-topology-operation {\r
3383       input {\r
3384          uses sdnc-request-header;\r
3385          uses request-information;\r
3386          uses preload-vf-module-topology-information;\r
3387       }\r
3388       output {\r
3389          uses preload-topology-response-body;\r
3390       }\r
3391    }\r
3392    rpc preload-network-topology-operation {\r
3393       input {\r
3394          uses sdnc-request-header;\r
3395          uses request-information;\r
3396          uses preload-network-topology-information;\r
3397       }\r
3398       output {\r
3399          uses preload-topology-response-body;\r
3400       }\r
3401    }\r
3402 \r
3403    rpc connection-attachment-topology-operation {\r
3404        input {\r
3405            uses connection-attachment-operation-information;\r
3406        }\r
3407        output {\r
3408            uses topology-response-common;\r
3409            uses connection-attachment-response-information;\r
3410            uses service-response-information;\r
3411        }\r
3412    }\r
3413 \r
3414 } ////closes the module\r