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