New DGs added for CCVPN scenario enhancement.
[sdnc/northbound.git] / generic-resource-api / model / yang / src / main / yang / GENERIC-RESOURCE-API.yang
1 module GENERIC-RESOURCE-API {\r
2 \r
3    namespace "org:onap:sdnc:northbound:generic-resource";\r
4 \r
5    prefix generic-resource-api;\r
6 \r
7    import ietf-inet-types { prefix "inet"; revision-date "2013-07-15"; }\r
8 \r
9    import ietf-yang-types { prefix yang; }\r
10 \r
11    revision "2017-08-24" {\r
12      description\r
13         "ONAP Amsterdam version";\r
14    }\r
15 \r
16    grouping service-model-infrastructure {\r
17       list service {\r
18          key "service-instance-id";\r
19          leaf service-instance-id {\r
20             description "Keep as M";\r
21             type string;\r
22             mandatory true;\r
23          }\r
24          uses service-data;\r
25          uses service-status;\r
26       }\r
27    }\r
28    grouping service-data {\r
29       container service-data {\r
30          uses service-operation-information;\r
31          uses service-topology;\r
32          uses service-level-oper-status;\r
33          leaf controller-ipv4-address {\r
34              type string;\r
35              mandatory false;\r
36          }\r
37          container networks {\r
38             list network {\r
39                key "network-id";\r
40                leaf network-id {\r
41                   type string {\r
42                       length "0..255";\r
43                   }\r
44                   mandatory true;\r
45                }\r
46                container network-data {\r
47                   uses network-operation-information;\r
48                   uses network-topology;\r
49                   container network-provided-allotted-resources {\r
50                      leaf-list network-provided-ar-id {\r
51                         description "List of allotted resources using capacity from this network";\r
52                         type string {\r
53                             length "0..255";\r
54                         }\r
55                         ordered-by user;\r
56                      }\r
57                   }\r
58                   uses network-level-oper-status;\r
59                }\r
60             }\r
61          }\r
62          container pnfs {\r
63             list pnf {\r
64                key "pnf-id";\r
65                leaf pnf-id {\r
66                   type string;\r
67                   mandatory true;\r
68                }\r
69                container pnf-data {\r
70                   uses pnf-operation-information;\r
71                   uses pnf-topology;\r
72                   uses pnf-level-oper-status;\r
73                }\r
74             }\r
75          }\r
76          container vnfs {\r
77             list vnf {\r
78                key "vnf-id";\r
79                leaf vnf-id {\r
80                   type string {\r
81                       length "0..255";\r
82                   }\r
83                   mandatory true;\r
84                }\r
85                container vnf-data {\r
86                   uses vnf-operation-information;\r
87                   uses vnf-topology;\r
88                   container vnf-network-collections {\r
89                      uses vnf-network-collection;\r
90                   }\r
91                   container vnf-sub-interface-groups {\r
92                      uses vnf-sub-interface-group;\r
93                   }\r
94                   container vnf-provided-allotted-resources {\r
95                      leaf-list vnf-provided-ar-id {\r
96                         description "List of allotted resources using capacity from this vnf";\r
97                         type string {\r
98                             length "0..255";\r
99                         }\r
100                         ordered-by user;\r
101                      }\r
102                   }\r
103                   uses vnf-level-oper-status;\r
104                   container vf-modules {\r
105                      list vf-module {\r
106                         key "vf-module-id";\r
107                         leaf vf-module-id {\r
108                            type string {\r
109                                length "0..255";\r
110                            }\r
111                            mandatory true;\r
112                         }\r
113                         container vf-module-data {\r
114                            uses vf-module-operation-information;\r
115                            uses vf-module-topology;\r
116                            uses vf-module-level-oper-status;\r
117                         }\r
118                      }\r
119                   }\r
120                }\r
121             }\r
122          }\r
123          container consumed-allotted-resources {\r
124             list consumed-allotted-resource {\r
125                key "allotted-resource-id";\r
126                uses allotted-resource-info;\r
127             }\r
128          }\r
129          container provided-allotted-resources {\r
130             list provided-allotted-resource {\r
131                key "allotted-resource-id";\r
132                uses allotted-resource-info;\r
133             }\r
134          }\r
135          container provided-configurations {\r
136             list provided-configuration {\r
137                key "configuration-id";\r
138                uses configuration-info;\r
139             }\r
140          }\r
141          container vnfc-instance-groups {\r
142             uses vnfc-instance-group;\r
143          }\r
144          container network-instance-groups {\r
145             uses network-instance-group;\r
146          }\r
147          container forwarding-paths {\r
148             list forwarding-path {\r
149                key "forwarding-path-id";\r
150                leaf forwarding-path-id {\r
151                   description "Generated by SDNC";\r
152                   type string {\r
153                       length "0..512";\r
154                   }\r
155                   mandatory true;\r
156                }\r
157                uses forwarding-path-information;\r
158             }\r
159          }\r
160       }\r
161    }\r
162    grouping service-status {\r
163       container service-status {\r
164          leaf response-code {\r
165             type string {\r
166                 length "0..255";\r
167             }\r
168          }\r
169          leaf response-message {\r
170             type string {\r
171                 length "0..2000";\r
172             }\r
173          }\r
174          leaf final-indicator {\r
175             type string {\r
176                 length "0..255";\r
177             }\r
178          }\r
179          leaf request-status {\r
180             type enumeration {\r
181                enum "synccomplete";\r
182                enum "asynccomplete";\r
183                enum "notifycomplete";\r
184             }\r
185          }\r
186          leaf action {\r
187             description "value would one of possible request-actions; match the list in service-data oper-status";\r
188             type string {\r
189                 length "0..255";\r
190             }\r
191          }\r
192          leaf rpc-name {\r
193             type string {\r
194                 length "0..255";\r
195             }\r
196          }\r
197          leaf rpc-action {\r
198             description "this is the svc-action from the incoming request";\r
199             type enumeration {\r
200                enum "assign";\r
201                enum "activate";\r
202                enum "configure";\r
203                enum "delete";\r
204                enum "unassign";\r
205                enum "deactivate";\r
206                enum "create";\r
207             }\r
208          }\r
209          leaf response-timestamp {\r
210             type string {\r
211                 length "0..255";\r
212             }\r
213          }\r
214       }\r
215    }\r
216    grouping service-operation-information {\r
217       uses sdnc-request-header;\r
218       uses request-information;\r
219       uses service-information;\r
220       uses service-request-input;\r
221    }\r
222    grouping service-request-input {\r
223       container service-request-input {\r
224          leaf service-instance-name {\r
225             type string {\r
226                 length "0..255" ;\r
227             }\r
228          }\r
229          container service-input-parameters {\r
230             uses param;\r
231          }\r
232       }\r
233    }\r
234    grouping service-topology {\r
235       container service-topology {\r
236          uses service-topology-identifier;\r
237          uses onap-model-information;\r
238          uses service-assignments;\r
239          uses service-parameters;\r
240       }\r
241    }\r
242    grouping service-topology-identifier {\r
243       container service-topology-identifier {\r
244          leaf service-instance-id {\r
245             description "repeated";\r
246             type string {\r
247                 length "0..255" ;\r
248             }\r
249          }\r
250          leaf service-type {\r
251             description "tag labeled subscription-service-type in the service-information input";\r
252             type string {\r
253                 length "0..255" ;\r
254             }\r
255          }\r
256          leaf service-id {\r
257             description "from MSO input on STO assign";\r
258             type string {\r
259                 length "0..255" ;\r
260             }\r
261          }\r
262          leaf service-instance-name {\r
263             description "optionally comes from service-request-input container or is assigned by sdn-c";\r
264             type string {\r
265                 length "0..255" ;\r
266             }\r
267          }\r
268          leaf global-customer-id {\r
269             type string {\r
270                 length "0..255" ;\r
271             }\r
272          }\r
273       }\r
274    }\r
275    grouping service-assignments {\r
276       container service-assignments {\r
277       }\r
278    }\r
279    grouping service-parameters {\r
280       container service-parameters {\r
281          list service-parameter {\r
282             key "service-parameter-name";\r
283             leaf service-parameter-name {\r
284                type string {\r
285                    length "0..255" ;\r
286                }\r
287             }\r
288             leaf service-parameter-value {\r
289                type string {\r
290                    length "0..20000" ;\r
291                }\r
292             }\r
293          }\r
294       }\r
295    }\r
296    grouping service-level-oper-status {\r
297       container service-level-oper-status {\r
298          uses oper-status-data;\r
299       }\r
300    }\r
301    grouping network-operation-information {\r
302       uses sdnc-request-header;\r
303       uses request-information;\r
304       uses service-information;\r
305       uses network-information;\r
306       uses network-request-input;\r
307    }\r
308    grouping network-information {\r
309       container network-information {\r
310          leaf network-id {\r
311             type string {\r
312                 length "0..255" ;\r
313             }\r
314          }\r
315          leaf network-type {\r
316             type string {\r
317                 length "0..255" ;\r
318             }\r
319          }\r
320          leaf network-technology {\r
321             type string {\r
322                 length "0..255" ;\r
323             }\r
324          }\r
325          leaf from-preload {\r
326             description "Indicates if source is preload data";\r
327             type boolean;\r
328          }\r
329          uses onap-model-information;\r
330       }\r
331    }\r
332    grouping network-request-input {\r
333       container network-request-input {\r
334          leaf network-name {\r
335             type string {\r
336                 length "0..255" ;\r
337             }\r
338          }\r
339          uses region-identifier;\r
340          container network-input-parameters {\r
341             uses param;\r
342          }\r
343          leaf network-instance-group-id {\r
344             description "When network has instance-group role in service model";\r
345             type string {\r
346                 length "0..255" ;\r
347             }\r
348          }\r
349       }\r
350    }\r
351    grouping network-topology {\r
352       container network-topology {\r
353          uses network-topology-identifier-structure;\r
354          uses region-identifier;\r
355          uses onap-model-information;\r
356          uses network-assignments;\r
357          uses network-parameters;\r
358       }\r
359    }\r
360    grouping network-topology-identifier-structure {\r
361       container network-topology-identifier-structure {\r
362          leaf network-id {\r
363             type string {\r
364                 length "0..255" ;\r
365             }\r
366          }\r
367          leaf network-name {\r
368             type string {\r
369                 length "0..255" ;\r
370             }\r
371          }\r
372          leaf network-role {\r
373             type string {\r
374                 length "0..255";\r
375             }\r
376          }\r
377          leaf network-type {\r
378             type string {\r
379                 length "0..255";\r
380             }\r
381          }\r
382          leaf network-instance-group-id {\r
383             description "When network is part of network instance-Group-data & instance Group in A&AI";\r
384             type string {\r
385                 length "0..255";\r
386             }\r
387          }\r
388          leaf network-technology {\r
389             type string {\r
390                 length "0..255";\r
391             }\r
392          }\r
393          leaf eipam-v4-address-plan {\r
394             type string {\r
395                 length "0..255";\r
396             }\r
397          }\r
398          leaf eipam-v6-address-plan {\r
399             type string {\r
400                 length "0..255";\r
401             }\r
402          }\r
403          leaf is-trunked {\r
404             type boolean;\r
405          }\r
406          leaf segmentation-id {\r
407             type string {\r
408                 length "0..255";\r
409             }\r
410          }\r
411          container related-networks {\r
412             uses related-network;\r
413          }\r
414       }\r
415    }\r
416    grouping network-assignments {\r
417       container network-assignments {\r
418       }\r
419    }\r
420    grouping network-parameters {\r
421       container network-parameters {\r
422          list network-parameter {\r
423             key "network-parameter-name";\r
424             leaf network-parameter-name {\r
425                type string {\r
426                    length "0..255";\r
427                }\r
428             }\r
429             leaf network-parameter-value {\r
430                type string {\r
431                    length "0..20000";\r
432                }\r
433             }\r
434          }\r
435       }\r
436    }\r
437    grouping network-instance-group {\r
438       list network-instance-group {\r
439          key "network-instance-group-id";\r
440          leaf network-instance-group-id {\r
441             description "Also a Key in Network Instance Group in A&AI";\r
442             type string {\r
443                 length "0..255";\r
444             }\r
445             mandatory true;\r
446          }\r
447          leaf network-instance-group-function {\r
448             type string {\r
449                 length "0..255";\r
450             }\r
451          }\r
452          leaf service-instance-id {\r
453             type string {\r
454                 length "0..255";\r
455             }\r
456          }\r
457          uses onap-model-information;\r
458          container subnet-assignment-policy {\r
459             leaf subnet-use {\r
460                description "Current valid values - unique, shared (default)";\r
461                type string {\r
462                    length "0..255";\r
463                }\r
464             }\r
465          }\r
466          container vpn-binding-policy {\r
467             leaf vpn-binding {\r
468                type string {\r
469                    length "0..255";\r
470                }\r
471             }\r
472             leaf vpn-name {\r
473                type string {\r
474                    length "0..255";\r
475                }\r
476             }\r
477             leaf vpn-type {\r
478                type string {\r
479                    length "0..255";\r
480                }\r
481             }\r
482             leaf vpn-platform {\r
483                type string {\r
484                    length "0..255";\r
485                }\r
486             }\r
487             leaf global-route-target {\r
488                type string {\r
489                    length "0..255";\r
490                }\r
491             }\r
492             leaf route-target-role {\r
493                type string {\r
494                    length "0..255";\r
495                }\r
496             }\r
497          }\r
498          container aggregate-route-policy {\r
499             leaf aggregate-route-policy-name {\r
500                type string {\r
501                    length "0..255";\r
502                }\r
503             }\r
504             leaf ipv4-aggregate-route-level {\r
505                type string {\r
506                    length "0..255";\r
507                }\r
508             }\r
509             leaf ipv6-aggregate-route-level {\r
510                type string {\r
511                    length "0..255";\r
512                }\r
513             }\r
514          }\r
515          uses aggregate-routes;\r
516          uses subnets;\r
517          leaf subnet-key-value {\r
518             description "key-value provided to IPAM when  creating shared subnet";\r
519             type string {\r
520                 length "0..255";\r
521             }\r
522          }\r
523          container networks {\r
524             list network {\r
525                key "network-id";\r
526                leaf network-id {\r
527                   description "Index into network-topology-identifier structure";\r
528                   type string {\r
529                       length "0..255";\r
530                   }\r
531                   mandatory true;\r
532                }\r
533                leaf neutron-network-id {\r
534                   description "Neutron-network-id assigned by PO/RO";\r
535                   type string {\r
536                       length "0..255";\r
537                   }\r
538                }\r
539                uses vpn-bindings;\r
540                leaf vlan-tag-id {\r
541                   type uint32;\r
542                }\r
543                leaf network-status {\r
544                   description "assigned, unassigned";\r
545                   type string {\r
546                       length "0..255";\r
547                   }\r
548                }\r
549                container customer-bonding-requests {\r
550                   list customer-bonding-request {\r
551                      key "configuration-id";\r
552                      leaf configuration-id {\r
553                         description "e.g. vlan network receptor configuration id";\r
554                         type string {\r
555                             length "0..255";\r
556                         }\r
557                      }\r
558                   }\r
559                }\r
560             }\r
561          }\r
562       }\r
563    }\r
564    grouping network-level-oper-status {\r
565       container network-level-oper-status {\r
566          uses oper-status-data;\r
567       }\r
568    }\r
569    grouping pnf-operation-information {\r
570       uses sdnc-request-header;\r
571       uses request-information;\r
572       uses service-information;\r
573       uses pnf-details;\r
574       uses pnf-request-input;\r
575    }\r
576    grouping pnf-details {\r
577       container pnf-details {\r
578          leaf pnf-id {\r
579             description "pnfId*Identifier of this Pnf information element. CORRELATIONID = PNF-NAME (A&AI)";\r
580             type string;\r
581             mandatory true;\r
582          }\r
583          leaf pnf-type {\r
584             description "pnfType (template)*Type of Resource. NEW type: PNF (pre-defined in SDC)";\r
585             type string;\r
586          }\r
587          leaf pnf-name {\r
588             type string;\r
589          }\r
590          uses onap-model-information;\r
591       }\r
592    }\r
593    grouping pnf-request-input {\r
594       container pnf-request-input {\r
595          leaf request-version {\r
596             description "keep this? e.g. 1702";\r
597             type string;\r
598          }\r
599          leaf pnf-name {\r
600             type string;\r
601          }\r
602          uses region-identifier;\r
603          container pnf-input-parameters {\r
604             uses param;\r
605          }\r
606       }\r
607    }\r
608    grouping pnf-topology {\r
609       container pnf-topology {\r
610          uses pnf-topology-identifier-structure;\r
611          uses region-identifier;\r
612          uses onap-model-information;\r
613          container pnf-parameters-data {\r
614             uses param;\r
615          }\r
616          leaf sdnc-generated-cloud-resources {\r
617             description "Indicate if source is sdnc generated cloud param.When true, the parameters are literal HEAT template parameter names;When false, the parameters need to be converted to HEAT format";\r
618             type boolean;\r
619          }\r
620       }\r
621    }\r
622    grouping pnf-topology-identifier-structure {\r
623       container pnf-topology-identifier-structure {\r
624          leaf pnf-id {\r
625             type string;\r
626          }\r
627          leaf pnf-type {\r
628             description "In preload tree, this label is used for the vf-module-type";\r
629             type string;\r
630          }\r
631          leaf pnf-name {\r
632             description "optionally comes from pnf-request-input container or is assigned by sdn-c";\r
633             type string;\r
634          }\r
635       }\r
636    }\r
637    grouping pnf-level-oper-status {\r
638       container pnf-level-oper-status {\r
639          uses oper-status-data;\r
640       }\r
641    }\r
642    grouping vnf-operation-information {\r
643       uses sdnc-request-header;\r
644       uses request-information;\r
645       uses service-information;\r
646       uses vnf-information;\r
647       uses vnf-request-input;\r
648       uses license-information;\r
649    }\r
650    grouping vnf-information {\r
651       container vnf-information {\r
652          leaf vnf-id {\r
653             type string {\r
654                 length "0..255";\r
655             }\r
656          }\r
657          leaf vnf-type {\r
658             type string {\r
659                 length "0..255";\r
660             }\r
661          }\r
662          leaf vnf-name {\r
663             type string {\r
664                 length "0..255";\r
665             }\r
666          }\r
667          uses onap-model-information;\r
668       }\r
669    }\r
670    grouping vnf-request-input {\r
671       container vnf-request-input {\r
672          leaf request-version {\r
673             description "keep this? e.g. 1702";\r
674             type string {\r
675                 length "0..255";\r
676             }\r
677          }\r
678          leaf vnf-name {\r
679             type string {\r
680                 length "0..255";\r
681             }\r
682          }\r
683          uses region-identifier;\r
684          container vnf-networks {\r
685             list vnf-network {\r
686                key "network-role";\r
687                uses vnf-network-data;\r
688             }\r
689          }\r
690          list vnf-network-instance-group-ids {\r
691             key "vnf-network-instance-group-id";\r
692             leaf vnf-network-instance-group-id {\r
693                description "List of vnf network-instance-group";\r
694                type string {\r
695                    length "0..255";\r
696                }\r
697             }\r
698          }\r
699          container vnf-input-parameters {\r
700             uses param;\r
701          }\r
702       }\r
703    }\r
704    grouping vnf-topology {\r
705       container vnf-topology {\r
706          uses vnf-topology-identifier-structure;\r
707          uses region-identifier;\r
708          uses onap-model-information;\r
709          uses vnf-resource-assignments;\r
710          container vnf-parameters-data {\r
711             uses param;\r
712          }\r
713          leaf sdnc-generated-cloud-resources {\r
714             description "Indicate if source is sdnc generated cloud param. When true, the parameters are literal HEAT template parameter names;When false, the parameters need to be converted to HEAT format";\r
715             type boolean;\r
716          }\r
717       }\r
718    }\r
719    grouping vnf-topology-identifier-structure {\r
720       container vnf-topology-identifier-structure {\r
721          leaf vnf-id {\r
722             type string {\r
723                 length "0..255";\r
724             }\r
725          }\r
726          leaf vnf-type {\r
727             description "In preload tree, this label is used for the vf-module-type";\r
728             type string;\r
729          }\r
730          leaf nf-type {\r
731             type string {\r
732                 length "0..255";\r
733             }\r
734          }\r
735          leaf nf-role {\r
736             type string {\r
737                 length "0..255";\r
738             }\r
739          }\r
740          leaf nf-function {\r
741             type string {\r
742                 length "0..255";\r
743             }\r
744          }\r
745          leaf nf-code {\r
746             description "used in vnf naming";\r
747             type string {\r
748                 length "0..255";\r
749             }\r
750          }\r
751          leaf vnf-name {\r
752             description "optionally comes from vnf-request-input container or is assigned by sdn-c";\r
753             type string {\r
754                 length "0..255";\r
755             }\r
756          }\r
757       }\r
758    }\r
759    grouping vnf-resource-assignments {\r
760       container vnf-resource-assignments {\r
761          leaf vnf-status {\r
762             description "Orchestration status from AAI - to be set by SDNC";\r
763             type string {\r
764                 length "0..255";\r
765             }\r
766          }\r
767          container availability-zones {\r
768             leaf-list availability-zone {\r
769                description "Openstack availability zone name or UUID";\r
770                type string {\r
771                   length "0..255";\r
772                }\r
773                ordered-by user;\r
774             }\r
775             leaf max-count {\r
776                description "From the TOSCA data. Indicates the largest availability zone count needed by any vf-module in the VNF.";\r
777                type uint8;\r
778             }\r
779          }\r
780          container vnf-networks {\r
781             list vnf-network {\r
782                key "network-role";\r
783                uses vnf-network-data;\r
784             }\r
785          }\r
786       }\r
787    }\r
788    grouping vnf-network-data {\r
789       leaf network-role {\r
790          description "A Network Role to which a VNF must connect";\r
791          type string {\r
792              length "0..255";\r
793          }\r
794       }\r
795       leaf network-name {\r
796          description "Unique Neutron UUID of an instance of the network role ";\r
797          type string {\r
798              length "0..255";\r
799          }\r
800       }\r
801       leaf neutron-id {\r
802          description "Unique Neutron UUID of an instance of the network role ";\r
803          type string {\r
804              length "0..255";\r
805          }\r
806       }\r
807       leaf network-id {\r
808          description "Unique Neutron UUID of an instance of the network role ";\r
809          type string {\r
810              length "0..255";\r
811          }\r
812       }\r
813       leaf contrail-network-fqdn {\r
814          description "contrail network policy object";\r
815          type string {\r
816              length "0..255";\r
817          }\r
818       }\r
819       container subnets-data {\r
820          list subnet-data {\r
821             key "sdnc-subnet-id";\r
822             leaf sdnc-subnet-id {\r
823                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
824                type string {\r
825                    length "0..255";\r
826                }\r
827             }\r
828             leaf subnet-role {\r
829                description "Subnet Role for the subnet";\r
830                type string {\r
831                    length "0..255";\r
832                }\r
833             }\r
834             leaf subnet-name {\r
835                description "Populated for preload only";\r
836                type string {\r
837                    length "0..255";\r
838                }\r
839             }\r
840             leaf ip-version {\r
841                description "Should be ipv4 or ipv6";\r
842                type string {\r
843                    length "0..255";\r
844                }\r
845             }\r
846             leaf subnet-id {\r
847                description "subnet UUID to be passed into the HEAT template";\r
848                type string {\r
849                    length "0..255";\r
850                }\r
851             }\r
852             leaf dhcp-enabled {\r
853                description "Indicator to use this subnet for  DHCP ";\r
854                type enumeration {\r
855                   enum "Y";\r
856                   enum "N";\r
857                }\r
858             }\r
859             leaf network-start-address {\r
860                description "start-address of the subnet";\r
861                type inet:ip-address;\r
862             }\r
863             leaf gateway-address {\r
864                description "subnet gateway address";\r
865                type inet:ip-address;\r
866             }\r
867             leaf cidr-mask {\r
868                description "cidr mask";\r
869                type string {\r
870                    length "0..255";\r
871                }\r
872             }\r
873          }\r
874       }\r
875       leaf is-trunked {\r
876          type boolean;\r
877       }\r
878       leaf segmentation-id {\r
879          type string {\r
880              length "0..255";\r
881          }\r
882       }\r
883       container related-networks {\r
884          uses related-network;\r
885       }\r
886    }\r
887    grouping vnf-level-oper-status {\r
888       container vnf-level-oper-status {\r
889          uses oper-status-data;\r
890       }\r
891    }\r
892    grouping vf-module-operation-information {\r
893       uses sdnc-request-header;\r
894       uses request-information;\r
895       uses service-information;\r
896       uses vnf-information;\r
897       uses vf-module-information;\r
898       uses vf-module-request-input;\r
899    }\r
900    grouping vf-module-information {\r
901       container vf-module-information {\r
902          leaf vf-module-id {\r
903             type string {\r
904                 length "0..255";\r
905             }\r
906          }\r
907          leaf vf-module-type {\r
908             type string {\r
909                 length "0..255";\r
910             }\r
911          }\r
912          leaf from-preload {\r
913             description "Indicates if source is preload data";\r
914             type boolean;\r
915          }\r
916          uses onap-model-information;\r
917       }\r
918    }\r
919    grouping vf-module-request-input {\r
920       container vf-module-request-input {\r
921          leaf request-version {\r
922             description "keep this?";\r
923             type string {\r
924                 length "0..255";\r
925             }\r
926          }\r
927          leaf vf-module-name {\r
928             type string {\r
929                 length "0..255";\r
930             }\r
931          }\r
932          uses region-identifier;\r
933          container vf-module-input-parameters {\r
934             uses param;\r
935          }\r
936       }\r
937    }\r
938    grouping vf-module-topology {\r
939       container vf-module-topology {\r
940          uses vf-module-topology-identifier;\r
941          uses region-identifier;\r
942          uses onap-model-information;\r
943          uses vf-module-assignments;\r
944          container vf-module-parameters {\r
945             uses param;\r
946          }\r
947          leaf sdnc-generated-cloud-resources {\r
948             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
949             type boolean;\r
950          }\r
951       }\r
952    }\r
953    grouping vf-module-topology-identifier {\r
954       container vf-module-topology-identifier {\r
955          leaf vf-module-id {\r
956             description "vf-module id";\r
957             type string {\r
958                 length "0..255";\r
959             }\r
960          }\r
961          leaf vf-module-name {\r
962             description "vf-module-name";\r
963             type string {\r
964                 length "0..255";\r
965             }\r
966          }\r
967          leaf vf-module-type {\r
968             type string {\r
969                 length "0..255";\r
970             }\r
971          }\r
972       }\r
973    }\r
974    grouping vf-module-assignments {\r
975       container vf-module-assignments {\r
976          leaf vf-module-status {\r
977             description "Orchestration status from AAI";\r
978             type string {\r
979                 length "0..255";\r
980             }\r
981          }\r
982          container vms {\r
983             list vm {\r
984                key "vm-type";\r
985                uses vm-topology-data;\r
986             }\r
987          }\r
988          uses vlan-vnfc-instance-groups;\r
989          container dhcp-subnet-assignments {\r
990             list dhcp-subnet-assignment {\r
991                key "neutron-subnet-id";\r
992                leaf neutron-subnet-id {\r
993                   description "Same as subnet-id in subnet-data structure";\r
994                   type string {\r
995                       length "0..255";\r
996                   }\r
997                   mandatory true;\r
998                }\r
999                leaf network-role {\r
1000                   type string {\r
1001                       length "0..255";\r
1002                   }\r
1003                }\r
1004                leaf ip-version {\r
1005                   type string {\r
1006                       length "0..255";\r
1007                   }\r
1008                }\r
1009             }\r
1010          }\r
1011       }\r
1012    }\r
1013    grouping vm-topology-data {\r
1014       leaf vm-type {\r
1015          type string {\r
1016              length "0..255";\r
1017          }\r
1018          mandatory true;\r
1019       }\r
1020       uses onap-model-information;\r
1021       leaf nfc-naming-code {\r
1022          description "used in vm naming(draft 29: changed from nfc-code)";\r
1023          type string {\r
1024              length "0..255";\r
1025          }\r
1026       }\r
1027       leaf vm-type-tag {\r
1028          description "from tosca data on vfc";\r
1029          type string {\r
1030              length "0..255";\r
1031          }\r
1032       }\r
1033       leaf vm-count {\r
1034          type uint8;\r
1035       }\r
1036       container vm-names {\r
1037          leaf-list vm-name {\r
1038             type string {\r
1039                length "0..255";\r
1040             }\r
1041             ordered-by user;\r
1042          }\r
1043          list vnfc-names {\r
1044             key "vnfc-name";\r
1045             leaf vnfc-name {\r
1046                type string {\r
1047                    length "0..255";\r
1048                }\r
1049             }\r
1050             container vnfc-networks {\r
1051                uses vnfc-network-data;\r
1052             }\r
1053          }\r
1054       }\r
1055       container vm-networks {\r
1056          list vm-network {\r
1057             key "network-role";\r
1058             uses vm-network-data;\r
1059          }\r
1060       }\r
1061    }\r
1062    grouping vnfc-network-data {\r
1063       list vnfc-network-data {\r
1064          key "vnfc-network-role";\r
1065          leaf vnfc-network-role {\r
1066             type string {\r
1067                 length "0..255";\r
1068             }\r
1069             mandatory true;\r
1070          }\r
1071          leaf vnfc-type {\r
1072             type string {\r
1073                 length "0..255";\r
1074             }\r
1075          }\r
1076          uses connection-point;\r
1077          container vnfc-ports {\r
1078             list vnfc-port {\r
1079                key "vnfc-port-id";\r
1080                leaf vnfc-port-id {\r
1081                   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
1082                   type string {\r
1083                       length "0..255";\r
1084                   }\r
1085                   mandatory true;\r
1086                }\r
1087                leaf common-sub-interface-role {\r
1088                   description "If sub-interfaces have common interface role (network role)";\r
1089                   type string {\r
1090                       length "0..255";\r
1091                   }\r
1092                }\r
1093                container vnic-sub-interfaces {\r
1094                   uses sub-interface-network-data;\r
1095                }\r
1096             }\r
1097          }\r
1098          list vnfc-subnet {\r
1099             key "vnfc-subnet-role";\r
1100             leaf vnfc-subnet-role {\r
1101                description "Default value if subnet role is not defined.";\r
1102                type string {\r
1103                    length "0..255";\r
1104                }\r
1105                mandatory true;\r
1106             }\r
1107             list vnfc-ip-assignments {\r
1108                key "vnfc-address-family";\r
1109                leaf vnfc-address-family {\r
1110                   description "indicates if this is IpV4 or IpV6";\r
1111                   type enumeration {\r
1112                      enum "ipv4";\r
1113                      enum "ipv6";\r
1114                   }\r
1115                }\r
1116                leaf vnfc-subnet-dhcp {\r
1117                   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
1118                   type enumeration {\r
1119                      enum "Y";\r
1120                      enum "N";\r
1121                   }\r
1122                }\r
1123                leaf vnfc-subnet-ip-count {\r
1124                   description "The number of IP addresses to be assigned per vnfc for this subnet role";\r
1125                   type uint8;\r
1126                }\r
1127                list vnfc-subnet-ip {\r
1128                   key "vnfc-ip-address";\r
1129                   leaf vnfc-ip-address {\r
1130                      description "Either IpV4 IP or IpV6 IP address should be present";\r
1131                      type inet:ip-address;\r
1132                   }\r
1133                   leaf vnfc-client-key {\r
1134                      type string {\r
1135                          length "0..255";\r
1136                      }\r
1137                   }\r
1138                   leaf ip-type {\r
1139                      description "Capture what type of IP this is, if is virtual IP (AKA, floating IP) or Fixed IP. ";\r
1140                      type enumeration {\r
1141                         enum "FIXED";\r
1142                         enum "VIP";\r
1143                      }\r
1144                   }\r
1145                }\r
1146             }\r
1147          }\r
1148       }\r
1149    }\r
1150    grouping vm-network-data {\r
1151       leaf network-role {\r
1152          description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
1153          type string {\r
1154              length "0..255";\r
1155          }\r
1156          mandatory true;\r
1157       }\r
1158       leaf network-role-tag {\r
1159          type string {\r
1160              length "0..255";\r
1161          }\r
1162       }\r
1163       container network-information-items {\r
1164          list network-information-item {\r
1165             key "ip-version";\r
1166             leaf ip-version {\r
1167                description "Use ipv4 or ipv6";\r
1168                type string {\r
1169                    length "0..255";\r
1170                }\r
1171             }\r
1172             leaf use-dhcp {\r
1173                description "Indicator to use DHCP on this network for this VM";\r
1174                type enumeration {\r
1175                   enum "Y";\r
1176                   enum "N";\r
1177                }\r
1178             }\r
1179             leaf ip-count {\r
1180                description "The number of ip addresses to be assigned per vm for this network role";\r
1181                type uint8;\r
1182             }\r
1183             container network-ips {\r
1184                leaf-list network-ip {\r
1185                   description "List of assigned ip addresses of type ip-version on a network";\r
1186                   type string {\r
1187                       length "0..255";\r
1188                   }\r
1189                   ordered-by user;\r
1190                }\r
1191             }\r
1192          }\r
1193       }\r
1194       container mac-addresses {\r
1195          leaf-list mac-address {\r
1196             description "List of network assignments for this vm-type";\r
1197             type string {\r
1198                 length "0..255";\r
1199             }\r
1200             ordered-by user;\r
1201          }\r
1202       }\r
1203       container floating-ips {\r
1204          leaf-list floating-ip-v4 {\r
1205             description "Floating ipv4 for VMs of a given type on this network";\r
1206             type inet:ip-address;\r
1207             ordered-by user;\r
1208          }\r
1209          leaf-list floating-ip-v6 {\r
1210             description "Floating ipv6 for VMs of a given type on this network";\r
1211             type inet:ipv6-address;\r
1212             ordered-by user;\r
1213          }\r
1214       }\r
1215       container interface-route-prefixes {\r
1216          leaf-list interface-route-prefix {\r
1217             description "ordered-by: user";\r
1218             type string;\r
1219             ordered-by user;\r
1220          }\r
1221       }\r
1222       container sriov-parameters {\r
1223          container heat-vlan-filters {\r
1224             leaf-list heat-vlan-filter {\r
1225                type string;\r
1226                ordered-by user;\r
1227             }\r
1228          }\r
1229          container application-tags {\r
1230             container c-tags {\r
1231                leaf-list c-tag {\r
1232                   type string {\r
1233                       length "0..255";\r
1234                   }\r
1235                   ordered-by user;\r
1236                }\r
1237             }\r
1238             container s-tags {\r
1239                leaf-list s-tag {\r
1240                   type string {\r
1241                       length "0..255";\r
1242                   }\r
1243                   ordered-by user;\r
1244                }\r
1245             }\r
1246          }\r
1247       }\r
1248       leaf is-trunked {\r
1249          type boolean;\r
1250       }\r
1251       leaf segmentation-id {\r
1252          type string {\r
1253              length "0..255";\r
1254          }\r
1255       }\r
1256       container related-networks {\r
1257          uses related-network;\r
1258       }\r
1259    }\r
1260    grouping vf-module-level-oper-status {\r
1261       container vf-module-level-oper-status {\r
1262          uses oper-status-data;\r
1263       }\r
1264    }\r
1265    grouping allotted-resource-info {\r
1266       leaf allotted-resource-id {\r
1267          type string {\r
1268              length "0..255";\r
1269          }\r
1270       }\r
1271       leaf allotted-resource-type {\r
1272          description "Not an enum, but expected values are contrail-route and security-zone.";\r
1273          type string {\r
1274              length "0..255";\r
1275          }\r
1276       }\r
1277       leaf allotted-resource-pointer {\r
1278          description "Pointer to the allotted-resources topology";\r
1279          type string {\r
1280              length "0..255";\r
1281          }\r
1282       }\r
1283    }\r
1284    grouping forwarding-path-operation-information {\r
1285       uses sdnc-request-header;\r
1286       uses request-information;\r
1287       uses service-information;\r
1288       uses forwarding-path-request-input;\r
1289    }\r
1290    grouping forwarding-path-request-input {\r
1291       container forwarding-path-request-input {\r
1292          list forwarding-paths {\r
1293             key "forwarding-path-name";\r
1294             leaf forwarding-path-name {\r
1295                description "Forwarding-path-name from tosca-model. ";\r
1296                type string {\r
1297                    length "0..255";\r
1298                }\r
1299                mandatory true;\r
1300             }\r
1301             uses onap-model-information;\r
1302          }\r
1303       }\r
1304    }\r
1305    grouping forwarding-path-information {\r
1306       leaf forwarding-path-name {\r
1307          description "Fowarding-path name from TOSCA model, or name generated by SDNC";\r
1308          type string {\r
1309              length "0..512";\r
1310          }\r
1311       }\r
1312       leaf forwarding-path-type {\r
1313          description "Based on MySQL Forwarding_Path tables path_type value from related TOSCA model";\r
1314          type enumeration {\r
1315             enum "VNF";\r
1316             enum "Service";\r
1317          }\r
1318       }\r
1319       uses onap-model-information;\r
1320       container service-paths {\r
1321          list service-path {\r
1322             key "service-path-instance-id";\r
1323             uses service-path-information;\r
1324          }\r
1325       }\r
1326    }\r
1327    grouping service-path-information {\r
1328       leaf service-path-instance-id {\r
1329          description "Service path instance ID generated by SDNC. Identifies a service-path-instance within a forwarding-path definition";\r
1330          type string {\r
1331              length "0..255";\r
1332          }\r
1333       }\r
1334       leaf service-path-instance-name {\r
1335          description "A unique name generated by SDNC ( forwarding-path-name + service-path-instance-id )";\r
1336          type string {\r
1337              length "0..512";\r
1338          }\r
1339       }\r
1340       leaf version {\r
1341          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
1342          type string {\r
1343              length "0..255";\r
1344          }\r
1345       }\r
1346       list service {\r
1347          key "service-instance-id";\r
1348          leaf service-instance-id {\r
1349             description "service-instance-id of each service-instance in the service-path-instance";\r
1350             type string {\r
1351                 length "0..255";\r
1352             }\r
1353          }\r
1354          leaf service-path-sequence-id {\r
1355             description "e.g. S1S2S3S5seq id=1  S1-S2seq id=2  S2S3seq id=3  S3S5Incremental integer value";\r
1356             type uint32;\r
1357          }\r
1358          container vnfs {\r
1359             list vnf {\r
1360                key "vnf-instance-id";\r
1361                uses vnf-path-information;\r
1362             }\r
1363          }\r
1364       }\r
1365    }\r
1366    grouping vnf-path-information {\r
1367       leaf vnf-instance-id {\r
1368          description "VNF instance ID in the path";\r
1369          type string {\r
1370              length "0..255";\r
1371          }\r
1372       }\r
1373       leaf vnf-path-sequence-id {\r
1374          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
1375          type uint32;\r
1376       }\r
1377       leaf left-network-name {\r
1378          description "Every VNF instance in the path is connected to one or two VNFs.";\r
1379          type string {\r
1380              length "0..255";\r
1381          }\r
1382       }\r
1383       leaf left-network-role {\r
1384          type string {\r
1385              length "0..255";\r
1386          }\r
1387       }\r
1388       leaf right-network-name {\r
1389          type string {\r
1390              length "0..255";\r
1391          }\r
1392       }\r
1393       leaf right-network-role {\r
1394          type string {\r
1395              length "0..255";\r
1396          }\r
1397       }\r
1398       container vf-module-instance {\r
1399          leaf vf-module-id {\r
1400             type string {\r
1401                 length "0..255";\r
1402             }\r
1403          }\r
1404          leaf vf-module-name {\r
1405             type string {\r
1406                 length "0..255";\r
1407             }\r
1408          }\r
1409       }\r
1410    }\r
1411    grouping forwarding-path-level-oper-status {\r
1412       container forwarding-path-level-oper-status {\r
1413          uses oper-status-data;\r
1414       }\r
1415    }\r
1416    grouping configuration-info {\r
1417       leaf configuration-id {\r
1418          type string {\r
1419              length "0..255";\r
1420          }\r
1421       }\r
1422       leaf configuration-type {\r
1423          description "Not an enum, but expected values are port-mirror-configuration, , vlan-network-receptor";\r
1424          type string {\r
1425              length "0..255";\r
1426          }\r
1427       }\r
1428       leaf configuration-sub-type {\r
1429          description "Not an enum, but expected values are vprobe and pprobe";\r
1430          type string {\r
1431              length "0..255";\r
1432          }\r
1433       }\r
1434       leaf configuration-topology-link {\r
1435          description "Pointer to the configurations topology";\r
1436          type string {\r
1437              length "0..255";\r
1438          }\r
1439       }\r
1440    }\r
1441    grouping vnfc-instance-group {\r
1442       list vnfc-instance-group {\r
1443          key "instance-group-role nfc-naming-code configuration-id";\r
1444          leaf instance-group-role {\r
1445             description "i.e.TSBC_VNFC_group";\r
1446             type string {\r
1447                 length "0..255";\r
1448             }\r
1449             mandatory true;\r
1450          }\r
1451          leaf nfc-naming-code {\r
1452             description "Set to nfc-naming-code from A&AI";\r
1453             type string {\r
1454                 length "0..255";\r
1455             }\r
1456             mandatory true;\r
1457          }\r
1458          leaf configuration-id {\r
1459             type string {\r
1460                 length "0..255";\r
1461             }\r
1462             mandatory true;\r
1463          }\r
1464          leaf group-type {\r
1465             description " port-mirror-source or  port-mirror-dest";\r
1466             type string {\r
1467                 length "0..255";\r
1468             }\r
1469          }\r
1470          uses vnfc-objects;\r
1471       }\r
1472    }\r
1473    grouping vnfc-objects {\r
1474       container vnfc-objects {\r
1475          list vnfc-object {\r
1476             key "vnfc-key";\r
1477             leaf vnfc-key {\r
1478                type string {\r
1479                    length "0..255";\r
1480                }\r
1481             }\r
1482             leaf vnfc-name {\r
1483                description "Vnfc name as key in A&AI";\r
1484                type string {\r
1485                    length "0..255";\r
1486                }\r
1487             }\r
1488             leaf vm-type {\r
1489                type string {\r
1490                    length "0..255";\r
1491                }\r
1492             }\r
1493             leaf vnf-id {\r
1494                type string {\r
1495                    length "0..255";\r
1496                }\r
1497             }\r
1498             leaf vserver-name {\r
1499                type string {\r
1500                    length "0..255";\r
1501                }\r
1502             }\r
1503             leaf vserver-id {\r
1504                type string {\r
1505                    length "0..255";\r
1506                }\r
1507             }\r
1508             container vnics {\r
1509                list vnic {\r
1510                   key "vnic-port-name";\r
1511                   leaf vnic-port-name {\r
1512                      type string {\r
1513                          length "0..255";\r
1514                      }\r
1515                   }\r
1516                   leaf vnic-port-id {\r
1517                      type string {\r
1518                          length "0..255";\r
1519                      }\r
1520                   }\r
1521                   container capacity {\r
1522                      leaf vnic-capacity {\r
1523                         type uint32;\r
1524                      }\r
1525                      leaf used-capacity {\r
1526                         description "Updated for destination port when source port is mapped/unmapped.";\r
1527                         type uint32;\r
1528                      }\r
1529                   }\r
1530                   container vnic-ip-addresses {\r
1531                      uses ip-addresses;\r
1532                   }\r
1533                }\r
1534             }\r
1535          }\r
1536       }\r
1537    }\r
1538    grouping vnfcs {\r
1539       container vnfcs {\r
1540          list vnfc {\r
1541             key "vnfc-name";\r
1542             leaf vnfc-name {\r
1543                description "Vnfc name as key in A&AI";\r
1544                type string {\r
1545                    length "0..255";\r
1546                }\r
1547             }\r
1548             leaf vserver-name {\r
1549                type string {\r
1550                    length "0..255";\r
1551                }\r
1552             }\r
1553             leaf vserver-id {\r
1554                type string {\r
1555                    length "0..255";\r
1556                }\r
1557             }\r
1558             uses vnics;\r
1559          }\r
1560       }\r
1561    }\r
1562    grouping vnics {\r
1563       container vnics {\r
1564          list vnic {\r
1565             key "vnic-port-name";\r
1566             leaf vnic-port-name {\r
1567                type string {\r
1568                    length "0..255";\r
1569                }\r
1570             }\r
1571             leaf vnic-port-id {\r
1572                type string {\r
1573                    length "0..255";\r
1574                }\r
1575             }\r
1576             uses sub-interfaces;\r
1577          }\r
1578       }\r
1579    }\r
1580    grouping sub-interfaces {\r
1581       container sub-interfaces {\r
1582          list sub-interface {\r
1583             key "sub-interface-port-name";\r
1584             leaf sub-interface-port-name {\r
1585                type string {\r
1586                    length "0..255";\r
1587                }\r
1588             }\r
1589             leaf sub-interface-port-id {\r
1590                type string {\r
1591                    length "0..255";\r
1592                }\r
1593             }\r
1594             container sub-interface-ip-addresses {\r
1595                uses ip-addresses;\r
1596             }\r
1597             uses vlan-tags;\r
1598             container sub-interface-network {\r
1599                leaf network-name {\r
1600                   type string {\r
1601                       length "0..255";\r
1602                   }\r
1603                }\r
1604                leaf network-id {\r
1605                   type string {\r
1606                       length "0..255";\r
1607                   }\r
1608                }\r
1609             }\r
1610             leaf sub-interface-status {\r
1611                description "NULL, unassigned, assigned";\r
1612                type string {\r
1613                    length "0..255";\r
1614                }\r
1615             }\r
1616          }\r
1617       }\r
1618    }\r
1619    grouping vlan-tags {\r
1620       container vlan-tags {\r
1621          leaf vlan-interface {\r
1622             description "A&AI Key";\r
1623             type string {\r
1624                 length "0..255";\r
1625             }\r
1626          }\r
1627          leaf upper-tag-id {\r
1628             description "aka outer tag";\r
1629             type uint32;\r
1630          }\r
1631          leaf lower-tag-id {\r
1632             description "aka inner tag";\r
1633             type uint32;\r
1634          }\r
1635          leaf is-private {\r
1636             type boolean;\r
1637          }\r
1638       }\r
1639    }\r
1640    grouping vlan-vnfc-instance-groups {\r
1641       container vlan-vnfc-instance-groups {\r
1642          list vlan-vnfc-instance-group {\r
1643             key "instance-group-id";\r
1644             leaf instance-group-id {\r
1645                description "A&AI ID";\r
1646                type string {\r
1647                    length "0..255";\r
1648                }\r
1649                mandatory true;\r
1650             }\r
1651             leaf instance-group-function {\r
1652                type string {\r
1653                    length "0..255";\r
1654                }\r
1655             }\r
1656             leaf vnf-id {\r
1657                type string {\r
1658                    length "0..255";\r
1659                }\r
1660             }\r
1661             container vnfcs {\r
1662                list vnfc {\r
1663                   key "vnfc-name";\r
1664                   leaf vnfc-name {\r
1665                      type string {\r
1666                          length "0..255";\r
1667                      }\r
1668                   }\r
1669                   uses vnic-groups;\r
1670                }\r
1671             }\r
1672          }\r
1673       }\r
1674    }\r
1675    grouping vnic-groups {\r
1676       container vnic-groups {\r
1677          list vnic-group {\r
1678             key "vnic-interface-role";\r
1679             leaf vnic-interface-role {\r
1680                description "Same as network-role of network where vnic is connected";\r
1681                type string {\r
1682                    length "0..255";\r
1683                }\r
1684                mandatory true;\r
1685             }\r
1686             leaf network-instance-group-function {\r
1687                description "network-instance-Group-function for network collection where vnics with vnic-interface-role will connect";\r
1688                type string {\r
1689                    length "0..255";\r
1690                }\r
1691             }\r
1692             leaf vlan-assignment-policy-name {\r
1693                description "Policy name in ASDC model & policy definition in Policy Engine";\r
1694                type string {\r
1695                    length "0..255";\r
1696                }\r
1697             }\r
1698             leaf vlan-tag-index-next {\r
1699                description "Next tag to be assigned";\r
1700                type uint32;\r
1701             }\r
1702             container vlan-common-ip-addresses {\r
1703                uses ip-addresses;\r
1704             }\r
1705             container vlan-vnics {\r
1706                list vlan-vnic {\r
1707                   key "vnic-port-id";\r
1708                   leaf vnic-port-id {\r
1709                      type string {\r
1710                          length "0..255";\r
1711                      }\r
1712                      mandatory true;\r
1713                   }\r
1714                   container vnic-sub-interfaces {\r
1715                      uses sub-interface-network-data;\r
1716                   }\r
1717                }\r
1718             }\r
1719          }\r
1720       }\r
1721    }\r
1722    grouping vnf-cloud-param {\r
1723       leaf service-instance-id {\r
1724          type string {\r
1725              length "0..255";\r
1726          }\r
1727       }\r
1728       leaf service-instance-name {\r
1729          type string {\r
1730              length "0..255";\r
1731          }\r
1732       }\r
1733       list vnf {\r
1734          key "vnf-id";\r
1735          leaf vnf-id {\r
1736             type string {\r
1737                 length "0..255";\r
1738             }\r
1739          }\r
1740          leaf vnf-name {\r
1741             type string {\r
1742                 length "0..255";\r
1743             }\r
1744          }\r
1745          uses param;\r
1746          list vf-module {\r
1747             key "vf-module-id";\r
1748             leaf vf-module-id {\r
1749                type string {\r
1750                    length "0..255";\r
1751                }\r
1752             }\r
1753             uses param;\r
1754          }\r
1755       }\r
1756    }\r
1757    grouping vnf-network-collection {\r
1758       list vnf-network-collection {\r
1759          key "network-instance-group-function";\r
1760          leaf network-instance-group-function {\r
1761             description "Network Instance-Group function in A&AI";\r
1762             type string {\r
1763                 length "0..255";\r
1764             }\r
1765             mandatory true;\r
1766          }\r
1767          leaf network-instance-group-id {\r
1768             description "Network Instance-Group id in A&AI";\r
1769             type string {\r
1770                 length "0..255";\r
1771             }\r
1772          }\r
1773          leaf network-collection-service-instance-id {\r
1774             description "Service-instance-id of service that created the network collection";\r
1775             type string {\r
1776                 length "0..255";\r
1777             }\r
1778          }\r
1779          leaf network-collection-customization-uuid {\r
1780             description "network-collection-customization-uuid stored in Network IsntanceGroup.customization-uuid in A&AI";\r
1781             type string {\r
1782                 length "0..255";\r
1783             }\r
1784          }\r
1785          container networks {\r
1786             list network {\r
1787                key "network-id";\r
1788                leaf network-id {\r
1789                   description "Index into network-topology-identifier structure";\r
1790                   type string {\r
1791                       length "0..255";\r
1792                   }\r
1793                   mandatory true;\r
1794                }\r
1795                leaf neutron-network-id {\r
1796                   description "Neutron-network-id assigned by PO/RO";\r
1797                   type string {\r
1798                       length "0..255";\r
1799                   }\r
1800                }\r
1801             }\r
1802          }\r
1803          container vnf-floating-ip {\r
1804             uses ip-addresses;\r
1805          }\r
1806       }\r
1807    }\r
1808    grouping vnf-sub-interface-group {\r
1809       list vnf-sub-interface-group {\r
1810          key "vnfc-instance-group-function network-instance-group-function parent-port-role";\r
1811          leaf vnfc-instance-group-function {\r
1812             type string {\r
1813                 length "0..255";\r
1814             }\r
1815             mandatory true;\r
1816          }\r
1817          leaf network-instance-group-function {\r
1818             type string {\r
1819                 length "0..255";\r
1820             }\r
1821             mandatory true;\r
1822          }\r
1823          leaf parent-port-role {\r
1824             type string {\r
1825                 length "0..255";\r
1826             }\r
1827             mandatory true;\r
1828          }\r
1829          uses vnfcs;\r
1830          container customer-bonding-requests {\r
1831             list customer-bonding-request {\r
1832                key "configuration-id";\r
1833                leaf configuration-id {\r
1834                   description "e.g. vlan network receptor configuration id";\r
1835                   type string {\r
1836                       length "0..255";\r
1837                   }\r
1838                }\r
1839             }\r
1840          }\r
1841       }\r
1842    }\r
1843    grouping sub-interface-network-data {\r
1844       list sub-interface-network-data {\r
1845          key "network-id";\r
1846          leaf network-id {\r
1847             description "Subinterface network id (UUID in A&AI)";\r
1848             type string {\r
1849                 length "0..255";\r
1850             }\r
1851             mandatory true;\r
1852          }\r
1853          leaf neutron-network-id {\r
1854             description "Neutron network id assigned by PO/RP";\r
1855             type string {\r
1856                 length "0..255";\r
1857             }\r
1858          }\r
1859          leaf network-name {\r
1860             description "Subinterface network name";\r
1861             type uint32;\r
1862          }\r
1863          leaf vlan-tag-id {\r
1864             description "Vlan tag assigned to subinterface port";\r
1865             type uint32;\r
1866          }\r
1867          leaf network-role {\r
1868             description "e.g. untrusted ";\r
1869             type string {\r
1870                 length "0..255";\r
1871             }\r
1872          }\r
1873          leaf network-role-tag {\r
1874             description "Assuming HEAT template network role tag parameter - not used";\r
1875             type string {\r
1876                 length "0..255";\r
1877             }\r
1878          }\r
1879          container network-information-items {\r
1880             list network-information-item {\r
1881                key "ip-version";\r
1882                leaf ip-version {\r
1883                   description "Use ipv4 or ipv6";\r
1884                   type string {\r
1885                       length "0..255";\r
1886                   }\r
1887                }\r
1888                leaf use-dhcp {\r
1889                   description "Indicator to use DHCP on this network for this VM - set to N for Vlan tagging";\r
1890                   type enumeration {\r
1891                      enum "Y";\r
1892                      enum "N";\r
1893                   }\r
1894                }\r
1895                leaf ip-count {\r
1896                   description "The number of ip addresses to be assigned per vm for this network role";\r
1897                   type uint8;\r
1898                }\r
1899                container network-ips {\r
1900                   leaf-list network-ip {\r
1901                      description "List of assigned ip addresses of type ip-version on a network.";\r
1902                      type inet:ip-address;\r
1903                      ordered-by user;\r
1904                   }\r
1905                }\r
1906             }\r
1907          }\r
1908          container floating-ips {\r
1909             leaf-list floating-ip-v4 {\r
1910                description "Floating ipv4 for VMs of a given type on this network";\r
1911                type inet:ip-address;\r
1912                ordered-by user;\r
1913             }\r
1914             leaf-list floating-ip-v6 {\r
1915                description "Floating ipv6 for VMs of a given type on this network";\r
1916                type inet:ipv6-address;\r
1917                ordered-by user;\r
1918             }\r
1919          }\r
1920       }\r
1921    }\r
1922    grouping vnf-get-resource-request-input-data {\r
1923       list vnf {\r
1924          key "vnf-id";\r
1925          leaf vnf-id {\r
1926             type string {\r
1927                 length "0..255";\r
1928             }\r
1929          }\r
1930          list vf-module {\r
1931             key "vf-module-id";\r
1932             leaf vf-module-id {\r
1933                type string {\r
1934                    length "0..255";\r
1935                }\r
1936             }\r
1937          }\r
1938       }\r
1939    }\r
1940    grouping license-information {\r
1941       container license-information {\r
1942          list entitlement-pool-list {\r
1943             key "entitlement-pool-uuid action";\r
1944             leaf entitlement-pool-uuid {\r
1945                type string {\r
1946                    length "0..255";\r
1947                }\r
1948                mandatory true;\r
1949             }\r
1950             leaf action {\r
1951                type string {\r
1952                    length "0..255";\r
1953                }\r
1954                mandatory true;\r
1955             }\r
1956             leaf entitlement-pool-invariant-uuid {\r
1957                type string {\r
1958                    length "0..255";\r
1959                }\r
1960             }\r
1961             leaf entitlement-uuid {\r
1962                description "assigned by ALTS";\r
1963                type string {\r
1964                    length "0..255";\r
1965                }\r
1966             }\r
1967          }\r
1968          list license-key-group-list {\r
1969             key "license-key-group-uuid action";\r
1970             leaf license-key-group-uuid {\r
1971                type string {\r
1972                    length "0..255";\r
1973                }\r
1974                mandatory true;\r
1975             }\r
1976             leaf action {\r
1977                type string {\r
1978                    length "0..255";\r
1979                }\r
1980                mandatory true;\r
1981             }\r
1982             leaf license-key-group-invariant-uuid {\r
1983                type string {\r
1984                    length "0..255";\r
1985                }\r
1986             }\r
1987             leaf license-key {\r
1988                description "assigned by ALTS";\r
1989                type string {\r
1990                    length "0..255";\r
1991                }\r
1992             }\r
1993             leaf license-uuid {\r
1994                description "assigned by ALTS";\r
1995                type string {\r
1996                    length "0..255";\r
1997                }\r
1998             }\r
1999          }\r
2000       }\r
2001    }\r
2002    grouping related-network {\r
2003       list related-network {\r
2004          key "network-id";\r
2005          leaf network-id {\r
2006             description "Key to l3-network object";\r
2007             type string {\r
2008                 length "0..255";\r
2009             }\r
2010          }\r
2011          leaf network-role {\r
2012             type string {\r
2013                 length "0..255";\r
2014             }\r
2015          }\r
2016          uses vlan-tags;\r
2017       }\r
2018    }\r
2019    grouping connection-point {\r
2020       container connection-point {\r
2021          leaf connection-point-id {\r
2022             description "Key to CP object in A&AI";\r
2023             type string {\r
2024                 length "0..255";\r
2025             }\r
2026          }\r
2027          leaf port-id {\r
2028             description "port-index when multiple CPs connect to same network. Default zero (0)";\r
2029             type string {\r
2030                 length "0..255";\r
2031             }\r
2032          }\r
2033          list vlan-data {\r
2034             key "vlan-uuid";\r
2035             leaf vlan-uuid {\r
2036                description "Key to vlan-tag uuid object in A&AI Generated by vlan mS";\r
2037                type string {\r
2038                    length "0..255";\r
2039                }\r
2040             }\r
2041             leaf vlan-tag-id {\r
2042                type string {\r
2043                    length "0..255";\r
2044                }\r
2045             }\r
2046             leaf vlan-tag-description {\r
2047                type string {\r
2048                    length "0..255";\r
2049                }\r
2050             }\r
2051             leaf vlan-role {\r
2052                description "Inner/Outer roles";\r
2053                type string {\r
2054                    length "0..255";\r
2055                }\r
2056             }\r
2057          }\r
2058       }\r
2059    }\r
2060    grouping aggregate-routes {\r
2061       list aggregate-routes {\r
2062          key "route-id";\r
2063          leaf route-id {\r
2064             description "Unique id";\r
2065             type string {\r
2066                 length "0..255";\r
2067             }\r
2068          }\r
2069          leaf start-address {\r
2070             type inet:ip-address;\r
2071          }\r
2072          leaf cidr-mask {\r
2073             type string {\r
2074                 length "0..255";\r
2075             }\r
2076          }\r
2077          leaf ip-version {\r
2078             description "Use values 4 or 6.";\r
2079             type string {\r
2080                 length "0..255";\r
2081             }\r
2082          }\r
2083       }\r
2084    }\r
2085    grouping pnf-information {\r
2086       container pnf-information {\r
2087          leaf pnf-name {\r
2088             description "Key for A&AI query";\r
2089             type string {\r
2090                 length "0..255";\r
2091             }\r
2092          }\r
2093          leaf pnf-type {\r
2094             type string {\r
2095                 length "0..255";\r
2096             }\r
2097          }\r
2098          uses onap-model-information;\r
2099       }\r
2100    }\r
2101    grouping contrail-route-operation-information {\r
2102       uses sdnc-request-header;\r
2103       uses request-information;\r
2104       uses service-information;\r
2105       uses allotted-resource-information;\r
2106       uses contrail-route-request-input;\r
2107    }\r
2108    grouping contrail-route-request-input {\r
2109       container contrail-route-request-input {\r
2110          container source-network {\r
2111             uses network-info;\r
2112          }\r
2113          container dest-network {\r
2114             uses network-info;\r
2115          }\r
2116          container contrail-applied-service-info {\r
2117             leaf service-instance-id {\r
2118                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
2119                type string {\r
2120                    length "0..255";\r
2121                }\r
2122             }\r
2123             leaf contrail-fqdn {\r
2124                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
2125                type string {\r
2126                    length "0..255";\r
2127                }\r
2128             }\r
2129          }\r
2130          container contrail-route-input-parameters {\r
2131             uses param;\r
2132          }\r
2133       }\r
2134    }\r
2135    grouping network-info {\r
2136       leaf network-id {\r
2137          type string {\r
2138              length "0..255";\r
2139          }\r
2140       }\r
2141       leaf network-role {\r
2142          type string {\r
2143              length "0..255";\r
2144          }\r
2145       }\r
2146    }\r
2147    grouping contrail-route-topology {\r
2148       container contrail-route-topology {\r
2149          uses allotted-resource-identifiers;\r
2150          uses onap-model-information;\r
2151          uses contrail-route-assignments;\r
2152          container contrail-route-parameters {\r
2153             uses param;\r
2154          }\r
2155       }\r
2156    }\r
2157    grouping contrail-route-assignments {\r
2158       container contrail-route-assignments {\r
2159          leaf fq-name {\r
2160             description "The Contrail fq-name of the network policy";\r
2161             type string {\r
2162                 length "0..255";\r
2163             }\r
2164          }\r
2165          leaf contrail-id {\r
2166             description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)";\r
2167             type string {\r
2168                 length "0..255";\r
2169             }\r
2170          }\r
2171          container source-network {\r
2172             uses network-info;\r
2173          }\r
2174          container dest-network {\r
2175             uses network-info;\r
2176          }\r
2177          container contrail-applied-service {\r
2178             leaf service-instance-id {\r
2179                description "The service-instance-id of the vnf from which the contrail applied service is coming";\r
2180                type string {\r
2181                    length "0..255";\r
2182                }\r
2183             }\r
2184             leaf vnf-id {\r
2185                description "The vnf representing the contrail applied service";\r
2186                type string {\r
2187                    length "0..255";\r
2188                }\r
2189             }\r
2190             leaf contrail-fqdn {\r
2191                description "This is the fq-name of the Contrail service instance through which the route is passing.";\r
2192                type string {\r
2193                    length "0..255";\r
2194                }\r
2195             }\r
2196          }\r
2197          leaf vlan-tag {\r
2198             description "Contrail-assigned vlan-tag to the vipr vm interface for this route.";\r
2199             type string {\r
2200                 length "0..255";\r
2201             }\r
2202          }\r
2203       }\r
2204    }\r
2205    grouping security-zone-operation-information {\r
2206       uses sdnc-request-header;\r
2207       uses request-information;\r
2208       uses service-information;\r
2209       uses allotted-resource-information;\r
2210       uses security-zone-request-input;\r
2211    }\r
2212    grouping security-zone-request-input {\r
2213       container security-zone-request-input {\r
2214          leaf vlan-tag {\r
2215             type string {\r
2216                 length "0..255";\r
2217             }\r
2218          }\r
2219          leaf trusted-network-role {\r
2220             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
2221             type string {\r
2222                 length "0..255";\r
2223             }\r
2224          }\r
2225          leaf untrusted-network-role {\r
2226             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
2227             type string {\r
2228                 length "0..255";\r
2229             }\r
2230          }\r
2231          container security-zone-input-parameters {\r
2232             uses param;\r
2233          }\r
2234       }\r
2235    }\r
2236    grouping security-zone-topology {\r
2237       container security-zone-topology {\r
2238          uses allotted-resource-identifiers;\r
2239          uses onap-model-information;\r
2240          uses security-zone-assignments;\r
2241          container security-zone-parameters {\r
2242             uses param;\r
2243          }\r
2244       }\r
2245    }\r
2246    grouping security-zone-assignments {\r
2247       container security-zone-assignments {\r
2248          leaf trusted-network-role {\r
2249             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
2250             type string {\r
2251                 length "0..255";\r
2252             }\r
2253          }\r
2254          leaf security-zone-name-trusted {\r
2255             type string {\r
2256                 length "0..255";\r
2257             }\r
2258          }\r
2259          leaf untrusted-network-role {\r
2260             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
2261             type string {\r
2262                 length "0..255";\r
2263             }\r
2264          }\r
2265          leaf security-zone-name-untrusted {\r
2266             type string {\r
2267                 length "0..255";\r
2268             }\r
2269          }\r
2270          leaf security-zone-service-instance-id {\r
2271             description "Will be the same as the parent-service-instance-id";\r
2272             type string {\r
2273                 length "0..255";\r
2274             }\r
2275          }\r
2276          leaf security-zone-vnf-id {\r
2277             description "Selected by SDNC from the security-zone-service-instance-id";\r
2278             type string {\r
2279                 length "0..255";\r
2280             }\r
2281          }\r
2282          leaf vlan-tag {\r
2283             type string {\r
2284                 length "0..255";\r
2285             }\r
2286          }\r
2287       }\r
2288    }\r
2289    grouping port-mirror-topology-operation-information {\r
2290       uses sdnc-request-header;\r
2291       uses request-information;\r
2292       uses service-information;\r
2293       uses configuration-information;\r
2294       uses port-mirror-configuration-request-input;\r
2295    }\r
2296    grouping port-mirror-configuration-request-input {\r
2297       container port-mirror-configuration-request-input {\r
2298          container source-port {\r
2299             uses port-info;\r
2300             leaf source-port-id {\r
2301                description "needed for srv-action=disable/enable";\r
2302                type string {\r
2303                    length "0..255";\r
2304                }\r
2305             }\r
2306          }\r
2307          container dest-port {\r
2308             uses port-info;\r
2309          }\r
2310          uses region-identifier;\r
2311          container port-mirror-configuration-input-parameters {\r
2312             uses param;\r
2313          }\r
2314       }\r
2315    }\r
2316    grouping port-info {\r
2317       leaf service-instance-id {\r
2318          description "May not be need.";\r
2319          type string {\r
2320              length "0..255";\r
2321          }\r
2322       }\r
2323       uses pnf-information;\r
2324       uses vnf-information;\r
2325    }\r
2326    grouping port-mirror-configuration-topology {\r
2327       container port-mirror-configuration-topology {\r
2328          uses configuration-identifiers;\r
2329          uses onap-model-information;\r
2330          uses port-mirror-configuration-assignments;\r
2331          container port-mirror-configuration-parameters {\r
2332             uses param;\r
2333          }\r
2334       }\r
2335    }\r
2336    grouping port-mirror-configuration-assignments {\r
2337       container port-mirror-configuration-assignments {\r
2338          container contrail-vmi-params {\r
2339             uses param;\r
2340          }\r
2341          leaf vnics-group-id {\r
2342             type string {\r
2343                 length "0..255";\r
2344             }\r
2345          }\r
2346          leaf owning-entity {\r
2347             type string {\r
2348                 length "0..255";\r
2349             }\r
2350          }\r
2351          leaf tenant-context {\r
2352             description "From tenant object in A&AI";\r
2353             type string {\r
2354                 length "0..255";\r
2355             }\r
2356          }\r
2357          leaf tenant {\r
2358             description "Tenant name from A&AI for source VNF";\r
2359             type string {\r
2360                 length "0..255";\r
2361             }\r
2362          }\r
2363          leaf tenant-id {\r
2364             description "tenant-id from A&AI for source VNF";\r
2365             type string {\r
2366                 length "0..255";\r
2367             }\r
2368          }\r
2369          leaf dest-tenant {\r
2370             description "Tenant name from A&AI for destination VNF";\r
2371             type string {\r
2372                 length "0..255";\r
2373             }\r
2374          }\r
2375          leaf dest-tenant-id {\r
2376             description "tenant-id from A&AI for destination VNF";\r
2377             type string {\r
2378                 length "0..255";\r
2379             }\r
2380          }\r
2381          leaf cloud-region-id {\r
2382             type string {\r
2383                 length "0..255";\r
2384             }\r
2385          }\r
2386          leaf cloud-owner {\r
2387             type string {\r
2388                 length "0..255";\r
2389             }\r
2390          }\r
2391          leaf dest-network-fqdn {\r
2392             type string {\r
2393                 length "0..512";\r
2394             }\r
2395          }\r
2396          leaf source-network-fqdn {\r
2397             type string {\r
2398                 length "0..512";\r
2399             }\r
2400          }\r
2401          leaf source-capacity {\r
2402             description "Source port pps (packets per second) rating from tosca model";\r
2403             type uint32;\r
2404          }\r
2405          leaf source-vnf-id {\r
2406             type string {\r
2407                 length "0..255";\r
2408             }\r
2409          }\r
2410          leaf dest-vnf-id {\r
2411             description "For vProbe";\r
2412             type string {\r
2413                 length "0..255";\r
2414             }\r
2415          }\r
2416          leaf dest-pnf-name {\r
2417             description "For pProbe";\r
2418             type string {\r
2419                 length "0..255";\r
2420             }\r
2421          }\r
2422          leaf dest-p-interface {\r
2423             description "For pProbe; from policy manager";\r
2424             type string {\r
2425                 length "0..255";\r
2426             }\r
2427          }\r
2428          leaf dest-pnf-port-policy-name {\r
2429             description "For pProbe; from tosca model";\r
2430             type string {\r
2431                 length "0..255";\r
2432             }\r
2433          }\r
2434          leaf probe-type {\r
2435             description "vprobe or pprobe; derived from configuration-information.configuration-sub-type";\r
2436             type string {\r
2437                 length "0..255";\r
2438             }\r
2439          }\r
2440          leaf route-allotted-resource-id {\r
2441             description "For vProbe";\r
2442             type string {\r
2443                 length "0..255";\r
2444             }\r
2445          }\r
2446          container source-vnfc-instance-group-id {\r
2447             leaf service-instance-id {\r
2448                type string {\r
2449                    length "0..255";\r
2450                }\r
2451             }\r
2452             leaf nfc-naming-code {\r
2453                description "Set to nfc-naming-code";\r
2454                type string {\r
2455                    length "0..255";\r
2456                }\r
2457             }\r
2458             leaf instance-group-role {\r
2459                type string {\r
2460                    length "0..255";\r
2461                }\r
2462             }\r
2463             leaf configuration-id {\r
2464                type string {\r
2465                    length "0..255";\r
2466                }\r
2467             }\r
2468          }\r
2469          container dest-vnfc-instance-group-id {\r
2470             leaf service-instance-id {\r
2471                type string {\r
2472                    length "0..255";\r
2473                }\r
2474             }\r
2475             leaf nfc-naming-code {\r
2476                description "Set to nfc-naming-code";\r
2477                type string {\r
2478                    length "0..255";\r
2479                }\r
2480             }\r
2481             leaf instance-group-role {\r
2482                type string {\r
2483                    length "0..255";\r
2484                }\r
2485             }\r
2486             leaf configuration-id {\r
2487                type string {\r
2488                    length "0..255";\r
2489                }\r
2490             }\r
2491          }\r
2492          container source-to-dest-maps {\r
2493             list source-to-dest-map {\r
2494                key "source-port-id";\r
2495                leaf source-port-id {\r
2496                   type string {\r
2497                       length "0..255";\r
2498                   }\r
2499                   mandatory true;\r
2500                }\r
2501                leaf source-port-name {\r
2502                   type string {\r
2503                       length "0..255";\r
2504                   }\r
2505                }\r
2506                leaf source-vserver-id {\r
2507                   type string {\r
2508                       length "0..255";\r
2509                   }\r
2510                }\r
2511                leaf dest-vserver-id {\r
2512                   type string {\r
2513                       length "0..255";\r
2514                   }\r
2515                }\r
2516                leaf dest-port-id {\r
2517                   type string {\r
2518                       length "0..255";\r
2519                   }\r
2520                }\r
2521                leaf dest-port-name {\r
2522                   type string {\r
2523                       length "0..255";\r
2524                   }\r
2525                }\r
2526                leaf link-name {\r
2527                   type string {\r
2528                       length "0..255";\r
2529                   }\r
2530                }\r
2531                container dest-ip-addresses {\r
2532                   uses ip-addresses;\r
2533                }\r
2534             }\r
2535          }\r
2536       }\r
2537    }\r
2538    grouping gc-topology-operation-information {\r
2539       uses sdnc-request-header;\r
2540       uses request-information;\r
2541       uses service-information;\r
2542       uses configuration-information;\r
2543       uses gc-request-input;\r
2544    }\r
2545    grouping gc-request-input {\r
2546       container gc-request-input {\r
2547          leaf vnf-id {\r
2548             type string {\r
2549                 length "0..255";\r
2550             }\r
2551          }\r
2552          leaf vf-module-id {\r
2553             description "This is mandatory in case of rebuild";\r
2554             type string {\r
2555                 length "0..255";\r
2556             }\r
2557          }\r
2558          container input-parameters {\r
2559             uses param;\r
2560          }\r
2561          leaf rebuild {\r
2562             description "Value will indicate what to rebuild";\r
2563             type string {\r
2564                 length "0..255";\r
2565             }\r
2566          }\r
2567          list configuration-ids {\r
2568             key "configuration-id";\r
2569             leaf configuration-id {\r
2570                type string {\r
2571                    length "0..255";\r
2572                }\r
2573             }\r
2574          }\r
2575       }\r
2576    }\r
2577    grouping vnr-parameters {\r
2578       container vnr-parameters {\r
2579          leaf vnf-id {\r
2580             type string {\r
2581                 length "0..255";\r
2582             }\r
2583          }\r
2584          leaf vf-module-id {\r
2585             description "This is mandatory in case of rebuild";\r
2586             type string {\r
2587                 length "0..255";\r
2588             }\r
2589          }\r
2590          leaf vnf-service-instance-id {\r
2591             type string {\r
2592                 length "0..255";\r
2593             }\r
2594          }\r
2595          leaf network-collection-service-instance-id {\r
2596             description "service instance id that created network-collection";\r
2597             type string {\r
2598                 length "0..255";\r
2599             }\r
2600          }\r
2601          leaf network-instance-group-id {\r
2602             type string {\r
2603                 length "0..255";\r
2604             }\r
2605          }\r
2606          leaf network-id {\r
2607             type string {\r
2608                 length "0..255";\r
2609             }\r
2610          }\r
2611          leaf vnfc-instance-group-function {\r
2612             type string {\r
2613                 length "0..255";\r
2614             }\r
2615          }\r
2616          leaf network-instance-group-function {\r
2617             type string {\r
2618                 length "0..255";\r
2619             }\r
2620          }\r
2621          leaf parent-port-role {\r
2622             type string {\r
2623                 length "0..255";\r
2624             }\r
2625          }\r
2626          leaf upper-tag-id {\r
2627             type uint32;\r
2628          }\r
2629          leaf lower-tag-id {\r
2630             type uint32;\r
2631          }\r
2632       }\r
2633    }\r
2634    grouping tunnelxconn-operation-information {\r
2635        uses sdnc-request-header;\r
2636        uses request-information;\r
2637        uses service-information;\r
2638        uses allotted-resource-information;\r
2639        uses tunnelxconn-request-input;\r
2640    }\r
2641    grouping tunnelxconn-request-input {\r
2642 \r
2643        container tunnelxconn-request-input {\r
2644            leaf brg-wan-mac-address {\r
2645                type string;\r
2646            }\r
2647        }\r
2648    }\r
2649    grouping tunnelxconn-topology {\r
2650        container tunnelxconn-topology {\r
2651            uses allotted-resource-identifiers;\r
2652            uses onap-model-information;\r
2653            uses tunnelxconn-assignments;\r
2654            container tunnelxconn-parameters {\r
2655                uses param;\r
2656            }\r
2657        }\r
2658    }\r
2659    grouping tunnelxconn-assignments {\r
2660            container tunnelxconn-assignments {\r
2661                leaf vni {\r
2662                    description "The Network Controller will assign a VNI value from the associated vGMUX VNI pool";\r
2663                    type string;\r
2664                }\r
2665                leaf vgmux-bearer-ip {\r
2666                    description "The Network Controller will look up the vgmux bearer ip from the vgmux vf module";\r
2667                    type inet:ip-address;\r
2668                }\r
2669                leaf vgmux-lan-ip {\r
2670                    description "The Network Controller will look up the vgmux lan ip from the vgmux vg module";\r
2671                    type inet:ip-address;\r
2672                }\r
2673                leaf vg-ip {\r
2674                    description "The Network Controller will assign the VG IP address from local inventory";\r
2675                    type inet:ip-address;\r
2676                }\r
2677            }\r
2678    }\r
2679    grouping brg-operation-information {\r
2680        uses sdnc-request-header;\r
2681        uses request-information;\r
2682        uses service-information;\r
2683        uses allotted-resource-information;\r
2684        uses brg-request-input;\r
2685    }\r
2686    grouping brg-request-input {\r
2687        container brg-request-input {\r
2688            leaf vgmux-bearer-ip {\r
2689                type inet:ip-address;\r
2690            }\r
2691            leaf vni {\r
2692                type string;\r
2693            }\r
2694            leaf brg-wan-mac-address {\r
2695                type string;\r
2696            }\r
2697        }\r
2698    }\r
2699    grouping brg-topology {\r
2700        container brg-topology {\r
2701            uses allotted-resource-identifiers;\r
2702            uses onap-model-information;\r
2703            uses brg-assignments;\r
2704            container brg-parameters {\r
2705                uses param;\r
2706            }\r
2707        }\r
2708    }\r
2709    grouping brg-assignments {\r
2710            container brg-assignments {\r
2711                leaf vbrg-wan-ip {\r
2712                    type inet:ip-address;\r
2713                }\r
2714            }\r
2715    }\r
2716    grouping connection-attachment-operation-information {\r
2717       uses sdnc-request-header;\r
2718       uses request-information;\r
2719       uses service-information;\r
2720       uses allotted-resource-information;\r
2721       uses connection-attachment-request-input;\r
2722    }\r
2723 \r
2724    grouping connection-attachment-request-input {\r
2725       container connection-attachment-request-input {\r
2726          uses param;\r
2727       }\r
2728    }\r
2729 \r
2730    grouping connection-attachment-topology {\r
2731       container connection-attachment-topology {\r
2732          uses allotted-resource-identifiers;\r
2733          uses onap-model-information;\r
2734          uses connection-attachment-assignments;\r
2735          container connection-attachment-parameters {\r
2736             uses param;\r
2737          }\r
2738       }\r
2739    }\r
2740 \r
2741    grouping connection-attachment-assignments {\r
2742       container connection-attachment-assignments {\r
2743       }\r
2744    }\r
2745 \r
2746    grouping vnf-vnr-rebuild-data {\r
2747       container vnf-vnr-rebuild-data {\r
2748          leaf vnf-id {\r
2749             type string {\r
2750                 length "0..255";\r
2751             }\r
2752          }\r
2753          leaf vnf-service-instance-id {\r
2754             type string {\r
2755                 length "0..255";\r
2756             }\r
2757          }\r
2758          list vnrs-data {\r
2759             key "configuration-id";\r
2760             leaf configuration-id {\r
2761                type string {\r
2762                    length "0..255";\r
2763                }\r
2764             }\r
2765             leaf network-instance-group-id {\r
2766                type string {\r
2767                    length "0..255";\r
2768                }\r
2769             }\r
2770             leaf network-id {\r
2771                type string {\r
2772                    length "0..255";\r
2773                }\r
2774             }\r
2775             leaf vnfc-instance-group-function {\r
2776                type string {\r
2777                    length "0..255";\r
2778                }\r
2779             }\r
2780             leaf network-instance-group-function {\r
2781                type string {\r
2782                    length "0..255";\r
2783                }\r
2784             }\r
2785             leaf parent-port-role {\r
2786                type string {\r
2787                    length "0..255";\r
2788                }\r
2789             }\r
2790             leaf upper-tag-id {\r
2791                type uint32;\r
2792             }\r
2793             leaf lower-tag-id {\r
2794                type uint32;\r
2795             }\r
2796          }\r
2797       }\r
2798    }\r
2799    grouping allotted-resource-information {\r
2800       container allotted-resource-information {\r
2801          leaf allotted-resource-id {\r
2802             type string {\r
2803                 length "0..255";\r
2804             }\r
2805          }\r
2806          leaf allotted-resource-type {\r
2807             description "Not an enum, but expected values are contrail-route and security-zone.";\r
2808             type string {\r
2809                 length "0..255";\r
2810             }\r
2811          }\r
2812          leaf parent-service-instance-id {\r
2813             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
2814             type string {\r
2815                 length "0..255";\r
2816             }\r
2817          }\r
2818          uses onap-model-information;\r
2819       }\r
2820    }\r
2821    grouping allotted-resource-identifiers {\r
2822       container allotted-resource-identifiers {\r
2823          leaf allotted-resource-id {\r
2824             type string {\r
2825                 length "0..255";\r
2826             }\r
2827          }\r
2828          leaf allotted-resource-name {\r
2829             description "For a contrail-route, the network policy name.";\r
2830             type string {\r
2831                 length "0..255";\r
2832             }\r
2833          }\r
2834          leaf allotted-resource-type {\r
2835             description "(Added in draft 32)Expected to be contrail-route or security-zone.";\r
2836             type string {\r
2837                 length "0..255";\r
2838             }\r
2839          }\r
2840          leaf consuming-service-instance-id {\r
2841             description "The service-instance-id of the consuming service of this allotted resource";\r
2842             type string {\r
2843                 length "0..255";\r
2844             }\r
2845          }\r
2846          leaf parent-service-instance-id {\r
2847             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
2848             type string {\r
2849                 length "0..255";\r
2850             }\r
2851          }\r
2852       }\r
2853    }\r
2854    grouping allotted-resource-oper-status {\r
2855       container allotted-resource-oper-status {\r
2856          uses oper-status-data;\r
2857       }\r
2858    }\r
2859    grouping allotted-resource-status {\r
2860       container allotted-resource-status {\r
2861          leaf response-code {\r
2862             type string {\r
2863                 length "0..255";\r
2864             }\r
2865          }\r
2866          leaf response-message {\r
2867             type string {\r
2868                 length "0..255";\r
2869             }\r
2870          }\r
2871          leaf final-indicator {\r
2872             type string {\r
2873                 length "0..255";\r
2874             }\r
2875          }\r
2876          leaf request-status {\r
2877             type enumeration {\r
2878                enum "synccomplete";\r
2879                enum "asynccomplete";\r
2880                enum "notifycomplete";\r
2881             }\r
2882          }\r
2883          leaf action {\r
2884             description "value would one of possible request-actions; match the list in service-data oper-status";\r
2885             type string {\r
2886                 length "0..255";\r
2887             }\r
2888          }\r
2889          leaf rpc-name {\r
2890             type string {\r
2891                 length "0..255";\r
2892             }\r
2893          }\r
2894          leaf rpc-action {\r
2895             description "this is the svc-action from the incoming request";\r
2896             type enumeration {\r
2897                enum "assign";\r
2898                enum "activate";\r
2899                enum "create";\r
2900                enum "delete";\r
2901                enum "unassign";\r
2902                enum "deactivate";\r
2903             }\r
2904          }\r
2905          leaf response-timestamp {\r
2906             type string {\r
2907                 length "0..255";\r
2908             }\r
2909          }\r
2910       }\r
2911    }\r
2912    grouping configuration-information {\r
2913       container configuration-information {\r
2914          leaf configuration-id {\r
2915             type string {\r
2916                 length "0..255";\r
2917             }\r
2918          }\r
2919          leaf configuration-name {\r
2920             type string {\r
2921                 length "0..255";\r
2922             }\r
2923          }\r
2924          leaf configuration-type {\r
2925             description "Not an enum, but expected values are port-mirror-configuration, vlan-network-receptor";\r
2926             type string {\r
2927                 length "0..255";\r
2928             }\r
2929          }\r
2930          leaf configuration-sub-type {\r
2931             description "e.g. vprobe and pprobe when configuration-type=port-mirror-configuration";\r
2932             type string {\r
2933                 length "0..255";\r
2934             }\r
2935          }\r
2936          uses onap-model-information;\r
2937       }\r
2938    }\r
2939    grouping configuration-identifiers {\r
2940       container configuration-identifiers {\r
2941          leaf configuration-id {\r
2942             type string {\r
2943                 length "0..255";\r
2944             }\r
2945          }\r
2946          leaf configuration-name {\r
2947             type string {\r
2948                 length "0..255";\r
2949             }\r
2950          }\r
2951          leaf configuration-type {\r
2952             description "Not an enum, but expected values are port-mirror-configuration.";\r
2953             type string {\r
2954                 length "0..255";\r
2955             }\r
2956          }\r
2957          leaf configuration-sub-type {\r
2958             description " vprobe and pprobe";\r
2959             type string {\r
2960                 length "0..255";\r
2961             }\r
2962          }\r
2963          leaf parent-service-instance-id {\r
2964             description "Service-instance-id of the parent service to which this resource belongs.";\r
2965             type string {\r
2966                 length "0..255";\r
2967             }\r
2968          }\r
2969       }\r
2970    }\r
2971    grouping configuration-oper-status {\r
2972       container configuration-oper-status {\r
2973          uses oper-status-data;\r
2974       }\r
2975    }\r
2976    grouping configuration-status {\r
2977       container configuration-status {\r
2978          leaf response-code {\r
2979             type string {\r
2980                 length "0..255";\r
2981             }\r
2982          }\r
2983          leaf response-message {\r
2984             type string {\r
2985                 length "0..2000";\r
2986             }\r
2987          }\r
2988          leaf final-indicator {\r
2989             type string {\r
2990                 length "0..255";\r
2991             }\r
2992          }\r
2993          leaf request-status {\r
2994             type enumeration {\r
2995                enum "synccomplete";\r
2996                enum "asynccomplete";\r
2997                enum "notifycomplete";\r
2998             }\r
2999          }\r
3000          leaf action {\r
3001             description "value would one of possible request-actions; match the list in service-data oper-status";\r
3002             type string {\r
3003                 length "0..255";\r
3004             }\r
3005          }\r
3006          leaf rpc-name {\r
3007             type string {\r
3008                 length "0..255";\r
3009             }\r
3010          }\r
3011          leaf rpc-action {\r
3012             description "this is the svc-action from the incoming request";\r
3013             type enumeration {\r
3014                enum "assign";\r
3015                enum "activate";\r
3016                enum "create";\r
3017                enum "disable";\r
3018                enum "enable";\r
3019                enum "delete";\r
3020                enum "unassign";\r
3021                enum "deactivate";\r
3022             }\r
3023          }\r
3024          leaf response-timestamp {\r
3025             type string {\r
3026                 length "0..255";\r
3027             }\r
3028          }\r
3029       }\r
3030    }\r
3031    grouping topology-response-common {\r
3032       leaf svc-request-id {\r
3033          description "the request id from the request message for which this is the responseKeep as M";\r
3034          type string {\r
3035              length "0..255";\r
3036          }\r
3037       }\r
3038       leaf response-code {\r
3039          description "a success code or an defined error codeKeep as M";\r
3040          type string {\r
3041              length "0..255";\r
3042          }\r
3043       }\r
3044       leaf response-message {\r
3045          description "message included for error code";\r
3046          type string {\r
3047              length "0..2000";\r
3048          }\r
3049       }\r
3050       leaf ack-final-indicator {\r
3051          description "Expected to be Y or N.";\r
3052          type string {\r
3053              length "0..255";\r
3054          }\r
3055       }\r
3056    }\r
3057    grouping sdnc-request-header {\r
3058       container sdnc-request-header {\r
3059          leaf svc-request-id {\r
3060             description "Uniquely generated by calling system (e.g. MSO or SDN-GP)";\r
3061             type string {\r
3062                 length "0..255";\r
3063             }\r
3064          }\r
3065          leaf svc-action {\r
3066             description "This is the rpcAction";\r
3067             type enumeration {\r
3068                enum "reserve";\r
3069                enum "assign";\r
3070                enum "activate";\r
3071                enum "delete";\r
3072                enum "changeassign";\r
3073                enum "changedelete";\r
3074                enum "rollback";\r
3075                enum "deactivate";\r
3076                enum "unassign";\r
3077                enum "create";\r
3078                enum "disable";\r
3079                enum "enable";\r
3080                enum "update";\r
3081                enum "reoptimize";\r
3082                enum "rebuild";\r
3083             }\r
3084          }\r
3085          leaf svc-notification-url {\r
3086             description "Contains URL for asynchronous response";\r
3087             type string {\r
3088                 length "0..512";\r
3089             }\r
3090          }\r
3091       }\r
3092    }\r
3093    grouping request-information {\r
3094       container request-information {\r
3095          leaf request-id {\r
3096             description "Request ID generated upstream of MSO";\r
3097             type string {\r
3098                 length "0..255";\r
3099             }\r
3100          }\r
3101          leaf request-action {\r
3102             description "still need to work Disconnect";\r
3103             type enumeration {\r
3104                enum "CreateNetworkInstance";\r
3105                enum "ActivateNetworkInstance";\r
3106                enum "DeActivateNetworkInstance";\r
3107                enum "CreateServiceInstance";\r
3108                enum "DeleteServiceInstance";\r
3109                enum "DeleteNetworkInstance";\r
3110                enum "CreateVnfInstance";\r
3111                enum "ActivateVnfInstance";\r
3112                enum "DeleteVnfInstance";\r
3113                enum "CreatePnfInstance";\r
3114                enum "ActivatePnfInstance";\r
3115                enum "DeletePnfInstance";\r
3116                enum "CreateVfModuleInstance";\r
3117                enum "ActivateVfModuleInstance";\r
3118                enum "DeleteVfModuleInstance";\r
3119                enum "CreateContrailRouteInstance";\r
3120                enum "DeleteContrailRouteInstance";\r
3121                enum "CreateSecurityZoneInstance";\r
3122                enum "DeleteSecurityZoneInstance";\r
3123                enum "ActivateDCINetworkInstance";\r
3124                enum "DeActivateDCINetworkInstance";\r
3125                enum "CreateTunnelXConnInstance";\r
3126                enum "DeleteTunnelXConnInstance";\r
3127                enum "CreateBRGInstance";\r
3128                enum "DeleteBRGInstance";\r
3129                enum "CreateSOTNConnectivityInstance";\r
3130                enum "ActivateSOTNConnectivityInstance";\r
3131                enum "DeactivateSOTNConnectivityInstance";\r
3132                enum "DeleteSOTNConnectivityInstance";\r
3133                enum "CreateSOTNAttachmentInstance";\r
3134                enum "ActivateSOTNAttachmentInstance";\r
3135                enum "DeactivateSOTNAttachmentInstance";\r
3136                enum "DeleteSOTNAttachmentInstance";\r
3137                enum "CreateSiteInstance";\r
3138                enum "ActivateSiteInstance";\r
3139                enum "DeactivateSiteInstance";\r
3140                enum "DeleteSiteInstance";\r
3141                enum "CreatePortMirrorConfigurationInstance";\r
3142                enum "DeletePortMirrorConfigurationInstance";\r
3143                enum "ChangePortMirrorConfigurationInstance";\r
3144                enum "CreateGenericConfigurationInstance";\r
3145                enum "RebuildGenericConfigurationInstance";\r
3146                enum "DeleteGenericConfigurationInstance";\r
3147                enum "PreloadVfModuleRequest";\r
3148                enum "DeletePreloadVfModuleRequest";\r
3149                enum "PreloadNetworkRequest";\r
3150                enum "DeletePreloadNetworkRequest";\r
3151                enum "CreateForwardingPathInstance";\r
3152                enum "DeleteForwardingPathInstance";\r
3153                enum "UpdateForwardingPathInstance";\r
3154                enum "CreateSDWANDeviceInstance";\r
3155                enum "ActivateSDWANDeviceInstance";\r
3156                enum "DeactivateSDWANDeviceInstance";\r
3157                enum "DeleteSDWANDeviceInstance";\r
3158                enum "CreateSDWANPortInstance";\r
3159                enum "ActivateSDWANPortInstance";\r
3160                enum "DeactivateSDWANPortInstance";\r
3161                enum "DeleteSDWANPortInstance";\r
3162                enum "ReoptimizeSOTNInstance";\r
3163                enum "CreateSDWANLanPortInstance";\r
3164                enum "ActivateSDWANLanPortInstance";\r
3165                enum "DeactivateSDWANLanPortInstance";\r
3166                enum "DeleteSDWANLanPortInstance";\r
3167                enum "CreateSDWANVpnInstance";\r
3168                enum "ActivateSDWANVpnInstance";\r
3169                enum "DeactivateSDWANVpnInstance";\r
3170                enum "DeleteSDWANVpnInstance";\r
3171                enum "CreateSDWANSiteInstance";\r
3172                enum "ActivateSDWANSiteInstance";\r
3173                enum "DeactivateSDWANSiteInstance";\r
3174                enum "DeleteSDWANSiteInstance";\r
3175                enum "SdwanBandwidthChange";\r
3176                enum "CreateAccessConnectivityInstance";\r
3177                enum "DeleteAccessConnectivityInstance";\r
3178                enum "CreateInternetProfileInstance";\r
3179                enum "ChangeInternetProfileInstance";\r
3180                enum "DeleteInternetProfileInstance";\r
3181                enum "CreateSOTNUnderlayInstance";\r
3182                enum "ActivateSOTNUnderlayInstance";\r
3183                enum "DeactivateSOTNUnderlayInstance";\r
3184                enum "DeleteSOTNUnderlayInstance";\r
3185                enum "CreateSOTNUniInstance";\r
3186                enum "ActivateSOTNUniInstance";\r
3187                enum "DeactivateSOTNUniInstance";\r
3188                enum "DeleteSOTNUniInstance";\r
3189                enum "CreateSOTNL2VpnInstance";\r
3190                enum "ActivateSOTNL2VpnInstance";\r
3191                enum "DeactivateSOTNL2VpnInstance";\r
3192                enum "DeleteSOTNL2VpnInstance";\r
3193                enum "AllocateTransportSliceInstance";\r
3194                enum "ActivateTransportSliceInstance";\r
3195                enum "DeactivateTransportSliceInstance";\r
3196                enum "DeleteTransportSliceInstance";\r
3197                enum "ModifyTransportSliceInstance";\r
3198                enum "CreateCloudLeasedLineInstance";\r
3199                enum "ModifyCloudLeasedLineInstance";\r
3200                enum "DeleteCloudLeasedLineInstance";\r
3201             }\r
3202          }\r
3203          leaf source {\r
3204             type string {\r
3205                 length "0..255";\r
3206             }\r
3207          }\r
3208          leaf notification-url {\r
3209             type string {\r
3210                 length "0..512";\r
3211             }\r
3212          }\r
3213          leaf order-number {\r
3214             type string {\r
3215                 length "0..255";\r
3216             }\r
3217          }\r
3218          leaf order-version {\r
3219             type string {\r
3220                 length "0..255";\r
3221             }\r
3222          }\r
3223       }\r
3224    }\r
3225    grouping service-information {\r
3226       container service-information {\r
3227          leaf service-id {\r
3228             description "This maps to the product-family-id in A&AI";\r
3229             type string {\r
3230                 length "0..255";\r
3231             }\r
3232          }\r
3233          leaf subscription-service-type {\r
3234             description "used to reference a&ai subscription-service-type. For example, we show as vIPR-ATM in example.";\r
3235             type string {\r
3236                 length "0..255";\r
3237             }\r
3238          }\r
3239          uses onap-model-information;\r
3240          leaf service-instance-id {\r
3241             type string {\r
3242                 length "0..255";\r
3243             }\r
3244          }\r
3245          leaf global-customer-id {\r
3246             description "need for put of data to AnAI (MSO provides)";\r
3247             type string {\r
3248                 length "0..255";\r
3249             }\r
3250          }\r
3251          leaf subscriber-name {\r
3252             description "Would not be expected for vIPR-ATM or mobility services.";\r
3253             type string {\r
3254                 length "0..255";\r
3255             }\r
3256          }\r
3257       }\r
3258    }\r
3259    grouping onap-model-information {\r
3260       container onap-model-information {\r
3261          leaf model-invariant-uuid {\r
3262             description "identifies the invariant uuid for this service or resource";\r
3263             type string {\r
3264                 length "0..255";\r
3265             }\r
3266          }\r
3267          leaf model-customization-uuid {\r
3268             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
3269             type string {\r
3270                 length "0..255";\r
3271             }\r
3272          }\r
3273          leaf model-uuid {\r
3274             description "identifies the uuid for this service or resource, which is version specific";\r
3275             type string {\r
3276                 length "0..255";\r
3277             }\r
3278          }\r
3279          leaf model-version {\r
3280             type string {\r
3281                 length "0..255";\r
3282             }\r
3283          }\r
3284          leaf model-name {\r
3285             type string {\r
3286                 length "0..255";\r
3287             }\r
3288          }\r
3289       }\r
3290    }\r
3291    grouping region-identifier {\r
3292       leaf tenant {\r
3293          type string {\r
3294              length "0..255";\r
3295          }\r
3296       }\r
3297       leaf aic-cloud-region {\r
3298          description "The AIC cloud region which maps to contrail versions";\r
3299          type string;\r
3300       }\r
3301       leaf cloud-owner {\r
3302           type string {\r
3303               length "0..255";\r
3304           }\r
3305       }\r
3306       leaf aic-clli {\r
3307          description "Not expected to be used";\r
3308          type string {\r
3309              length "0..255";\r
3310          }\r
3311       }\r
3312    }\r
3313    grouping param {\r
3314       list param {\r
3315          key "name";\r
3316          leaf name {\r
3317             type string {\r
3318                 length "0..255";\r
3319             }\r
3320          }\r
3321          leaf value {\r
3322             type string {\r
3323                 length "0..20000";\r
3324             }\r
3325          }\r
3326          container resource-resolution-data {\r
3327             list resource-key {\r
3328                key "name";\r
3329                leaf name {\r
3330                   type string {\r
3331                       length "0..255";\r
3332                   }\r
3333                }\r
3334                leaf value {\r
3335                   type string {\r
3336                       length "0..20000";\r
3337                   }\r
3338                }\r
3339             }\r
3340             leaf status {\r
3341                description "SUCCESS, FAILED, or PENDING - RA returned data as capability";\r
3342                type string {\r
3343                    length "0..255";\r
3344                }\r
3345             }\r
3346             leaf capability-name {\r
3347                description "Resource assignment resolution Capability name";\r
3348                type string {\r
3349                    length "0..255";\r
3350                }\r
3351             }\r
3352             leaf payload {\r
3353                type string;\r
3354             }\r
3355          }\r
3356       }\r
3357    }\r
3358    grouping ip-addresses {\r
3359       container ip-addresses {\r
3360          leaf ipv4-address {\r
3361             type inet:ip-address;\r
3362          }\r
3363          leaf ipv6-address {\r
3364             type inet:ip-address;\r
3365          }\r
3366          leaf vipv4-address {\r
3367             description "Virtual v4";\r
3368             type inet:ip-address;\r
3369          }\r
3370          leaf vipv6-address {\r
3371             description "Virtual v6";\r
3372             type inet:ip-address;\r
3373          }\r
3374       }\r
3375    }\r
3376    grouping instance-reference {\r
3377       leaf instance-id {\r
3378          type string {\r
3379              length "0..255";\r
3380          }\r
3381       }\r
3382       leaf object-path {\r
3383          description "restconf retrieval path to this particular objectE.g. restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/service-topology/";\r
3384          type string {\r
3385              length "0..512";\r
3386          }\r
3387       }\r
3388    }\r
3389    grouping oper-status-data {\r
3390       leaf order-status {\r
3391          description "TBD - do we need Request failed statuses? RequestFailed | InProgressTimeout";\r
3392          type enumeration {\r
3393             enum "Active";\r
3394             enum "PendingAssignment";\r
3395             enum "PendingCreate";\r
3396             enum "PendingUpdate";\r
3397             enum "PendingDelete";\r
3398             enum "Deleted";\r
3399             enum "Created";\r
3400          }\r
3401       }\r
3402       leaf last-rpc-action {\r
3403          type enumeration {\r
3404             enum "assign";\r
3405             enum "activate";\r
3406             enum "delete";\r
3407             enum "unassign";\r
3408             enum "deactivate";\r
3409             enum "create";\r
3410             enum "changeassign";\r
3411             enum "reoptimize";\r
3412          }\r
3413       }\r
3414       leaf last-action {\r
3415          description "should be list of possible request-actions";\r
3416          type enumeration {\r
3417             enum "CreateNetworkInstance";\r
3418             enum "ActivateNetworkInstance";\r
3419             enum "DeActivateNetworkInstance";\r
3420             enum "DeleteNetworkInstance";\r
3421             enum "CreateServiceInstance";\r
3422             enum "DeleteServiceInstance";\r
3423             enum "CreateVnfInstance";\r
3424             enum "ActivateVnfInstance";\r
3425             enum "DeleteVnfInstance";\r
3426             enum "CreatePnfInstance";\r
3427             enum "ActivatePnfInstance";\r
3428             enum "DeletePnfInstance";\r
3429             enum "CreateVfModuleInstance";\r
3430             enum "ActivateVfModuleInstance";\r
3431             enum "DeleteVfModuleInstance";\r
3432             enum "CreateContrailRouteInstance";\r
3433             enum "DeleteContrailRouteInstance";\r
3434             enum "CreateSecurityZoneInstance";\r
3435             enum "DeleteSecurityZoneInstance";\r
3436             enum "ActivateDCINetworkInstance";\r
3437             enum "DeActivateDCINetworkInstance";\r
3438             enum "CreateTunnelXConnInstance";\r
3439             enum "DeleteTunnelXConnInstance";\r
3440             enum "CreateBRGInstance";\r
3441             enum "DeleteBRGInstance";\r
3442             enum "CreateSOTNConnectivityInstance";\r
3443             enum "ActivateSOTNConnectivityInstance";\r
3444             enum "DeactivateSOTNConnectivityInstance";\r
3445             enum "DeleteSOTNConnectivityInstance";\r
3446             enum "CreateSOTNAttachmentInstance";\r
3447             enum "ActivateSOTNAttachmentInstance";\r
3448             enum "DeactivateSOTNAttachmentInstance";\r
3449             enum "DeleteSOTNAttachmentInstance";\r
3450             enum "CreateSiteInstance";\r
3451             enum "ActivateSiteInstance";\r
3452             enum "DeactivateSiteInstance";\r
3453             enum "DeleteSiteInstance";\r
3454             enum "CreatePortMirrorConfigurationInstance";\r
3455             enum "DeletePortMirrorConfigurationInstance";\r
3456             enum "ChangePortMirrorConfigurationInstance";\r
3457             enum "CreateGenericConfigurationInstance";\r
3458             enum "DeleteGenericConfigurationInstance";\r
3459             enum "PreloadVfModuleRequest";\r
3460             enum "DeletePreloadVfModuleRequest";\r
3461             enum "PreloadNetworkRequest";\r
3462             enum "DeletePreloadNetworkRequest";\r
3463             enum "CreateForwardingPathInstance";\r
3464             enum "DeleteForwardingPathInstance";\r
3465             enum "UpdateForwardingPathInstance";\r
3466             enum "CreateSDWANDeviceInstance";\r
3467             enum "ActivateSDWANDeviceInstance";\r
3468             enum "DeactivateSDWANDeviceInstance";\r
3469             enum "DeleteSDWANDeviceInstance";\r
3470             enum "CreateSDWANPortInstance";\r
3471             enum "ActivateSDWANPortInstance";\r
3472             enum "DeactivateSDWANPortInstance";\r
3473             enum "DeleteSDWANPortInstance";\r
3474             enum "ReoptimizeSOTNInstance";\r
3475             enum "CreateSDWANLanPortInstance";\r
3476             enum "ActivateSDWANLanPortInstance";\r
3477             enum "DeactivateSDWANLanPortInstance";\r
3478             enum "DeleteSDWANLanPortInstance";\r
3479             enum "CreateSDWANVpnInstance";\r
3480             enum "ActivateSDWANVpnInstance";\r
3481             enum "DeactivateSDWANVpnInstance";\r
3482             enum "DeleteSDWANVpnInstance";\r
3483             enum "CreateSDWANSiteInstance";\r
3484             enum "ActivateSDWANSiteInstance";\r
3485             enum "DeactivateSDWANSiteInstance";\r
3486             enum "DeleteSDWANSiteInstance";\r
3487             enum "SdwanBandwidthChange";\r
3488             enum "CreateAccessConnectivityInstance";\r
3489             enum "DeleteAccessConnectivityInstance";\r
3490             enum "CreateInternetProfileInstance";\r
3491             enum "ChangeInternetProfileInstance";\r
3492             enum "DeleteInternetProfileInstance";\r
3493             enum "CreateSOTNUnderlayInstance";\r
3494             enum "ActivateSOTNUnderlayInstance";\r
3495             enum "DeactivateSOTNUnderlayInstance";\r
3496             enum "DeleteSOTNUnderlayInstance";\r
3497             enum "CreateSOTNUniInstance";\r
3498             enum "ActivateSOTNUniInstance";\r
3499             enum "DeactivateSOTNUniInstance";\r
3500             enum "DeleteSOTNUniInstance";\r
3501             enum "CreateSOTNL2VpnInstance";\r
3502             enum "ActivateSOTNL2VpnInstance";\r
3503             enum "DeactivateSOTNL2VpnInstance";\r
3504             enum "DeleteSOTNL2VpnInstance";\r
3505             enum "AllocateTransportSliceInstance";\r
3506             enum "ActivateTransportSliceInstance";\r
3507             enum "DeactivateTransportSliceInstance";\r
3508             enum "DeleteTransportSliceInstance";\r
3509             enum "ModifyTransportSliceInstance";\r
3510             enum "CreateCloudLeasedLineInstance";\r
3511             enum "ModifyCloudLeasedLineInstance";\r
3512             enum "DeleteCloudLeasedLineInstance";\r
3513          }\r
3514       }\r
3515       leaf last-svc-request-id {\r
3516          description "Not currently populated in service data.";\r
3517          type string {\r
3518              length "0..255";\r
3519          }\r
3520       }\r
3521       leaf last-order-status {\r
3522          type enumeration {\r
3523             enum "Active";\r
3524             enum "PendingAssignment";\r
3525             enum "PendingCreate";\r
3526             enum "PendingUpdate";\r
3527             enum "PendingDelete";\r
3528             enum "Deleted";\r
3529             enum "Created";\r
3530          }\r
3531       }\r
3532       leaf create-timestamp {\r
3533          description "Not currently populated in service data.";\r
3534          type string {\r
3535              length "0..255";\r
3536          }\r
3537       }\r
3538       leaf modify-timestamp {\r
3539          type string {\r
3540              length "0..255";\r
3541          }\r
3542       }\r
3543    }\r
3544    grouping service-response-information {\r
3545       container service-response-information {\r
3546          uses instance-reference;\r
3547       }\r
3548    }\r
3549    grouping network-response-information {\r
3550       container network-response-information {\r
3551          uses instance-reference;\r
3552       }\r
3553    }\r
3554    grouping vnf-response-information {\r
3555       container vnf-response-information {\r
3556          uses instance-reference;\r
3557       }\r
3558    }\r
3559    grouping vf-module-response-information {\r
3560       container vf-module-response-information {\r
3561          uses instance-reference;\r
3562       }\r
3563    }\r
3564    grouping pnf-response-information {\r
3565       container pnf-response-information {\r
3566          uses instance-reference;\r
3567       }\r
3568    }\r
3569    grouping contrail-route-response-information {\r
3570       container contrail-route-response-information {\r
3571          uses instance-reference;\r
3572       }\r
3573    }\r
3574    grouping security-zone-response-information {\r
3575       container security-zone-response-information {\r
3576          uses instance-reference;\r
3577       }\r
3578    }\r
3579    grouping getpathsegment-response-information {\r
3580       container getpathsegment-response-information {\r
3581          uses instance-reference;\r
3582       }\r
3583    }\r
3584    grouping port-mirror-response-information {\r
3585       container port-mirror-response-information {\r
3586          uses instance-reference;\r
3587       }\r
3588    }\r
3589    grouping gc-response-information {\r
3590       container gc-response-information {\r
3591          uses instance-reference;\r
3592       }\r
3593    }\r
3594    grouping tunnelxconn-response-information {\r
3595        container tunnelxconn-response-information {\r
3596            uses instance-reference;\r
3597        }\r
3598    }\r
3599    grouping brg-response-information {\r
3600        container brg-response-information {\r
3601            uses instance-reference;\r
3602        }\r
3603    }\r
3604    grouping connection-attachment-response-information {\r
3605       container connection-attachment-response-information {\r
3606          uses instance-reference;\r
3607       }\r
3608    }\r
3609    grouping preload-model-information {\r
3610       list preload-list {\r
3611          key "preload-id preload-type";\r
3612          leaf preload-id {\r
3613             description "vf-module-name or network name";\r
3614             type string {\r
3615                 length "0..255";\r
3616             }\r
3617             mandatory true;\r
3618          }\r
3619          leaf preload-type {\r
3620             description "network or vf-module";\r
3621             type string {\r
3622                 length "0..255";\r
3623             }\r
3624             mandatory true;\r
3625          }\r
3626          uses preload-data;\r
3627       }\r
3628    }\r
3629    grouping preload-data {\r
3630       container preload-data {\r
3631          uses preload-vf-module-topology-information;\r
3632          uses preload-network-topology-information;\r
3633          uses preload-oper-status;\r
3634       }\r
3635    }\r
3636    grouping preload-vf-module-topology-information {\r
3637       container preload-vf-module-topology-information {\r
3638          uses vnf-topology-identifier-structure;\r
3639          uses vnf-resource-assignments;\r
3640          uses vf-module-topology;\r
3641       }\r
3642    }\r
3643    grouping preload-network-topology-information {\r
3644       container preload-network-topology-information {\r
3645          uses network-topology-identifier-structure;\r
3646          uses subnets;\r
3647          uses vpn-bindings;\r
3648          uses network-policy;\r
3649          uses route-table-reference;\r
3650          uses host-routes;\r
3651          uses provider-network-information;\r
3652       }\r
3653    }\r
3654    grouping subnets {\r
3655       list subnets {\r
3656          key "start-address";\r
3657          leaf start-address {\r
3658             type inet:ip-address;\r
3659          }\r
3660          leaf gateway-address {\r
3661             type inet:ip-address;\r
3662          }\r
3663          leaf cidr-mask {\r
3664             type string {\r
3665                 length "0..255";\r
3666             }\r
3667          }\r
3668          leaf ip-version {\r
3669             type string {\r
3670                 length "0..255";\r
3671             }\r
3672          }\r
3673          leaf dhcp-enabled {\r
3674             type enumeration {\r
3675                enum "Y";\r
3676                enum "N";\r
3677             }\r
3678          }\r
3679          leaf dhcp-start-address {\r
3680             type string {\r
3681                 length "0..255";\r
3682             }\r
3683          }\r
3684          leaf dhcp-end-address {\r
3685             type string {\r
3686                 length "0..255";\r
3687             }\r
3688          }\r
3689          leaf addr-from-start {\r
3690             description "Default is N";\r
3691             type enumeration {\r
3692                enum "Y";\r
3693                enum "N";\r
3694             }\r
3695          }\r
3696          leaf subnet-name {\r
3697             type string {\r
3698                 length "0..255";\r
3699             }\r
3700          }\r
3701          leaf subnet-role {\r
3702             type string {\r
3703                 length "0..255";\r
3704             }\r
3705          }\r
3706          leaf subnet-sequence {\r
3707             type uint8;\r
3708          }\r
3709       }\r
3710    }\r
3711    grouping vpn-bindings {\r
3712       list vpn-bindings {\r
3713          key "vpn-binding-id";\r
3714          leaf vpn-binding-id {\r
3715             type string {\r
3716                 length "0..255";\r
3717             }\r
3718          }\r
3719          leaf vpn-name {\r
3720             type string {\r
3721                 length "0..255";\r
3722             }\r
3723          }\r
3724          leaf global-route-target {\r
3725             type string {\r
3726                 length "0..255";\r
3727             }\r
3728          }\r
3729          leaf route-target-role {\r
3730             type string {\r
3731                 length "0..255";\r
3732             }\r
3733          }\r
3734          leaf aic-zone {\r
3735             description "AIC Zone the route target associated with";\r
3736             type string {\r
3737                 length "0..255";\r
3738             }\r
3739          }\r
3740       }\r
3741    }\r
3742    grouping network-policy {\r
3743       list network-policy {\r
3744          key "network-policy-fqdn";\r
3745          leaf network-policy-fqdn {\r
3746             type string {\r
3747                 length "0..512";\r
3748             }\r
3749          }\r
3750          leaf network-policy-id {\r
3751             type string {\r
3752                 length "0..255";\r
3753             }\r
3754          }\r
3755       }\r
3756    }\r
3757    grouping route-table-reference {\r
3758       list route-table-reference {\r
3759          key "route-table-reference-fqdn";\r
3760          leaf route-table-reference-fqdn {\r
3761             type string {\r
3762                 length "0..512";\r
3763             }\r
3764             mandatory true;\r
3765          }\r
3766          leaf route-table-reference-id {\r
3767             type string {\r
3768                 length "0..255";\r
3769             }\r
3770          }\r
3771       }\r
3772    }\r
3773    grouping provider-network-information {\r
3774       leaf physical-network-name {\r
3775          type string {\r
3776              length "0..255";\r
3777          }\r
3778       }\r
3779       leaf is-provider-network {\r
3780          type boolean;\r
3781       }\r
3782       leaf is-shared-network {\r
3783          type boolean;\r
3784       }\r
3785       leaf is-external-network {\r
3786          type boolean;\r
3787       }\r
3788    }\r
3789    grouping host-routes {\r
3790       list host-routes {\r
3791          key "route-prefix";\r
3792          leaf route-prefix {\r
3793             type string {\r
3794                 length "0..255";\r
3795             }\r
3796          }\r
3797          leaf next-hop {\r
3798             description "Could be ip-address or hostname or service-instance";\r
3799             type string {\r
3800                 length "0..255";\r
3801             }\r
3802          }\r
3803       }\r
3804    }\r
3805    grouping preload-oper-status {\r
3806       container preload-oper-status {\r
3807          leaf order-status {\r
3808             type enumeration {\r
3809                enum "Active";\r
3810                enum "PendingAssignment";\r
3811                enum "PendingCreate";\r
3812                enum "PendingUpdate";\r
3813                enum "PendingDelete";\r
3814                enum "Deleted";\r
3815             }\r
3816          }\r
3817          leaf last-action {\r
3818             type enumeration {\r
3819                enum "PreloadVfModuleRequest";\r
3820                enum "DeletePreloadVfModuleRequest";\r
3821                enum "PreloadNetworkRequest";\r
3822                enum "DeletePreloadNetworkRequest";\r
3823             }\r
3824          }\r
3825          leaf last-svc-request-id {\r
3826             type string {\r
3827                 length "0..255";\r
3828             }\r
3829          }\r
3830          leaf last-order-status {\r
3831             type enumeration {\r
3832                enum "Active";\r
3833                enum "PendingAssignment";\r
3834                enum "PendingCreate";\r
3835                enum "PendingUpdate";\r
3836                enum "PendingDelete";\r
3837                enum "Deleted";\r
3838             }\r
3839          }\r
3840          leaf create-timestamp {\r
3841             type string {\r
3842                 length "0..255";\r
3843             }\r
3844          }\r
3845          leaf modify-timestamp {\r
3846             type string {\r
3847                 length "0..255";\r
3848             }\r
3849          }\r
3850          leaf maintenance-indicator {\r
3851             type enumeration {\r
3852                enum "Y";\r
3853                enum "N";\r
3854             }\r
3855          }\r
3856       }\r
3857    }\r
3858    grouping preload-topology-response-body {\r
3859       leaf svc-request-id {\r
3860          type string {\r
3861              length "0..255";\r
3862          }\r
3863       }\r
3864       leaf response-code {\r
3865          type string {\r
3866              length "0..255";\r
3867          }\r
3868       }\r
3869       leaf response-message {\r
3870          type string {\r
3871              length "0..2000";\r
3872          }\r
3873       }\r
3874       leaf ack-final-indicator {\r
3875          type string {\r
3876              length "0..255";\r
3877          }\r
3878       }\r
3879    }\r
3880    rpc generic-configuration-notification {\r
3881       input {\r
3882          uses sdnc-request-header;\r
3883          uses request-information;\r
3884          uses service-information;\r
3885          uses configuration-information;\r
3886          uses topology-response-common;\r
3887          leaf configuration-topology-link {\r
3888             description "Returns URL to generic-configuration-topology ";\r
3889             type string {\r
3890                 length "0..512";\r
3891             }\r
3892          }\r
3893          uses vnr-parameters;\r
3894          uses vnf-vnr-rebuild-data;\r
3895       }\r
3896    }\r
3897    container services {\r
3898       uses service-model-infrastructure;\r
3899    }\r
3900    container contrail-route-allotted-resources {\r
3901       list contrail-route-allotted-resource {\r
3902          key "allotted-resource-id";\r
3903          leaf allotted-resource-id {\r
3904             type string {\r
3905                 length "0..255";\r
3906             }\r
3907             mandatory true;\r
3908          }\r
3909          container allotted-resource-data {\r
3910             container allotted-resource-operation-information {\r
3911                uses contrail-route-operation-information;\r
3912             }\r
3913             uses contrail-route-topology;\r
3914             uses allotted-resource-oper-status;\r
3915          }\r
3916          uses allotted-resource-status;\r
3917       }\r
3918    }\r
3919    container security-zone-allotted-resources {\r
3920       list security-zone-allotted-resource {\r
3921          key "allotted-resource-id";\r
3922          leaf allotted-resource-id {\r
3923             type string {\r
3924                 length "0..255";\r
3925             }\r
3926             mandatory true;\r
3927          }\r
3928          container allotted-resource-data {\r
3929             container allotted-resource-operation-information {\r
3930                uses security-zone-operation-information;\r
3931             }\r
3932             uses security-zone-topology;\r
3933             container security-zone-parameters {\r
3934                uses param;\r
3935             }\r
3936             uses allotted-resource-oper-status;\r
3937          }\r
3938          uses allotted-resource-status;\r
3939       }\r
3940    }\r
3941    container tunnelxconn-allotted-resources {\r
3942        list tunnelxconn-allotted-resource {\r
3943            key "allotted-resource-id";\r
3944            leaf allotted-resource-id {\r
3945                type string;\r
3946                mandatory true;\r
3947            }\r
3948            container allotted-resource-data {\r
3949                container allotted-resource-operation-information {\r
3950                    uses tunnelxconn-operation-information;\r
3951                }\r
3952                uses tunnelxconn-topology;\r
3953                container tunnelxconn-parameters {\r
3954                    uses param;\r
3955                }\r
3956                uses allotted-resource-oper-status;\r
3957            }\r
3958            uses allotted-resource-status;\r
3959        }\r
3960    }\r
3961    container brg-allotted-resources {\r
3962        list brg-allotted-resource {\r
3963            key "allotted-resource-id";\r
3964            leaf allotted-resource-id {\r
3965                type string;\r
3966                mandatory true;\r
3967            }\r
3968            container allotted-resource-data {\r
3969                container allotted-resource-operation-information {\r
3970                    uses brg-operation-information;\r
3971                }\r
3972                uses brg-topology;\r
3973                container brg-parameters {\r
3974                    uses param;\r
3975                }\r
3976                uses allotted-resource-oper-status;\r
3977            }\r
3978            uses allotted-resource-status;\r
3979        }\r
3980    }\r
3981    container connection-attachment-allotted-resources {\r
3982       list connection-attachment-allotted-resource {\r
3983          key "allotted-resource-id";\r
3984          leaf allotted-resource-id {\r
3985             type string;\r
3986             mandatory true;\r
3987          }\r
3988          container allotted-resource-data {\r
3989             container allotted-resource-operation-information {\r
3990                uses connection-attachment-operation-information;\r
3991             }\r
3992             uses connection-attachment-topology;\r
3993             container connection-attachment-parameters {\r
3994                uses param;\r
3995             }\r
3996             uses allotted-resource-oper-status;\r
3997          }\r
3998          uses allotted-resource-status;\r
3999       }\r
4000    }\r
4001    container port-mirror-configurations {\r
4002       list port-mirror-configuration {\r
4003          key "configuration-id";\r
4004          leaf configuration-id {\r
4005             type string {\r
4006                 length "0..255";\r
4007             }\r
4008             mandatory true;\r
4009          }\r
4010          container configuration-data {\r
4011             container configuration-operation-information {\r
4012                uses port-mirror-topology-operation-information;\r
4013             }\r
4014             uses port-mirror-configuration-topology;\r
4015             uses configuration-oper-status;\r
4016          }\r
4017          uses configuration-status;\r
4018       }\r
4019    }\r
4020    container generic-configurations {\r
4021       list gc-configuration {\r
4022          key "configuration-id";\r
4023          leaf configuration-id {\r
4024             type string {\r
4025                 length "0..255";\r
4026             }\r
4027             mandatory true;\r
4028          }\r
4029          container configuration-data {\r
4030             container configuration-operation-information {\r
4031                uses gc-topology-operation-information;\r
4032             }\r
4033             uses configuration-oper-status;\r
4034          }\r
4035          uses configuration-status;\r
4036       }\r
4037    }\r
4038    rpc service-topology-operation {\r
4039       input {\r
4040          uses service-operation-information;\r
4041       }\r
4042       output {\r
4043          uses topology-response-common;\r
4044          uses service-response-information;\r
4045       }\r
4046    }\r
4047    rpc network-topology-operation {\r
4048       input {\r
4049          uses network-operation-information;\r
4050       }\r
4051       output {\r
4052          uses topology-response-common;\r
4053          uses network-response-information;\r
4054          uses service-response-information;\r
4055       }\r
4056    }\r
4057    rpc vnf-topology-operation {\r
4058       input {\r
4059          uses vnf-operation-information;\r
4060       }\r
4061       output {\r
4062          uses topology-response-common;\r
4063          uses vnf-response-information;\r
4064          uses service-response-information;\r
4065       }\r
4066    }\r
4067    rpc vf-module-topology-operation {\r
4068       input {\r
4069          uses vf-module-operation-information;\r
4070       }\r
4071       output {\r
4072          uses topology-response-common;\r
4073          uses vf-module-response-information;\r
4074          uses vnf-response-information;\r
4075          uses service-response-information;\r
4076       }\r
4077    }\r
4078    rpc pnf-topology-operation {\r
4079       input {\r
4080          uses pnf-operation-information;\r
4081       }\r
4082       output {\r
4083          uses topology-response-common;\r
4084          uses pnf-response-information;\r
4085          uses service-response-information;\r
4086       }\r
4087    }\r
4088    rpc contrail-route-topology-operation {\r
4089       input {\r
4090          uses contrail-route-operation-information;\r
4091       }\r
4092       output {\r
4093          uses topology-response-common;\r
4094          uses contrail-route-response-information;\r
4095          uses service-response-information;\r
4096       }\r
4097    }\r
4098    rpc security-zone-topology-operation {\r
4099       input {\r
4100          uses security-zone-operation-information;\r
4101       }\r
4102       output {\r
4103          uses topology-response-common;\r
4104          uses security-zone-response-information;\r
4105          uses service-response-information;\r
4106       }\r
4107    }\r
4108    rpc tunnelxconn-topology-operation {\r
4109        input {\r
4110            uses tunnelxconn-operation-information;\r
4111        }\r
4112        output {\r
4113            uses topology-response-common;\r
4114            uses tunnelxconn-response-information;\r
4115            uses service-response-information;\r
4116        }\r
4117    }\r
4118    rpc brg-topology-operation {\r
4119        input {\r
4120            uses brg-operation-information;\r
4121        }\r
4122        output {\r
4123            uses topology-response-common;\r
4124            uses brg-response-information;\r
4125            uses service-response-information;\r
4126        }\r
4127    }\r
4128    rpc policy-update-notify-operation {\r
4129       input {\r
4130          leaf policy-name {\r
4131             type string {\r
4132                 length "0..255";\r
4133             }\r
4134             mandatory true;\r
4135          }\r
4136          leaf version-id {\r
4137             description "Map JSON versionNo to version-id";\r
4138             type string {\r
4139                 length "0..255";\r
4140             }\r
4141             mandatory true;\r
4142          }\r
4143          leaf update-type {\r
4144             type string {\r
4145                 length "0..255";\r
4146             }\r
4147             mandatory true;\r
4148          }\r
4149       }\r
4150       output {\r
4151          leaf error-code {\r
4152             type string {\r
4153                 length "0..255";\r
4154             }\r
4155          }\r
4156          leaf error-msg {\r
4157             type string {\r
4158                 length "0..2000";\r
4159             }\r
4160          }\r
4161       }\r
4162    }\r
4163    rpc getpathsegment-topology-operation {\r
4164       input {\r
4165          uses forwarding-path-operation-information;\r
4166       }\r
4167       output {\r
4168          uses topology-response-common;\r
4169          uses getpathsegment-response-information;\r
4170          uses service-response-information;\r
4171       }\r
4172    }\r
4173    rpc port-mirror-topology-operation {\r
4174       input {\r
4175          uses port-mirror-topology-operation-information;\r
4176       }\r
4177       output {\r
4178          uses topology-response-common;\r
4179          uses port-mirror-response-information;\r
4180          uses service-response-information;\r
4181       }\r
4182    }\r
4183    rpc generic-configuration-topology-operation {\r
4184       input {\r
4185          uses gc-topology-operation-information;\r
4186       }\r
4187       output {\r
4188          uses topology-response-common;\r
4189          uses gc-response-information;\r
4190          uses service-response-information;\r
4191       }\r
4192    }\r
4193    rpc vnf-get-resource-request {\r
4194       input {\r
4195          uses sdnc-request-header;\r
4196          uses request-information;\r
4197          uses service-information;\r
4198          uses vnf-get-resource-request-input-data;\r
4199       }\r
4200       output {\r
4201          container vnf-get-resource-response-information {\r
4202             uses vnf-cloud-param;\r
4203          }\r
4204       }\r
4205    }\r
4206    container preload-information {\r
4207       uses preload-model-information;\r
4208    }\r
4209    rpc preload-vf-module-topology-operation {\r
4210       input {\r
4211          uses sdnc-request-header;\r
4212          uses request-information;\r
4213          uses preload-vf-module-topology-information;\r
4214       }\r
4215       output {\r
4216          uses preload-topology-response-body;\r
4217       }\r
4218    }\r
4219    rpc preload-network-topology-operation {\r
4220       input {\r
4221          uses sdnc-request-header;\r
4222          uses request-information;\r
4223          uses preload-network-topology-information;\r
4224       }\r
4225       output {\r
4226          uses preload-topology-response-body;\r
4227       }\r
4228    }\r
4229 \r
4230    rpc connection-attachment-topology-operation {\r
4231        input {\r
4232            uses connection-attachment-operation-information;\r
4233        }\r
4234        output {\r
4235            uses topology-response-common;\r
4236            uses connection-attachment-response-information;\r
4237            uses service-response-information;\r
4238        }\r
4239    }\r
4240 \r
4241    rpc collectPerformanceData {\r
4242        input {\r
4243             uses sdnc-request-header;\r
4244             uses request-information;\r
4245             uses service-information;\r
4246             leaf controller-ipv4-address {\r
4247                 type string;\r
4248                 mandatory false;\r
4249             }\r
4250         }\r
4251         output {\r
4252             uses topology-response-common;\r
4253         }\r
4254    }\r
4255 \r
4256 } ////closes the module\r