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