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