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