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