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