Add the request-action types
[sdnc/northbound.git] / generic-resource-api / model / src / main / yang / GENERIC-RESOURCE-API.yang
1 module GENERIC-RESOURCE-API {\r
2 \r
3    namespace "org:onap:sdnc:northbound:generic-resource";\r
4 \r
5    prefix generic-resource-api;\r
6 \r
7    import ietf-inet-types { prefix "inet"; revision-date "2010-09-24"; }\r
8 \r
9    import ietf-yang-types { prefix yang; }\r
10 \r
11    revision "2017-08-24" {\r
12      description\r
13         "ONAP Amsterdam version";\r
14    }\r
15 \r
16    grouping service-model-infrastructure {\r
17       list service {\r
18          key "service-instance-id";\r
19          leaf service-instance-id {\r
20             description "Keep as M";\r
21             type string;\r
22             mandatory true;\r
23          }\r
24          uses service-data;\r
25          uses service-status;\r
26       }\r
27    }\r
28    grouping service-data {\r
29       container service-data {\r
30          uses service-operation-information;\r
31          uses service-topology;\r
32          uses service-level-oper-status;\r
33          container networks {\r
34             list network {\r
35                key "network-id";\r
36                leaf network-id {\r
37                   type string;\r
38                   mandatory true;\r
39                }\r
40                container network-data {\r
41                   uses network-operation-information;\r
42                   uses network-topology;\r
43                   container network-provided-allotted-resources {\r
44                      leaf-list network-provided-ar-id {\r
45                         description "List of allotted resources using capacity from this network";\r
46                         type string;\r
47                         ordered-by user;\r
48                      }\r
49                   }\r
50                   uses network-level-oper-status;\r
51                }\r
52             }\r
53          }\r
54          container vnfs {\r
55             list vnf {\r
56                key "vnf-id";\r
57                leaf vnf-id {\r
58                   type string;\r
59                   mandatory true;\r
60                }\r
61                container vnf-data {\r
62                   uses vnf-operation-information;\r
63                   uses vnf-topology;\r
64                   container vnf-provided-allotted-resources {\r
65                      leaf-list vnf-provided-ar-id {\r
66                         description "List of allotted resources using capacity from this vnf";\r
67                         type string;\r
68                         ordered-by user;\r
69                      }\r
70                   }\r
71                   uses vnf-level-oper-status;\r
72                   container vf-modules {\r
73                      list vf-module {\r
74                         key "vf-module-id";\r
75                         leaf vf-module-id {\r
76                            type string;\r
77                            mandatory true;\r
78                         }\r
79                         container vf-module-data {\r
80                            uses vf-module-operation-information;\r
81                            uses vf-module-topology;\r
82                            uses vf-module-level-oper-status;\r
83                         }\r
84                      }\r
85                   }\r
86                }\r
87             }\r
88          }\r
89          container consumed-allotted-resources {\r
90             list consumed-allotted-resource {\r
91                key "allotted-resource-id";\r
92                uses allotted-resource-info;\r
93             }\r
94          }\r
95          container provided-allotted-resources {\r
96             list provided-allotted-resource {\r
97                key "allotted-resource-id";\r
98                uses allotted-resource-info;\r
99             }\r
100          }\r
101       }\r
102    }\r
103    grouping service-status {\r
104       container service-status {\r
105          leaf response-code {\r
106             type string;\r
107          }\r
108          leaf response-message {\r
109             type string;\r
110          }\r
111          leaf final-indicator {\r
112             type string;\r
113          }\r
114          leaf request-status {\r
115             type enumeration {\r
116                enum "synccomplete";\r
117                enum "asynccomplete";\r
118                enum "notifycomplete";\r
119             }\r
120          }\r
121          leaf action {\r
122             description "value would one of possible request-actions; match the list in service-data oper-status";\r
123             type string;\r
124          }\r
125          leaf rpc-name {\r
126             type string;\r
127          }\r
128          leaf rpc-action {\r
129             description "this is the svc-action from the incoming request";\r
130             type enumeration {\r
131                enum "assign";\r
132                enum "activate";\r
133                enum "configure";\r
134                enum "delete";\r
135                enum "unassign";\r
136                enum "deactivate";\r
137             }\r
138          }\r
139          leaf response-timestamp {\r
140             type string;\r
141          }\r
142       }\r
143    }\r
144    grouping service-operation-information {\r
145       uses sdnc-request-header;\r
146       uses request-information;\r
147       uses service-information;\r
148       uses service-request-input;\r
149    }\r
150    grouping service-request-input {\r
151       container service-request-input {\r
152          leaf service-instance-name {\r
153             type string;\r
154          }\r
155          container service-input-parameters {\r
156             uses param;\r
157          }\r
158       }\r
159    }\r
160    grouping service-topology {\r
161       container service-topology {\r
162          uses service-topology-identifier;\r
163          uses onap-model-information;\r
164          uses service-assignments;\r
165          uses service-parameters;\r
166       }\r
167    }\r
168    grouping service-topology-identifier {\r
169       container service-topology-identifier {\r
170          leaf service-instance-id {\r
171             description "repeated";\r
172             type string;\r
173          }\r
174          leaf service-type {\r
175             description "tag labeled subscription-service-type in the service-information input";\r
176             type string;\r
177          }\r
178          leaf service-id {\r
179             description "from MSO input on STO assign";\r
180             type string;\r
181          }\r
182          leaf service-instance-name {\r
183             description "optionally comes from service-request-input container or is assigned by sdn-c";\r
184             type string;\r
185          }\r
186          leaf global-customer-id {\r
187             type string;\r
188          }\r
189       }\r
190    }\r
191    grouping service-assignments {\r
192       container service-assignments {\r
193       }\r
194    }\r
195    grouping service-parameters {\r
196       container service-parameters {\r
197          list service-parameter {\r
198             key "service-parameter-name";\r
199             leaf service-parameter-name {\r
200                type string;\r
201             }\r
202             leaf service-parameter-value {\r
203                type string;\r
204             }\r
205          }\r
206       }\r
207    }\r
208    grouping service-level-oper-status {\r
209       container service-level-oper-status {\r
210          uses oper-status-data;\r
211       }\r
212    }\r
213    grouping network-operation-information {\r
214       uses sdnc-request-header;\r
215       uses request-information;\r
216       uses service-information;\r
217       uses network-information;\r
218       uses network-request-input;\r
219    }\r
220    grouping network-information {\r
221       container network-information {\r
222          leaf network-id {\r
223             type string;\r
224          }\r
225          leaf network-type {\r
226             type string;\r
227          }\r
228          uses onap-model-information;\r
229       }\r
230    }\r
231    grouping network-request-input {\r
232       container network-request-input {\r
233          leaf network-name {\r
234             type string;\r
235          }\r
236          uses region-identifier;\r
237          container network-input-parameters {\r
238             uses param;\r
239          }\r
240       }\r
241    }\r
242    grouping network-topology {\r
243       container network-topology {\r
244          uses network-topology-identifier-structure;\r
245          uses region-identifier;\r
246          uses onap-model-information;\r
247          uses network-assignments;\r
248          uses network-parameters;\r
249       }\r
250    }\r
251    grouping network-topology-identifier-structure {\r
252       container network-topology-identifier-structure {\r
253          leaf network-id {\r
254             type string;\r
255          }\r
256          leaf network-name {\r
257             type string;\r
258          }\r
259          leaf network-role {\r
260             type string;\r
261          }\r
262          leaf network-type {\r
263             type string;\r
264          }\r
265          leaf network-technology {\r
266             description "should we keep this?";\r
267             type string;\r
268          }\r
269          leaf eipam-v4-address-plan {\r
270             description "??";\r
271             type string;\r
272          }\r
273          leaf eipam-v6-address-plan {\r
274             type string;\r
275          }\r
276       }\r
277    }\r
278    grouping network-assignments {\r
279       container network-assignments {\r
280       }\r
281    }\r
282    grouping network-parameters {\r
283       container network-parameters {\r
284          list network-parameter {\r
285             key "network-parameter-name";\r
286             leaf network-parameter-name {\r
287                type string;\r
288             }\r
289             leaf network-parameter-value {\r
290                type string;\r
291             }\r
292          }\r
293       }\r
294    }\r
295    grouping network-level-oper-status {\r
296       container network-level-oper-status {\r
297          uses oper-status-data;\r
298       }\r
299    }\r
300    grouping vnf-operation-information {\r
301       uses sdnc-request-header;\r
302       uses request-information;\r
303       uses service-information;\r
304       uses vnf-information;\r
305       uses vnf-request-input;\r
306    }\r
307    grouping vnf-information {\r
308       container vnf-information {\r
309          leaf vnf-id {\r
310             type string;\r
311          }\r
312          leaf vnf-type {\r
313             description "vnf-model-id in Pats model?in Pats vnf submodule, contained within vnf-instance-topology-identifier grouping (along with vnf-name and vnf-instance-id)";\r
314             type string;\r
315          }\r
316          uses onap-model-information;\r
317       }\r
318    }\r
319    grouping vnf-request-input {\r
320       container vnf-request-input {\r
321          leaf request-version {\r
322             description "keep this? e.g. 1702";\r
323             type string;\r
324          }\r
325          leaf vnf-name {\r
326             description "in Pats vnf submodule, contained within vnf-instance-topology-identifier (along with vnf-model-id and vnf-instance-id)";\r
327             type string;\r
328          }\r
329          uses region-identifier;\r
330          container vnf-networks {\r
331             list vnf-network {\r
332                key "network-role";\r
333                uses vnf-network-data;\r
334             }\r
335          }\r
336          container vnf-input-parameters {\r
337             uses param;\r
338          }\r
339       }\r
340    }\r
341    grouping vnf-topology {\r
342       container vnf-topology {\r
343          uses vnf-topology-identifier-structure;\r
344          uses region-identifier;\r
345          uses onap-model-information;\r
346          uses vnf-resource-assignments;\r
347          container vnf-parameters-data {\r
348             uses param;\r
349          }\r
350       }\r
351    }\r
352    grouping vnf-topology-identifier-structure {\r
353       container vnf-topology-identifier-structure {\r
354          leaf vnf-id {\r
355             type string;\r
356          }\r
357          leaf vnf-type {\r
358             description "In preload tree, this label is used for the vf-module-type";\r
359             type string;\r
360          }\r
361          leaf nf-type {\r
362             type string;\r
363          }\r
364          leaf nf-role {\r
365             type string;\r
366          }\r
367          leaf nf-function {\r
368             type string;\r
369          }\r
370          leaf nf-code {\r
371             description "used in vnf naming";\r
372             type string;\r
373          }\r
374          leaf vnf-name {\r
375             description "optionally comes from vnf-request-input container or is assigned by sdn-c";\r
376             type string;\r
377          }\r
378       }\r
379    }\r
380    grouping vnf-resource-assignments {\r
381       container vnf-resource-assignments {\r
382          leaf vnf-status {\r
383             description "Do we need this?Orchestration status from AAI - to be set by SDNCWill not be used for vIPR.";\r
384             type string;\r
385          }\r
386          container availability-zones {\r
387             leaf-list availability-zone {\r
388                description "Openstack availability zone name or UUID";\r
389                type string;\r
390                ordered-by user;\r
391             }\r
392             leaf max-count {\r
393                description "From the TOSCA data. Indicates the largest availability zone count needed by any vf-module in the VNF.";\r
394                type uint8;\r
395             }\r
396          }\r
397          container vnf-networks {\r
398             list vnf-network {\r
399                key "network-role";\r
400                uses vnf-network-data;\r
401             }\r
402          }\r
403       }\r
404    }\r
405    grouping vnf-network-data {\r
406       leaf network-role {\r
407          description "A Network Role to which a VNF must connect";\r
408          type string;\r
409       }\r
410       leaf network-name {\r
411          description "Unique Neutron UUID of an instance of the network role ";\r
412          type string;\r
413       }\r
414       leaf neutron-id {\r
415          description "Unique Neutron UUID of an instance of the network role ";\r
416          type string;\r
417       }\r
418       leaf network-id {\r
419          description "Unique Neutron UUID of an instance of the network role ";\r
420          type string;\r
421       }\r
422       leaf contrail-network-fqdn {\r
423          description "contrail network policy object";\r
424          type string;\r
425       }\r
426       container subnets-data {\r
427          list subnet-data {\r
428             key "ip-version";\r
429             leaf ip-version {\r
430                description "Should be ipv4 or ipv6";\r
431                type string;\r
432             }\r
433             leaf subnet-id {\r
434                description "subnet UUID to be passed into the HEAT template";\r
435                type string;\r
436             }\r
437          }\r
438       }\r
439    }\r
440    grouping vnf-level-oper-status {\r
441       container vnf-level-oper-status {\r
442          uses oper-status-data;\r
443       }\r
444    }\r
445    grouping vf-module-operation-information {\r
446       uses sdnc-request-header;\r
447       uses request-information;\r
448       uses service-information;\r
449       uses vnf-information;\r
450       uses vf-module-information;\r
451       uses vf-module-request-input;\r
452    }\r
453    grouping vf-module-information {\r
454       container vf-module-information {\r
455          leaf vf-module-id {\r
456             type string;\r
457          }\r
458          leaf vf-module-type {\r
459             type string;\r
460          }\r
461          uses onap-model-information;\r
462       }\r
463    }\r
464    grouping vf-module-request-input {\r
465       container vf-module-request-input {\r
466          leaf request-version {\r
467             description "keep this?";\r
468             type string;\r
469          }\r
470          leaf vf-module-name {\r
471             type string;\r
472          }\r
473          uses region-identifier;\r
474          container vf-module-input-parameters {\r
475             uses param;\r
476          }\r
477       }\r
478    }\r
479    grouping vf-module-topology {\r
480       container vf-module-topology {\r
481          uses vf-module-topology-identifier;\r
482          uses region-identifier;\r
483          uses onap-model-information;\r
484          uses vf-module-assignments;\r
485          container vf-module-parameters {\r
486             uses param;\r
487          }\r
488       }\r
489    }\r
490    grouping vf-module-topology-identifier {\r
491       container vf-module-topology-identifier {\r
492          leaf vf-module-id {\r
493             description "vf-module id";\r
494             type string;\r
495          }\r
496          leaf vf-module-name {\r
497             description "vf-module-name";\r
498             type string;\r
499          }\r
500          leaf vf-module-type {\r
501             description "In Pats model referred to as model-id";\r
502             type string;\r
503          }\r
504       }\r
505    }\r
506    grouping vf-module-assignments {\r
507       container vf-module-assignments {\r
508          leaf vf-module-status {\r
509             description "Do we need this?Orchestration status from AAI - to be set by SDNCNot being used for vIPR.";\r
510             type string;\r
511          }\r
512          container vms {\r
513             list vm {\r
514                key "vm-type";\r
515                uses vm-topology-data;\r
516             }\r
517          }\r
518       }\r
519    }\r
520    grouping vm-topology-data {\r
521       leaf vm-type {\r
522          type string;\r
523          mandatory true;\r
524       }\r
525       leaf nfc-naming-code {\r
526          description "used in vm naming(draft 29: changed from nfc-code)";\r
527          type string;\r
528       }\r
529       leaf vm-type-tag {\r
530          description "from tosca data on vfc";\r
531          type string;\r
532       }\r
533       leaf vm-count {\r
534          type uint8;\r
535       }\r
536       container vm-names {\r
537          leaf-list vm-name {\r
538             description "ordered-by: user";\r
539             type string;\r
540             ordered-by user;\r
541          }\r
542       }\r
543       container vm-networks {\r
544          list vm-network {\r
545             key "network-role";\r
546             uses vm-network-data;\r
547          }\r
548       }\r
549    }\r
550    grouping vm-network-data {\r
551       leaf network-role {\r
552          description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
553          type string;\r
554          mandatory true;\r
555       }\r
556       leaf network-role-tag {\r
557          type string;\r
558       }\r
559       container network-information-items {\r
560          list network-information-item {\r
561             key "ip-version";\r
562             leaf ip-version {\r
563                description "Use ipv4 or ipv6";\r
564                type string;\r
565             }\r
566             leaf use-dhcp {\r
567                description "Indicator to use DHCP on this network for this VM";\r
568                type enumeration {\r
569                   enum "Y";\r
570                   enum "N";\r
571                }\r
572             }\r
573             leaf ip-count {\r
574                description "The number of ip addresses to be assigned per vm for this network role";\r
575                type uint8;\r
576             }\r
577             container network-ips {\r
578                leaf-list network-ip {\r
579                   description "List of assigned ip addresses of type ip-version on a network. Is there a way to specify  format to indicate ipv4 or ipv6 format?";\r
580                   type string;\r
581                   ordered-by user;\r
582                }\r
583             }\r
584          }\r
585       }\r
586       container mac-addresses {\r
587          leaf-list mac-address {\r
588             description "List of network assignments for this vm-type";\r
589             type string;\r
590             ordered-by user;\r
591          }\r
592       }\r
593       container floating-ips {\r
594          leaf-list floating-ip-v4 {\r
595             description "Floating ipv4 for VMs of a given type on this network";\r
596             type inet:ip-address;\r
597             ordered-by user;\r
598          }\r
599          leaf-list floating-ip-v6 {\r
600             description "Floating ipv6 for VMs of a given type on this network";\r
601             type inet:ipv6-address;\r
602             ordered-by user;\r
603          }\r
604       }\r
605       container interface-route-prefixes {\r
606          leaf-list interface-route-prefix {\r
607             description "ordered-by: user";\r
608             type string;\r
609             ordered-by user;\r
610          }\r
611       }\r
612       container sriov-parameters {\r
613          container heat-vlan-filters {\r
614             leaf-list heat-vlan-filter {\r
615                type string;\r
616                ordered-by user;\r
617             }\r
618          }\r
619          container application-tags {\r
620             container c-tags {\r
621                leaf-list c-tag {\r
622                   type string;\r
623                   ordered-by user;\r
624                }\r
625             }\r
626             container s-tags {\r
627                leaf-list s-tag {\r
628                   type string;\r
629                   ordered-by user;\r
630                }\r
631             }\r
632          }\r
633       }\r
634    }\r
635    grouping vf-module-level-oper-status {\r
636       container vf-module-level-oper-status {\r
637          uses oper-status-data;\r
638       }\r
639    }\r
640    grouping allotted-resource-info {\r
641       leaf allotted-resource-id {\r
642          type string;\r
643       }\r
644       leaf allotted-resource-type {\r
645          description "Not an enum, but expected values are contrail-route and security-zone.";\r
646          type string;\r
647       }\r
648       leaf allotted-resource-pointer {\r
649          description "Pointer to the allotted-resources topology";\r
650          type string;\r
651       }\r
652    }\r
653    grouping contrail-route-operation-information {\r
654       uses sdnc-request-header;\r
655       uses request-information;\r
656       uses service-information;\r
657       uses allotted-resource-information;\r
658       uses contrail-route-request-input;\r
659    }\r
660    grouping contrail-route-request-input {\r
661       container contrail-route-request-input {\r
662          container source-network {\r
663             uses network-info;\r
664          }\r
665          container dest-network {\r
666             uses network-info;\r
667          }\r
668          container contrail-applied-service-info {\r
669             leaf service-instance-id {\r
670                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
671                type string;\r
672             }\r
673             leaf contrail-fqdn {\r
674                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
675                type string;\r
676             }\r
677          }\r
678          container contrail-route-input-parameters {\r
679             uses param;\r
680          }\r
681       }\r
682    }\r
683    grouping network-info {\r
684       leaf network-id {\r
685          type string;\r
686       }\r
687       leaf network-role {\r
688          type string;\r
689       }\r
690    }\r
691    grouping contrail-route-topology {\r
692       container contrail-route-topology {\r
693          uses allotted-resource-identifiers;\r
694          uses onap-model-information;\r
695          uses contrail-route-assignments;\r
696          container contrail-route-parameters {\r
697             uses param;\r
698          }\r
699       }\r
700    }\r
701    grouping contrail-route-assignments {\r
702       container contrail-route-assignments {\r
703          leaf fq-name {\r
704             description "The Contrail fq-name of the network policy";\r
705             type string;\r
706          }\r
707          leaf contrail-id {\r
708             description "The ID assigned by Contrail to the network-policy (one for one with the fq-name)";\r
709             type string;\r
710          }\r
711          container source-network {\r
712             uses network-info;\r
713          }\r
714          container dest-network {\r
715             uses network-info;\r
716          }\r
717          container contrail-applied-service {\r
718             leaf service-instance-id {\r
719                description "The service-instance-id of the vnf from which the contrail applied service is coming";\r
720                type string;\r
721             }\r
722             leaf vnf-id {\r
723                description "The vnf representing the contrail applied service";\r
724                type string;\r
725             }\r
726             leaf contrail-fqdn {\r
727                description "This is the fq-name of the Contrail service instance through which the route is passing.";\r
728                type string;\r
729             }\r
730          }\r
731          leaf vlan-tag {\r
732             description "Contrail-assigned vlan-tag to the vipr vm interface for this route.";\r
733             type string;\r
734          }\r
735       }\r
736    }\r
737    grouping security-zone-operation-information {\r
738       uses sdnc-request-header;\r
739       uses request-information;\r
740       uses service-information;\r
741       uses allotted-resource-information;\r
742       uses security-zone-request-input;\r
743    }\r
744    grouping security-zone-request-input {\r
745       container security-zone-request-input {\r
746          leaf vlan-tag {\r
747             type string;\r
748          }\r
749          leaf trusted-network-role {\r
750             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
751             type string;\r
752          }\r
753          leaf untrusted-network-role {\r
754             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
755             type string;\r
756          }\r
757          container security-zone-input-parameters {\r
758             uses param;\r
759          }\r
760       }\r
761    }\r
762    grouping security-zone-topology {\r
763       container security-zone-topology {\r
764          uses allotted-resource-identifiers;\r
765          uses onap-model-information;\r
766          uses security-zone-assignments;\r
767          container security-zone-parameters {\r
768             uses param;\r
769          }\r
770       }\r
771    }\r
772    grouping security-zone-assignments {\r
773       container security-zone-assignments {\r
774          leaf trusted-network-role {\r
775             description "In the case of vIPR, this is the landing networks network-role; used in naming";\r
776             type string;\r
777          }\r
778          leaf security-zone-name-trusted {\r
779             type string;\r
780          }\r
781          leaf untrusted-network-role {\r
782             description "In the case of vIPR, this is the tenant oam networks network-role; used in naming";\r
783             type string;\r
784          }\r
785          leaf security-zone-name-untrusted {\r
786             type string;\r
787          }\r
788          leaf security-zone-service-instance-id {\r
789             description "Will be the same as the parent-service-instance-id";\r
790             type string;\r
791          }\r
792          leaf security-zone-vnf-id {\r
793             description "Selected by SDNC from the security-zone-service-instance-id";\r
794             type string;\r
795          }\r
796          leaf vlan-tag {\r
797             type string;\r
798          }\r
799       }\r
800    }\r
801    grouping tunnelxconn-operation-information {\r
802        uses sdnc-request-header;\r
803        uses request-information;\r
804        uses service-information;\r
805        uses allotted-resource-information;\r
806        uses tunnelxconn-request-input;\r
807    }\r
808    grouping tunnelxconn-request-input {\r
809 \r
810        container tunnelxconn-request-input {\r
811            leaf brg-wan-mac-address {\r
812                type string;\r
813            }\r
814        }\r
815    }\r
816    grouping tunnelxconn-topology {\r
817        container tunnelxconn-topology {\r
818            uses allotted-resource-identifiers;\r
819            uses onap-model-information;\r
820            uses tunnelxconn-assignments;\r
821            container tunnelxconn-parameters {\r
822                uses param;\r
823            }\r
824        }\r
825    }\r
826    grouping tunnelxconn-assignments {\r
827            container tunnelxconn-assignments {\r
828                leaf vni {\r
829                    description "The Network Controller will assign a VNI value from the associated vGMUX VNI pool";\r
830                    type string;\r
831                }\r
832                leaf vgmux-bearer-ip {\r
833                    description "The Network Controller will look up the vgmux bearer ip from the vgmux vf module";\r
834                    type inet:ip-address;\r
835                }\r
836                leaf vgmux-lan-ip {\r
837                    description "The Network Controller will look up the vgmux lan ip from the vgmux vg module";\r
838                    type inet:ip-address;\r
839                }\r
840                leaf vg-ip {\r
841                    description "The Network Controller will assign the VG IP address from local inventory";\r
842                    type inet:ip-address;\r
843                }\r
844            }\r
845    }\r
846    grouping brg-operation-information {\r
847        uses sdnc-request-header;\r
848        uses request-information;\r
849        uses service-information;\r
850        uses allotted-resource-information;\r
851        uses brg-request-input;\r
852    }\r
853    grouping brg-request-input {\r
854        container brg-request-input {\r
855            leaf vgmux-bearer-ip {\r
856                type inet:ip-address;\r
857            }\r
858            leaf vni {\r
859                type string;\r
860            }\r
861            leaf brg-wan-mac-address {\r
862                type string;\r
863            }\r
864        }\r
865    }\r
866    grouping brg-topology {\r
867        container brg-topology {\r
868            uses allotted-resource-identifiers;\r
869            uses onap-model-information;\r
870            uses brg-assignments;\r
871            container brg-parameters {\r
872                uses param;\r
873            }\r
874        }\r
875    }\r
876    grouping brg-assignments {\r
877            container brg-assignments {\r
878                leaf vbrg-wan-ip {\r
879                    type inet:ip-address;\r
880                }\r
881            }\r
882    }\r
883 \r
884    grouping connection-attachment-operation-information {\r
885       uses sdnc-request-header;\r
886       uses request-information;\r
887       uses service-information;\r
888       uses allotted-resource-information;\r
889       uses connection-attachment-request-input;\r
890    }\r
891 \r
892    grouping connection-attachment-request-input {\r
893       container connection-attachment-request-input {\r
894          uses param;\r
895       }\r
896    }\r
897 \r
898    grouping connection-attachment-topology {\r
899       container brg-topology {\r
900          uses allotted-resource-identifiers;\r
901          uses onap-model-information;\r
902          uses connection-attachment-assignments;\r
903          container connection-attachment-parameters {\r
904             uses param;\r
905          }\r
906       }\r
907    }\r
908 \r
909    grouping connection-attachment-assignments {\r
910       container connection-attachment-assignments {\r
911       }\r
912    }\r
913 \r
914    grouping allotted-resource-information {\r
915       container allotted-resource-information {\r
916          leaf allotted-resource-id {\r
917             type string;\r
918          }\r
919          leaf allotted-resource-type {\r
920             description "Not an enum, but expected values are contrail-route and security-zone.";\r
921             type string;\r
922          }\r
923          leaf parent-service-instance-id {\r
924             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
925             type string;\r
926          }\r
927          uses onap-model-information;\r
928       }\r
929    }\r
930    grouping allotted-resource-identifiers {\r
931       container allotted-resource-identifiers {\r
932          leaf allotted-resource-id {\r
933             type string;\r
934          }\r
935          leaf allotted-resource-name {\r
936             description "For a contrail-route, the network policy name.";\r
937             type string;\r
938          }\r
939          leaf allotted-resource-type {\r
940             description "(Added in draft 32)Expected to be contrail-route or security-zone.";\r
941             type string;\r
942          }\r
943          leaf consuming-service-instance-id {\r
944             description "The service-instance-id of the consuming service of this allotted resource";\r
945             type string;\r
946          }\r
947          leaf parent-service-instance-id {\r
948             description "Service-instance-id of the parent service to which this allotted resource belongs.";\r
949             type string;\r
950          }\r
951       }\r
952    }\r
953    grouping allotted-resource-oper-status {\r
954       container allotted-resource-oper-status {\r
955          uses oper-status-data;\r
956       }\r
957    }\r
958    grouping allotted-resource-status {\r
959       container allotted-resource-status {\r
960          leaf response-code {\r
961             type string;\r
962          }\r
963          leaf response-message {\r
964             type string;\r
965          }\r
966          leaf final-indicator {\r
967             type string;\r
968          }\r
969          leaf request-status {\r
970             type enumeration {\r
971                enum "synccomplete";\r
972                enum "asynccomplete";\r
973                enum "notifycomplete";\r
974             }\r
975          }\r
976          leaf action {\r
977             description "value would one of possible request-actions; match the list in service-data oper-status";\r
978             type string;\r
979          }\r
980          leaf rpc-name {\r
981             type string;\r
982          }\r
983          leaf rpc-action {\r
984             description "this is the svc-action from the incoming request";\r
985             type enumeration {\r
986                enum "assign";\r
987                enum "activate";\r
988                enum "create";\r
989                enum "delete";\r
990                enum "unassign";\r
991                enum "deactivate";\r
992             }\r
993          }\r
994          leaf response-timestamp {\r
995             type string;\r
996          }\r
997       }\r
998    }\r
999    grouping topology-response-common {\r
1000       leaf svc-request-id {\r
1001          description "the request id from the request message for which this is the responseKeep as M";\r
1002          type string;\r
1003       }\r
1004       leaf response-code {\r
1005          description "a success code or an defined error codeKeep as M";\r
1006          type string;\r
1007       }\r
1008       leaf response-message {\r
1009          description "message included for error code";\r
1010          type string;\r
1011       }\r
1012       leaf ack-final-indicator {\r
1013          description "Expected to be Y or N.";\r
1014          type string;\r
1015       }\r
1016    }\r
1017    grouping sdnc-request-header {\r
1018       container sdnc-request-header {\r
1019          leaf svc-request-id {\r
1020             description "Uniquely generated by calling system (e.g. MSO or SDN-GP)";\r
1021             type string;\r
1022          }\r
1023          leaf svc-action {\r
1024             description "Enumerated listThis is the rpcAction";\r
1025             type enumeration {\r
1026                enum "reserve";\r
1027                enum "assign";\r
1028                enum "activate";\r
1029                enum "delete";\r
1030                enum "changeassign";\r
1031                enum "changedelete";\r
1032                enum "rollback";\r
1033                enum "deactivate";\r
1034                enum "unassign";\r
1035                enum "create";\r
1036             }\r
1037          }\r
1038          leaf svc-notification-url {\r
1039             description "Contains URL for asynchronous response";\r
1040             type string;\r
1041          }\r
1042       }\r
1043    }\r
1044    grouping request-information {\r
1045       container request-information {\r
1046          leaf request-id {\r
1047             description "Request ID generated upstream of MSO";\r
1048             type string;\r
1049          }\r
1050          leaf request-action {\r
1051             description "still need to work Disconnect";\r
1052             type enumeration {\r
1053                enum "CreateNetworkInstance";\r
1054                enum "ActivateNetworkInstance";\r
1055                enum "CreateServiceInstance";\r
1056                enum "DeleteServiceInstance";\r
1057                enum "DeleteNetworkInstance";\r
1058                enum "CreateVnfInstance";\r
1059                enum "ActivateVnfInstance";\r
1060                enum "DeleteVnfInstance";\r
1061                enum "CreateVfModuleInstance";\r
1062                enum "ActivateVfModuleInstance";\r
1063                enum "DeleteVfModuleInstance";\r
1064                enum "CreateContrailRouteInstance";\r
1065                enum "DeleteContrailRouteInstance";\r
1066                enum "CreateSecurityZoneInstance";\r
1067                enum "DeleteSecurityZoneInstance";\r
1068                enum "ActivateDCINetworkInstance";\r
1069                enum "DeActivateDCINetworkInstance";\r
1070                enum "CreateTunnelXConnInstance";\r
1071                enum "DeleteTunnelXConnInstance";\r
1072                enum "CreateBRGInstance";\r
1073                enum "DeleteBRGInstance";\r
1074                enum "CreateSOTNConnectivityInstance";\r
1075                enum "ActivateSOTNConnectivityInstance";\r
1076                enum "DeactivateSOTNConnectivityInstance";\r
1077                enum "DeleteSOTNConnectivityInstance";\r
1078                enum "CreateSOTNAttachmentInstance";\r
1079                enum "ActivateSOTNAttachmentInstance";\r
1080                enum "DeactivateSOTNAttachmentInstance";\r
1081                enum "DeleteSOTNAttachmentInstance";\r
1082                enum "CreateSiteInstance";\r
1083                enum "ActivateSiteInstance";\r
1084                enum "DeactivateSiteInstance";\r
1085                enum "DeleteSiteInstance";\r
1086             }\r
1087          }\r
1088          leaf source {\r
1089             type string;\r
1090          }\r
1091          leaf notification-url {\r
1092             type string;\r
1093          }\r
1094          leaf order-number {\r
1095             type string;\r
1096          }\r
1097          leaf order-version {\r
1098             type string;\r
1099          }\r
1100       }\r
1101    }\r
1102    grouping service-information {\r
1103       container service-information {\r
1104          leaf service-id {\r
1105             description "This maps to the product-family-id in A&AI";\r
1106             type string;\r
1107          }\r
1108          leaf subscription-service-type {\r
1109             description "used to reference a&ai subscription-service-type. For example, we show as vIPR-ATM in example.";\r
1110             type string;\r
1111          }\r
1112          uses onap-model-information;\r
1113          leaf service-instance-id {\r
1114             type string;\r
1115          }\r
1116          leaf global-customer-id {\r
1117             description "need for put of data to AnAI (MSO provides)";\r
1118             type string;\r
1119          }\r
1120          leaf subscriber-name {\r
1121             description "Would not be expected for vIPR-ATM or mobility services.";\r
1122             type string;\r
1123          }\r
1124       }\r
1125    }\r
1126    grouping onap-model-information {\r
1127       container onap-model-information {\r
1128          leaf model-invariant-uuid {\r
1129             description "identifies the invariant uuid for this service or resource";\r
1130             type string;\r
1131          }\r
1132          leaf model-customization-uuid {\r
1133             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
1134             type string;\r
1135          }\r
1136          leaf model-uuid {\r
1137             description "identifies the uuid for this service or resource, which is version specific";\r
1138             type string;\r
1139          }\r
1140          leaf model-version {\r
1141             type string;\r
1142          }\r
1143          leaf model-name {\r
1144             type string;\r
1145          }\r
1146       }\r
1147    }\r
1148    grouping region-identifier {\r
1149       leaf tenant {\r
1150          type string;\r
1151       }\r
1152       leaf aic-cloud-region {\r
1153          description "The AIC cloud region which maps to contrail versions";\r
1154          type string;\r
1155       }\r
1156       leaf aic-clli {\r
1157          description "Not expected to be used";\r
1158          type string;\r
1159       }\r
1160    }\r
1161    grouping param {\r
1162       list param {\r
1163          key "name";\r
1164          leaf name {\r
1165             type string;\r
1166          }\r
1167          leaf value {\r
1168             type string;\r
1169          }\r
1170       }\r
1171    }\r
1172    grouping instance-reference {\r
1173       leaf instance-id {\r
1174          type string;\r
1175       }\r
1176       leaf object-path {\r
1177          description "restconf retrieval path to this particular objectE.g. restconf/config/GENERIC-RESOURCE-API:services/service/$service-instance-id/service-data/service-topology/";\r
1178          type string;\r
1179       }\r
1180    }\r
1181    grouping oper-status-data {\r
1182       leaf order-status {\r
1183          description "TBD - do we need Request failed statuses? RequestFailed | InProgressTimeout";\r
1184          type enumeration {\r
1185             enum "Active";\r
1186             enum "PendingAssignment";\r
1187             enum "PendingCreate";\r
1188             enum "PendingUpdate";\r
1189             enum "PendingDelete";\r
1190             enum "Deleted";\r
1191             enum "Created";\r
1192          }\r
1193       }\r
1194       leaf last-rpc-action {\r
1195          type enumeration {\r
1196             enum "assign";\r
1197             enum "activate";\r
1198             enum "delete";\r
1199             enum "unassign";\r
1200             enum "deactivate";\r
1201             enum "create";\r
1202          }\r
1203       }\r
1204       leaf last-action {\r
1205          description "should be list of possible request-actions";\r
1206          type enumeration {\r
1207             enum "CreateNetworkInstance";\r
1208             enum "ActivateNetworkInstance";\r
1209             enum "CreateServiceInstance";\r
1210             enum "DeleteServiceInstance";\r
1211             enum "DeleteNetworkInstance";\r
1212             enum "CreateVnfInstance";\r
1213             enum "ActivateVnfInstance";\r
1214             enum "DeleteVnfInstance";\r
1215             enum "CreateVfModuleInstance";\r
1216             enum "ActivateVfModuleInstance";\r
1217             enum "DeleteVfModuleInstance";\r
1218             enum "CreateContrailRouteInstance";\r
1219             enum "DeleteContrailRouteInstance";\r
1220             enum "CreateSecurityZoneInstance";\r
1221             enum "DeleteSecurityZoneInstance";\r
1222             enum "ActivateDCINetworkInstance";\r
1223             enum "DeActivateDCINetworkInstance";\r
1224             enum "CreateTunnelXConnInstance";\r
1225             enum "DeleteTunnelXConnInstance";\r
1226             enum "CreateBRGInstance";\r
1227             enum "DeleteBRGInstance";\r
1228             enum "CreateSOTNConnectivityInstance";\r
1229             enum "ActivateSOTNConnectivityInstance";\r
1230             enum "DeactivateSOTNConnectivityInstance";\r
1231             enum "DeleteSOTNConnectivityInstance";\r
1232             enum "CreateSOTNAttachmentInstance";\r
1233             enum "ActivateSOTNAttachmentInstance";\r
1234             enum "DeactivateSOTNAttachmentInstance";\r
1235             enum "DeleteSOTNAttachmentInstance";\r
1236             enum "CreateSiteInstance";\r
1237             enum "ActivateSiteInstance";\r
1238             enum "DeactivateSiteInstance";\r
1239             enum "DeleteSiteInstance";\r
1240          }\r
1241       }\r
1242       leaf last-svc-request-id {\r
1243          description "Not currently populated in service data.";\r
1244          type string;\r
1245       }\r
1246       leaf last-order-status {\r
1247          description "fieldused by generic-resource-api";\r
1248          type enumeration {\r
1249             enum "Active";\r
1250             enum "PendingAssignment";\r
1251             enum "PendingCreate";\r
1252             enum "PendingUpdate";\r
1253             enum "PendingDelete";\r
1254             enum "Deleted";\r
1255             enum "Created";\r
1256          }\r
1257       }\r
1258       leaf create-timestamp {\r
1259          description "Not currently populated in service data.";\r
1260          type string;\r
1261       }\r
1262       leaf modify-timestamp {\r
1263          type string;\r
1264       }\r
1265    }\r
1266    grouping service-response-information {\r
1267       container service-response-information {\r
1268          uses instance-reference;\r
1269       }\r
1270    }\r
1271    grouping network-response-information {\r
1272       container network-response-information {\r
1273          uses instance-reference;\r
1274       }\r
1275    }\r
1276    grouping vnf-response-information {\r
1277       container vnf-response-information {\r
1278          uses instance-reference;\r
1279       }\r
1280    }\r
1281    grouping vf-module-response-information {\r
1282       container vf-module-response-information {\r
1283          uses instance-reference;\r
1284       }\r
1285    }\r
1286    grouping contrail-route-response-information {\r
1287       container contrail-route-response-information {\r
1288          uses instance-reference;\r
1289       }\r
1290    }\r
1291    grouping security-zone-response-information {\r
1292       container security-zone-response-information {\r
1293          uses instance-reference;\r
1294       }\r
1295    }\r
1296    grouping tunnelxconn-response-information {\r
1297        container tunnelxconn-response-information {\r
1298            uses instance-reference;\r
1299        }\r
1300    }\r
1301    grouping brg-response-information {\r
1302        container brg-response-information {\r
1303            uses instance-reference;\r
1304        }\r
1305    }\r
1306    grouping connection-attachment-response-information {\r
1307       container connection-attachment-response-information {\r
1308          uses instance-reference;\r
1309       }\r
1310    }\r
1311    grouping preload-model-information {\r
1312       list vnf-preload-list {\r
1313          key "vnf-name vnf-type";\r
1314          leaf vnf-name {\r
1315             description "vf-module-name or network name";\r
1316             type string;\r
1317             mandatory true;\r
1318          }\r
1319          leaf vnf-type {\r
1320             description "vf-module-type or network type";\r
1321             type string;\r
1322             mandatory true;\r
1323          }\r
1324          uses preload-data;\r
1325       }\r
1326    }\r
1327    grouping vnf-topology-response-body {\r
1328       leaf svc-request-id {\r
1329          type string;\r
1330       }\r
1331       leaf response-code {\r
1332          type string;\r
1333       }\r
1334       leaf response-message {\r
1335          type string;\r
1336       }\r
1337       leaf ack-final-indicator {\r
1338          type string;\r
1339       }\r
1340    }\r
1341    grouping preload-data {\r
1342       container preload-data {\r
1343          uses vnf-topology-information;\r
1344          uses network-topology-information;\r
1345          uses oper-status;\r
1346       }\r
1347    }\r
1348    grouping vnf-topology-information {\r
1349       container vnf-topology-information {\r
1350          uses vnf-topology-identifier;\r
1351          uses vnf-assignments;\r
1352          uses vnf-parameters;\r
1353       }\r
1354    }\r
1355    grouping vnf-topology-identifier {\r
1356       container vnf-topology-identifier {\r
1357          leaf service-type {\r
1358             type string;\r
1359          }\r
1360          leaf service-id {\r
1361             type string;\r
1362          }\r
1363          leaf vnf-name {\r
1364             description "vf-module-name";\r
1365             type string;\r
1366          }\r
1367          leaf vnf-type {\r
1368             description "vf-module-type";\r
1369             type string;\r
1370          }\r
1371          leaf generic-vnf-name {\r
1372             type string;\r
1373          }\r
1374          leaf generic-vnf-type {\r
1375             type string;\r
1376          }\r
1377          leaf generic-vnf-id {\r
1378             type string;\r
1379          }\r
1380       }\r
1381    }\r
1382    grouping vnf-assignments {\r
1383       container vnf-assignments {\r
1384          leaf vnf-status {\r
1385             description "Orchestration Status from AAI - to be set by SDNC";\r
1386             type string;\r
1387          }\r
1388          list availability-zones {\r
1389             key "availability-zone";\r
1390             leaf availability-zone {\r
1391                description "Openstack availability zone name or UUID";\r
1392                type string;\r
1393             }\r
1394          }\r
1395          list vnf-networks {\r
1396             key "network-role";\r
1397             uses vnf-network;\r
1398             uses sriov-vlan-filter-list;\r
1399          }\r
1400          uses vm-topology;\r
1401       }\r
1402    }\r
1403    grouping vm-topology {\r
1404       list vnf-vms {\r
1405          key "vm-type";\r
1406          leaf vm-type {\r
1407             type string;\r
1408             mandatory true;\r
1409          }\r
1410          leaf vm-count {\r
1411             type uint8;\r
1412          }\r
1413          list vm-names {\r
1414             key "vm-name";\r
1415             leaf vm-name {\r
1416                type string;\r
1417             }\r
1418          }\r
1419          list vm-networks {\r
1420             key "network-role";\r
1421             uses vm-network;\r
1422          }\r
1423       }\r
1424    }\r
1425    grouping vnf-network {\r
1426       leaf network-role {\r
1427          description "A Network Role to which a VNF must connect";\r
1428          type string;\r
1429          mandatory true;\r
1430       }\r
1431       leaf network-name {\r
1432          description "Unique Neutron UUID of an instance of the network role ";\r
1433          type string;\r
1434       }\r
1435       leaf neutron-id {\r
1436          description "Unique Neutron UUID of an instance of the network role ";\r
1437          type string;\r
1438       }\r
1439       leaf network-id {\r
1440          description "Unique Neutron UUID of an instance of the network role ";\r
1441          type string;\r
1442       }\r
1443       leaf subnet-id {\r
1444          description "ipv4 subnet UUID to be passed into the HEAT template";\r
1445          type string;\r
1446       }\r
1447       leaf subnet-name {\r
1448          description "ipv4 subnet-name that corresponds to the ipv4 subnet-id";\r
1449          type string;\r
1450       }\r
1451       leaf contrail-network-fqdn {\r
1452          description "contrail network policy object";\r
1453          type string;\r
1454       }\r
1455       leaf ipv6-subnet-id {\r
1456          description "ipv6 subnet UUID to be passed into the HEAT template";\r
1457          type string;\r
1458       }\r
1459       leaf ipv6-subnet-name {\r
1460          description "ipv6 subnet-name that corresponds to the ipv6 subnet-id";\r
1461          type string;\r
1462       }\r
1463    }\r
1464    grouping sriov-vlan-filter-list {\r
1465       list sriov-vlan-filter-list {\r
1466          key "sriov-vlan-filter";\r
1467          leaf sriov-vlan-filter {\r
1468             type string;\r
1469          }\r
1470       }\r
1471    }\r
1472    grouping vm-network {\r
1473       leaf network-role {\r
1474          description "network (identified by role) that this VM connects to.  Should also be included in the vnf-networks for the containing VNF";\r
1475          type string;\r
1476       }\r
1477       leaf use-dhcp {\r
1478          description "Indicator to use DHCP on this network for this VM";\r
1479          type enumeration {\r
1480             enum "Y";\r
1481             enum "N";\r
1482          }\r
1483       }\r
1484       leaf ip-count {\r
1485          description "The number of ip addresses to be assigned per vm for this network role";\r
1486          type uint8;\r
1487       }\r
1488       list network-ips {\r
1489          key "ip-address";\r
1490          leaf ip-address {\r
1491             description "List of assigned ipv4 addresses on a network";\r
1492             type inet:ip-address;\r
1493          }\r
1494       }\r
1495       list network-ips-v6 {\r
1496          key "ip-address-ipv6";\r
1497          leaf ip-address-ipv6 {\r
1498             description "List of assigned ipv6 addresses on a network";\r
1499             type inet:ipv6-address;\r
1500          }\r
1501       }\r
1502       list network-macs {\r
1503          key "mac-address";\r
1504          leaf mac-address {\r
1505             description "List of network assignments for this VM (one per network)";\r
1506             type string;\r
1507          }\r
1508       }\r
1509       leaf floating-ip {\r
1510          description "Floating ipv4 for VMs of a given type on this network";\r
1511          type inet:ip-address;\r
1512       }\r
1513       leaf floating-ip-v6 {\r
1514          description "Floating ipv6 for VMs of a given type on this network";\r
1515          type inet:ipv6-address;\r
1516       }\r
1517       list interface-route-prefixes {\r
1518          key "interface-route-prefix-cidr";\r
1519          leaf interface-route-prefix-cidr {\r
1520             description "route prefixes (CIDRs) in ip/cidr format to be provided to MSO in vnf-topology as a list of static routes";\r
1521             type string;\r
1522             mandatory true;\r
1523          }\r
1524          leaf interface-route-prefix {\r
1525             description "route prefixes (CIDRs) to be provided to MSO in vnf-topology as a list of static routes";\r
1526             type inet:ip-address;\r
1527          }\r
1528       }\r
1529    }\r
1530    grouping vnf-parameters {\r
1531       list vnf-parameters {\r
1532          key "vnf-parameter-name";\r
1533          leaf vnf-parameter-name {\r
1534             description "The name of an arbitrary instance-specific vnf-parameters";\r
1535             type string;\r
1536          }\r
1537          leaf vnf-parameter-value {\r
1538             description "The value of an arbitrary instance-specific vnf-parameters ";\r
1539             type string;\r
1540          }\r
1541       }\r
1542    }\r
1543    grouping network-topology-information {\r
1544       container network-topology-information {\r
1545          uses network-topology-identifier;\r
1546          uses subnets;\r
1547          uses vpn-bindings;\r
1548          uses network-policy;\r
1549          uses route-table-reference;\r
1550          uses provider-network-information;\r
1551       }\r
1552    }\r
1553    grouping network-topology-identifier {\r
1554       container network-topology-identifier {\r
1555          leaf service-type {\r
1556             type string;\r
1557          }\r
1558          leaf network-name {\r
1559             type string;\r
1560          }\r
1561          leaf network-role {\r
1562             type string;\r
1563          }\r
1564          leaf network-type {\r
1565             type string;\r
1566          }\r
1567          leaf network-technology {\r
1568             type string;\r
1569          }\r
1570       }\r
1571    }\r
1572    grouping subnets {\r
1573       list subnets {\r
1574          key "start-address";\r
1575          leaf start-address {\r
1576             type inet:ip-address;\r
1577          }\r
1578          leaf gateway-address {\r
1579             type inet:ip-address;\r
1580          }\r
1581          leaf cidr-mask {\r
1582             type string;\r
1583          }\r
1584          leaf ip-version {\r
1585             type string;\r
1586          }\r
1587          leaf dhcp-enabled {\r
1588             type enumeration {\r
1589                enum "Y";\r
1590                enum "N";\r
1591             }\r
1592          }\r
1593          leaf dhcp-start-address {\r
1594             type string;\r
1595          }\r
1596          leaf dhcp-end-address {\r
1597             type string;\r
1598          }\r
1599          leaf subnet-name {\r
1600             type string;\r
1601          }\r
1602       }\r
1603    }\r
1604    grouping vpn-bindings {\r
1605       list vpn-bindings {\r
1606          key "vpn-binding-id";\r
1607          leaf vpn-binding-id {\r
1608             type string;\r
1609          }\r
1610          leaf global-route-target {\r
1611             type string;\r
1612          }\r
1613       }\r
1614    }\r
1615    grouping network-policy {\r
1616       list network-policy {\r
1617          key "network-policy-fqdn";\r
1618          leaf network-policy-fqdn {\r
1619             type string;\r
1620          }\r
1621          leaf network-policy-id {\r
1622             type string;\r
1623          }\r
1624       }\r
1625    }\r
1626    grouping route-table-reference {\r
1627       list route-table-reference {\r
1628          key "route-table-reference-fqdn";\r
1629          leaf route-table-reference-fqdn {\r
1630             type string;\r
1631             mandatory true;\r
1632          }\r
1633          leaf route-table-reference-id {\r
1634             type string;\r
1635          }\r
1636       }\r
1637    }\r
1638    grouping provider-network-information {\r
1639       leaf physical-network-name {\r
1640          type string;\r
1641       }\r
1642       leaf is-provider-network {\r
1643          type boolean;\r
1644       }\r
1645       leaf is-shared-network {\r
1646          type boolean;\r
1647       }\r
1648       leaf is-external-network {\r
1649          type boolean;\r
1650       }\r
1651    }\r
1652    grouping oper-status {\r
1653       container oper-status {\r
1654          leaf order-status {\r
1655             type enumeration {\r
1656                enum "Active";\r
1657                enum "PendingAssignment";\r
1658                enum "PendingCreate";\r
1659                enum "PendingUpdate";\r
1660                enum "PendingDelete";\r
1661                enum "Deleted";\r
1662             }\r
1663          }\r
1664          leaf last-action {\r
1665             description "this is preload request actions";\r
1666             type enumeration {\r
1667                enum "VNFActivateRequest";\r
1668                enum "ChangeVNFActivateRequest";\r
1669                enum "VnfInstanceActivateRequest";\r
1670                enum "ChangeVnfInstanceActivateRequest";\r
1671                enum "VfModuleActivateRequest";\r
1672                enum "ChangeVfModuleActivateRequest";\r
1673                enum "DisconnectVNFRequest";\r
1674                enum "DisconnectVnfInstanceRequest";\r
1675                enum "DisconnectVfModuleRequest";\r
1676                enum "PreloadVNFRequest";\r
1677                enum "DeletePreloadVNFRequest";\r
1678                enum "PreloadVnfInstanceRequest";\r
1679                enum "DeletePreloadVnfInstanceRequest";\r
1680                enum "PreloadVfModuleRequest";\r
1681                enum "DeletePreloadVfModuleRequest";\r
1682             }\r
1683          }\r
1684          leaf last-svc-request-id {\r
1685             type string;\r
1686          }\r
1687          leaf last-order-status {\r
1688             type enumeration {\r
1689                enum "Active";\r
1690                enum "PendingAssignment";\r
1691                enum "PendingCreate";\r
1692                enum "PendingUpdate";\r
1693                enum "PendingDelete";\r
1694                enum "Deleted";\r
1695             }\r
1696          }\r
1697          leaf create-timestamp {\r
1698             type string;\r
1699          }\r
1700          leaf modify-timestamp {\r
1701             type string;\r
1702          }\r
1703          leaf maintenance-indicator {\r
1704             type enumeration {\r
1705                enum "Y";\r
1706                enum "N";\r
1707             }\r
1708          }\r
1709       }\r
1710    }\r
1711    container services {\r
1712       uses service-model-infrastructure;\r
1713    }\r
1714    container contrail-route-allotted-resources {\r
1715       list contrail-route-allotted-resource {\r
1716          key "allotted-resource-id";\r
1717          leaf allotted-resource-id {\r
1718             type string;\r
1719             mandatory true;\r
1720          }\r
1721          container allotted-resource-data {\r
1722             container allotted-resource-operation-information {\r
1723                uses contrail-route-operation-information;\r
1724             }\r
1725             uses contrail-route-topology;\r
1726             uses allotted-resource-oper-status;\r
1727          }\r
1728          uses allotted-resource-status;\r
1729       }\r
1730    }\r
1731    container security-zone-allotted-resources {\r
1732       list security-zone-allotted-resource {\r
1733          key "allotted-resource-id";\r
1734          leaf allotted-resource-id {\r
1735             type string;\r
1736             mandatory true;\r
1737          }\r
1738          container allotted-resource-data {\r
1739             container allotted-resource-operation-information {\r
1740                uses security-zone-operation-information;\r
1741             }\r
1742             uses security-zone-topology;\r
1743             container security-zone-parameters {\r
1744                uses param;\r
1745             }\r
1746             uses allotted-resource-oper-status;\r
1747          }\r
1748          uses allotted-resource-status;\r
1749       }\r
1750    }\r
1751    container tunnelxconn-allotted-resources {\r
1752        list tunnelxconn-allotted-resource {\r
1753            key "allotted-resource-id";\r
1754            leaf allotted-resource-id {\r
1755                type string;\r
1756                mandatory true;\r
1757            }\r
1758            container allotted-resource-data {\r
1759                container allotted-resource-operation-information {\r
1760                    uses tunnelxconn-operation-information;\r
1761                }\r
1762                uses tunnelxconn-topology;\r
1763                container tunnelxconn-parameters {\r
1764                    uses param;\r
1765                }\r
1766                uses allotted-resource-oper-status;\r
1767            }\r
1768            uses allotted-resource-status;\r
1769        }\r
1770    }\r
1771    container brg-allotted-resources {\r
1772        list brg-allotted-resource {\r
1773            key "allotted-resource-id";\r
1774            leaf allotted-resource-id {\r
1775                type string;\r
1776                mandatory true;\r
1777            }\r
1778            container allotted-resource-data {\r
1779                container allotted-resource-operation-information {\r
1780                    uses brg-operation-information;\r
1781                }\r
1782                uses brg-topology;\r
1783                container brg-parameters {\r
1784                    uses param;\r
1785                }\r
1786                uses allotted-resource-oper-status;\r
1787            }\r
1788            uses allotted-resource-status;\r
1789        }\r
1790    }\r
1791    container connection-attachment-allotted-resources {\r
1792       list connection-attachment-allotted-resource {\r
1793          key "allotted-resource-id";\r
1794          leaf allotted-resource-id {\r
1795             type string;\r
1796             mandatory true;\r
1797          }\r
1798          container allotted-resource-data {\r
1799             container allotted-resource-operation-information {\r
1800                uses connection-attachment-operation-information;\r
1801             }\r
1802             uses connection-attachment-topology;\r
1803             container connection-attachment-parameters {\r
1804                uses param;\r
1805             }\r
1806             uses allotted-resource-oper-status;\r
1807          }\r
1808          uses allotted-resource-status;\r
1809       }\r
1810    }\r
1811    rpc service-topology-operation {\r
1812       input {\r
1813          uses service-operation-information;\r
1814       }\r
1815       output {\r
1816          uses topology-response-common;\r
1817          uses service-response-information;\r
1818       }\r
1819    }\r
1820    rpc network-topology-operation {\r
1821       input {\r
1822          uses network-operation-information;\r
1823       }\r
1824       output {\r
1825          uses topology-response-common;\r
1826          uses network-response-information;\r
1827          uses service-response-information;\r
1828       }\r
1829    }\r
1830    rpc vnf-topology-operation {\r
1831       input {\r
1832          uses vnf-operation-information;\r
1833       }\r
1834       output {\r
1835          uses topology-response-common;\r
1836          uses vnf-response-information;\r
1837          uses service-response-information;\r
1838       }\r
1839    }\r
1840    rpc vf-module-topology-operation {\r
1841       input {\r
1842          uses vf-module-operation-information;\r
1843       }\r
1844       output {\r
1845          uses topology-response-common;\r
1846          uses vf-module-response-information;\r
1847          uses vnf-response-information;\r
1848          uses service-response-information;\r
1849       }\r
1850    }\r
1851    rpc contrail-route-topology-operation {\r
1852       input {\r
1853          uses contrail-route-operation-information;\r
1854       }\r
1855       output {\r
1856          uses topology-response-common;\r
1857          uses contrail-route-response-information;\r
1858          uses service-response-information;\r
1859       }\r
1860    }\r
1861    rpc security-zone-topology-operation {\r
1862       input {\r
1863          uses security-zone-operation-information;\r
1864       }\r
1865       output {\r
1866          uses topology-response-common;\r
1867          uses security-zone-response-information;\r
1868          uses service-response-information;\r
1869       }\r
1870    }\r
1871    rpc tunnelxconn-topology-operation {\r
1872        input {\r
1873            uses tunnelxconn-operation-information;\r
1874        }\r
1875        output {\r
1876            uses topology-response-common;\r
1877            uses tunnelxconn-response-information;\r
1878            uses service-response-information;\r
1879        }\r
1880    }\r
1881    rpc brg-topology-operation {\r
1882        input {\r
1883            uses brg-operation-information;\r
1884        }\r
1885        output {\r
1886            uses topology-response-common;\r
1887            uses brg-response-information;\r
1888            uses service-response-information;\r
1889        }\r
1890    }\r
1891    container preload-vnfs {\r
1892       uses preload-model-information;\r
1893    }\r
1894    rpc preload-vnf-topology-operation {\r
1895       input {\r
1896          uses sdnc-request-header;\r
1897          uses request-information;\r
1898          uses vnf-topology-information;\r
1899       }\r
1900       output {\r
1901          uses vnf-topology-response-body;\r
1902       }\r
1903    }\r
1904    rpc preload-network-topology-operation {\r
1905       input {\r
1906          uses sdnc-request-header;\r
1907          uses request-information;\r
1908          uses network-topology-information;\r
1909       }\r
1910       output {\r
1911          uses vnf-topology-response-body;\r
1912       }\r
1913    }\r
1914 \r
1915    rpc connection-attachment-topology-operation {\r
1916        input {\r
1917            uses connection-attachment-operation-information;\r
1918        }\r
1919        output {\r
1920            uses topology-response-common;\r
1921            uses connection-attachment-response-information;\r
1922            uses service-response-information;\r
1923        }\r
1924    }\r
1925 \r
1926 } ////closes the module\r