blob: 6b627b20f1b5d662f7d3e1027f77597ed4d2d46c [file] [log] [blame]
Rajesh Velandye27e0b22017-09-18 17:21:48 -04001
2/*
3 *
4 * Copyright 2017 RIFT.IO Inc
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *
18 *
19 */
20
21module vnfd-base
22{
garciadeblasc038a8d2019-04-03 13:35:27 +020023 namespace "urn:etsi:osm:yang:vnfd-base";
Rajesh Velandye27e0b22017-09-18 17:21:48 -040024 prefix "vnfd-base";
25
26 import mano-types {
27 prefix "manotypes";
28 }
29
30 import ietf-inet-types {
31 prefix "inet";
32 }
33
34 revision 2017-02-28 {
35 description
36 "Initial revision. This YANG file defines
37 the common types for Virtual Network Function
38 (VNF) descriptor";
39 reference
40 "Derived from earlier versions of base YANG files";
41 }
42
43 grouping common-connection-point {
44 leaf name {
45 description "Name of the connection point";
46 type string;
47 }
48
49 leaf id {
50 description "Identifier for the internal connection points";
51 type string;
52 }
53
54 leaf short-name {
55 description "Short name to appear as label in the UI";
56 type string;
57 }
58
59 leaf type {
60 description "Type of the connection point.";
61 type manotypes:connection-point-type;
62 }
63
64 leaf port-security-enabled {
garciadeblas0ec676d2017-12-18 18:22:27 +010065 description "Enables the port security for the port.";
Rajesh Velandye27e0b22017-09-18 17:21:48 -040066 type boolean;
tiernod4f15a72017-10-14 14:28:30 +020067 default true;
Rajesh Velandye27e0b22017-09-18 17:21:48 -040068 }
69 }
70
71 typedef interface-type {
72 type enumeration {
73 enum INTERNAL;
74 enum EXTERNAL;
75 }
76 }
77
Adam Israelfcfb1cb2017-10-10 12:12:30 -040078 typedef vnf-operational-status {
79 type enumeration {
80 enum init;
81 enum running;
82 enum upgrading;
83 enum terminate;
84 enum terminated;
85 enum failed;
86 }
87 }
88
Rajesh Velandye27e0b22017-09-18 17:21:48 -040089 grouping virtual-interface {
90 container virtual-interface {
91 description
92 "Container for the virtual interface properties";
93
94 leaf type {
95 description
96 "Specifies the type of virtual interface
97 between VM and host.
garciadeblasc0a20492018-10-11 16:26:04 +020098 PARAVIRT : Use the default paravirtualized interface for the VIM (virtio, vmxnet3, etc.).
99 VIRTIO : Deprecated! Use the traditional VIRTIO interface.
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400100 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
101 SR-IOV : Use SR-IOV interface.
102 E1000 : Emulate E1000 interface.
103 RTL8139 : Emulate RTL8139 interface.
104 PCNET : Emulate PCNET interface.
garciadeblasc0a20492018-10-11 16:26:04 +0200105 OM-MGMT : Deprecated! Use PARAVIRT instead and set the VNF management interface at vnfd:mgmt-interface:cp";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400106
107 type enumeration {
garciadeblasc0a20492018-10-11 16:26:04 +0200108 enum PARAVIRT;
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400109 enum OM-MGMT;
110 enum PCI-PASSTHROUGH;
111 enum SR-IOV;
112 enum VIRTIO;
113 enum E1000;
114 enum RTL8139;
115 enum PCNET;
116 }
garciadeblasc0a20492018-10-11 16:26:04 +0200117 default "PARAVIRT";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400118 }
119
120 leaf vpci {
121 description
122 "Specifies the virtual PCI address. Expressed in
123 the following format dddd:dd:dd.d. For example
124 0000:00:12.0. This information can be used to
125 pass as metadata during the VM creation.";
126 type string;
127 }
128
129 leaf bandwidth {
130 description
131 "Aggregate bandwidth of the NIC.";
132 type uint64;
133 }
134 }
135 }
136
137 grouping vnfd-descriptor {
138 leaf id {
139 description "Identifier for the VNFD.";
140 type string {
141 length "1..63";
142 }
143 }
144
145 leaf name {
146 description "VNFD name.";
147 mandatory true;
148 type string;
149 }
150
151 leaf short-name {
152 description "Short name to appear as label in the UI";
153 type string;
154 }
155
156 leaf vendor {
157 description "Vendor of the VNFD.";
158 type string;
159 }
160
161 leaf logo {
162 description
163 "Vendor logo for the Virtual Network Function";
164 type string;
165 }
166
167 leaf description {
168 description "Description of the VNFD.";
169 type string;
170 }
171
172 leaf version {
173 description "Version of the VNFD";
174 type string;
175 }
176
Rajesh Velandyce30ffe2017-09-25 15:15:25 +0000177 container vnf-configuration {
178 uses manotypes:vca-configuration;
garciadeblasd13a7492019-10-08 15:55:16 +0200179 uses manotypes:vca-relations;
garciadeblasc9004902019-05-24 15:56:30 +0200180 uses manotypes:vca-config-access;
Rajesh Velandyce30ffe2017-09-25 15:15:25 +0000181 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400182
Adam Israelfcfb1cb2017-10-10 12:12:30 -0400183 leaf operational-status {
184 description
185 "The operational status of the VNF
186 init : The VNF has just started.
187 running : The VNF is active in VM
188 upgrading : The VNF is being upgraded (EXPERIMENTAL)
189 terminate : The VNF is being terminated
190 terminated : The VNF is in the terminated state.
191 failed : The VNF instantiation failed.
192 ";
193 type vnf-operational-status;
194 }
195
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400196 container mgmt-interface {
197 description
198 "Interface over which the VNF is managed.";
199
200 choice endpoint-type {
201 description
202 "Indicates the type of management endpoint.";
203
204 case ip {
205 description
206 "Specifies the static IP address for managing the VNF.";
207 leaf ip-address {
208 type inet:ip-address;
209 }
210 }
211
212 case vdu-id {
213 description
214 "Use the default management interface on this VDU.";
215 leaf vdu-id {
216 type leafref {
217 path "../../vdu/id";
218 }
219 }
220 }
221
222 case cp {
223 description
tierno19a20de2017-11-03 16:29:05 +0100224 "Use the ip address associated with this connection point. This cp is then considered as management.";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400225 leaf cp {
226 type leafref {
227 path "../../connection-point/name";
228 }
229 }
230 }
231 }
232
233 leaf port {
234 description
235 "Port for the management interface.";
236 type inet:port-number;
237 }
238
239 container dashboard-params {
240 description "Parameters for the VNF dashboard";
241
242 leaf path {
243 description "The HTTP path for the dashboard";
244 type string;
245 }
246
247 leaf https {
248 description "Pick HTTPS instead of HTTP , Default is false";
249 type boolean;
250 }
251
252 leaf port {
253 description "The HTTP port for the dashboard";
254 type inet:port-number;
255 }
256 }
257 }
258
259 list internal-vld {
260 key "id";
261 description
262 "List of Internal Virtual Link Descriptors (VLD).
263 The internal VLD describes the basic topology of
264 the connectivity such as E-LAN, E-Line, E-Tree.
265 between internal VNF components of the system.";
266
267 leaf id {
268 description "Identifier for the VLD";
269 type string;
270 }
271
272 leaf name {
273 description "Name of the internal VLD";
274 type string;
275 }
276
277 leaf short-name {
278 description "Short name to appear as label in the UI";
279 type string;
280 }
281
282 leaf description {
283 type string;
284 }
285
286 leaf type {
287 type manotypes:virtual-link-type;
288 }
289
290 leaf root-bandwidth {
291 description
292 "For ELAN this is the aggregate bandwidth.";
293 type uint64;
294 }
295
296 leaf leaf-bandwidth {
297 description
298 "For ELAN this is the bandwidth of branches.";
299 type uint64;
300 }
301
302 list internal-connection-point {
303 key "id-ref";
304 description "List of internal connection points in this VLD";
305 leaf id-ref {
garciadeblas0ec676d2017-12-18 18:22:27 +0100306 description "Reference to the internal connection point id";
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400307 type leafref {
308 path "../../../vdu/internal-connection-point/id";
309 }
310 }
garciadeblas0ec676d2017-12-18 18:22:27 +0100311
garciadeblas1edb98c2017-12-05 13:47:09 +0100312 leaf ip-address {
313 description "IP address of the internal connection point";
314 type inet:ip-address;
315 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400316 }
317
318 uses manotypes:provider-network;
319 choice init-params {
320 description "Extra parameters for VLD instantiation";
321
322 case vim-network-ref {
323 leaf vim-network-name {
324 description
325 "Name of network in VIM account. This is used to indicate
326 pre-provisioned network name in cloud account.";
327 type string;
328 }
329 }
330
331 case vim-network-profile {
332 leaf ip-profile-ref {
333 description "Named reference to IP-profile object";
334 type string;
335 }
336 }
337
338 }
339 }
340
341 uses manotypes:ip-profile-list;
342
343 list connection-point {
344 key "name";
345 description
346 "List for external connection points. Each VNF has one
347 or more external connection points that connect the VNF
348 to other VNFs or to external networks. Each VNF exposes
349 connection points to the orchestrator, which can construct
350 network services by connecting the connection points
351 between different VNFs. The NFVO will use VLDs and VNFFGs
352 at the network service level to construct network services.";
353
354 uses common-connection-point;
garciadeblasa75e0bb2017-12-12 13:33:33 +0100355
356 leaf internal-vld-ref {
357 description
358 "Reference to an internal VLD of the VNF. This field is
359 optional. It allows exposing an internal VLD through a
360 connection point. When building a NS, this VNF CP might be
361 connected to a NS VLD, then both VLDs (the i-VLD of the VNF and the
362 VLD of the NS) will become the same network and the IP profile will
363 be the one configured at NS level.";
364 type leafref {
365 path "../../internal-vld/id";
366 }
367 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400368 }
369
370 list vdu {
371 description "List of Virtual Deployment Units";
372 key "id";
373
374 leaf id {
375 description "Unique id for the VDU";
376 type string;
377 }
378
379 leaf name {
380 description "Unique name for the VDU";
381 type string;
382 }
383
384 leaf description {
385 description "Description of the VDU.";
386 type string;
387 }
388
garciadeblas0ec676d2017-12-18 18:22:27 +0100389 leaf pdu-type {
390 description
391 "Type of PDU. If this field exists, the deployment unit must be
392 understood as a PDU, not as a VDU. This field is used to identify
393 the category of PDU instances to be used at instantiation time. For
394 the instantiation to be successful, there must be available
395 PDU instances of this type in the selected datacenter.";
396 type string;
397 }
398
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400399 leaf count {
400 description "Number of instances of VDU";
401 type uint64;
402 }
403
404 leaf mgmt-vpci {
405 description
406 "Specifies the virtual PCI address. Expressed in
407 the following format dddd:dd:dd.d. For example
408 0000:00:12.0. This information can be used to
409 pass as metadata during the VM creation.";
410 type string;
411 }
412
413 uses manotypes:vm-flavor;
414 uses manotypes:guest-epa;
415 uses manotypes:vswitch-epa;
416 uses manotypes:hypervisor-epa;
417 uses manotypes:host-epa;
418
419 list alarm {
420 key "alarm-id";
421
Benjamin Diaz46dfea52019-03-20 14:42:53 -0300422 leaf alarm-id {
423 description
424 "This field is reserved for the identifier assigned by the VIM provider";
425
426 type string;
427 }
428
429
430 leaf vnf-monitoring-param-ref {
431 description
432 "Reference to the VNF level monitoring parameter
433 that is aggregated";
434 type leafref {
435 path "../../monitoring-param/id";
436 }
437 }
438
439 uses manotypes:alarm-properties;
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400440 }
441
442 uses manotypes:image-properties;
443
garciadeblase304a4d2017-12-05 12:30:17 +0100444 list alternative-images {
445 key "vim-type";
446 description
447 "List of alternative images per VIM type.
448 Different images can be used for specific types of VIMs instead
449 of the default image. This allows deployments in sites where the
450 image identifier in the VIM is given by the VIM provider and
451 cannot be modified.
452 If an alternative image is specified for a VIM type, it will prevail
453 over the default image";
454
455 leaf vim-type {
456 description "VIM type: openvim, openstack, vmware, aws, etc.";
457 type string;
458 }
459
460 uses manotypes:image-properties;
461 }
462
Rajesh Velandyce30ffe2017-09-25 15:15:25 +0000463 container vdu-configuration {
464 uses manotypes:vca-configuration;
garciadeblasc9004902019-05-24 15:56:30 +0200465 uses manotypes:vca-config-access;
Rajesh Velandyce30ffe2017-09-25 15:15:25 +0000466 }
467
garciadeblas8efd85e2018-04-02 17:29:08 +0200468 list monitoring-param {
469 description
470 "List of VDU-related monitoring parameters at NFVI level";
471 key id;
472 leaf id {
473 description "The unique id of the monitoring param at VDU level";
474 type string;
475 }
476
477 leaf nfvi-metric {
478 description "The associated NFVI metric to be monitored";
479 type manotypes:nfvi-metric-type;
480 }
481
482 leaf interface-name-ref {
483 description
484 "Reference to a VDU interface name. Applicable only when the nfvi-metric
485 refers to an interface and not to the VM";
486 type leafref {
487 path "../../interface/name";
488 }
489 }
490 }
491
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400492 choice cloud-init-input {
493 description
494 "Indicates how the contents of cloud-init script are provided.
495 There are 2 choices - inline or in a file";
496
497 case inline {
498 leaf cloud-init {
499 description
500 "Contents of cloud-init script, provided inline, in cloud-config format";
501 type string;
502 }
503 }
504
505 case filename {
506 leaf cloud-init-file {
507 description
508 "Name of file with contents of cloud-init script in cloud-config format";
509 type string;
510 }
511 }
512 }
513
514 uses manotypes:supplemental-boot-data;
515
516 list internal-connection-point {
517 key "id";
518 description
519 "List for internal connection points. Each VNFC
520 has zero or more internal connection points.
521 Internal connection points are used for connecting
522 the VNF with components internal to the VNF. If a VNF
523 has only one VNFC, it may not have any internal
524 connection points.";
525
526 uses common-connection-point;
527
528 leaf internal-vld-ref {
529 type leafref {
530 path "../../../internal-vld/id";
531 }
532 }
533 }
534
535 list interface {
536 description
537 "List of Interfaces (external and internal) for the VNF";
538 key name;
539
540 leaf name {
541 description
542 "Name of the interface. Note that this
543 name has only local significance to the VDU.";
544 type string;
545 }
546
547 leaf position {
548 description
549 "Explicit Position of the interface within the list";
550 type uint32;
551 }
552
garciadeblas0f6bb772018-04-13 00:58:00 +0200553 leaf mgmt-interface {
554 description
555 "Flag to indicate that this is the mgmt interface
556 to be used for VDU configuration";
557 type boolean;
558 default false;
559 }
560
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400561 leaf type {
562 description
563 "Type of the Interface";
564 type interface-type;
565
566 default "EXTERNAL";
567 }
568
garciadeblas98048d22017-12-05 10:30:26 +0100569 leaf mac-address {
570 description
571 "MAC address of the interface.
572 Some VNFs require a specific MAC address to be configured
573 in the interface. While this is not recommended at all in
574 NFV environments, this parameter exists to allow those
575 scenarios.
576 This parameter will be likely deprecated in the future.";
577 type string;
578 }
579
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400580 choice connection-point-type {
581 case internal {
582 leaf internal-connection-point-ref {
583 description
584 "Leaf Ref to the particular internal connection point";
585 type leafref {
586 path "../../internal-connection-point/id";
587 }
588 }
589 }
590 case external {
591 leaf external-connection-point-ref {
592 description
593 "Leaf Ref to the particular external connection point";
594 type leafref {
595 path "../../../connection-point/name";
596 }
597 }
598 }
599 }
600
601 uses virtual-interface;
602 }
603
604
605 list volumes {
606 key "name";
607
608 leaf name {
609 description "Name of the disk-volumes, e.g. vda, vdb etc";
610 type string;
611 }
612
613 uses manotypes:volume-info;
614 }
615 }
616
617 list vdu-dependency {
618 description
619 "List of VDU dependencies.";
620
621 key vdu-source-ref;
622 leaf vdu-source-ref {
623 type leafref {
624 path "../../vdu/id";
625 }
626 }
627
628 leaf vdu-depends-on-ref {
629 description
630 "Reference to the VDU on which
631 the source VDU depends.";
632 type leafref {
633 path "../../vdu/id";
634 }
635 }
636 }
637
638 leaf service-function-chain {
639 description "Type of node in Service Function Chaining Architecture";
640
641 type enumeration {
642 enum UNAWARE;
643 enum CLASSIFIER;
644 enum SF;
645 enum SFF;
646 }
647 default "UNAWARE";
648 }
649
650 leaf service-function-type {
651 description
652 "Type of Service Function.
653 NOTE: This needs to map with Service Function Type in ODL to
654 support VNFFG. Service Function Type is mandatory param in ODL
655 SFC. This is temporarily set to string for ease of use";
656 type string;
657 }
658
garciadeblas8efd85e2018-04-02 17:29:08 +0200659 uses manotypes:http-endpoints;
660
661 list scaling-group-descriptor {
662 description
663 "scaling group descriptor within the VNF.
664 The scaling group defines a group of VDUs,
665 and the ratio of VDUs in the VNF
666 that is used as target for scaling action";
667
668 key "name";
669
670 leaf name {
671 description "Name of this scaling group.";
672 type string;
673 }
674
675 list scaling-policy {
676
677 key "name";
678
679 leaf name {
680 description
681 "Name of the scaling policy";
682 type string;
683 }
684
685 leaf scaling-type {
686 description
687 "Type of scaling";
688 type manotypes:scaling-policy-type;
689 }
690
691 leaf enabled {
692 description
693 "Specifies if the scaling policy can be applied";
694 type boolean;
695 default true;
696 }
697
698 leaf scale-in-operation-type {
699 description
700 "Operation to be applied to check between scaling criterias to
701 check if the scale in threshold condition has been met.
702 Defaults to AND";
703 type manotypes:scaling-criteria-operation;
704 default AND;
705 }
706
707 leaf scale-out-operation-type {
708 description
709 "Operation to be applied to check between scaling criterias to
710 check if the scale out threshold condition has been met.
711 Defauls to OR";
712 type manotypes:scaling-criteria-operation;
713 default OR;
714 }
715
716 leaf threshold-time {
717 description
718 "The duration for which the criteria must hold true";
719 type uint32;
720 mandatory true;
721 }
722
723 leaf cooldown-time {
724 description
725 "The duration after a scaling-in/scaling-out action has been
726 triggered, for which there will be no further optional";
727 type uint32;
728 mandatory true;
729 }
730
731 list scaling-criteria {
732 description
733 "list of conditions to be met for generating scaling
734 requests";
735 key "name";
736
737 leaf name {
738 type string;
739 }
740
741 leaf scale-in-threshold {
742 description
743 "Value below which scale-in requests are generated";
vijay.r64a85fd2019-01-23 16:32:10 +0530744 type decimal64{
745 fraction-digits 10;
746 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200747 }
748
749 leaf scale-in-relational-operation {
750 description
751 "The relational operator used to compare the monitoring param
752 against the scale-in-threshold.";
753 type manotypes:relational-operation-type;
754 default LE;
755 }
756
757 leaf scale-out-threshold {
758 description
759 "Value above which scale-out requests are generated";
vijay.r64a85fd2019-01-23 16:32:10 +0530760 type decimal64{
761 fraction-digits 10;
762 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200763 }
764
765 leaf scale-out-relational-operation {
766 description
767 "The relational operator used to compare the monitoring param
768 against the scale-out-threshold.";
769 type manotypes:relational-operation-type;
770 default GE;
771 }
772
773 leaf vnf-monitoring-param-ref {
774 description
775 "Reference to the VNF level monitoring parameter
776 that is aggregated";
777 type leafref {
778 path "../../../../monitoring-param/id";
779 }
780 }
781 }
782 }
783
784 list vdu {
785 description "List of VDUs in this scaling group";
786 key "vdu-id-ref";
787
788 leaf vdu-id-ref {
789 description "Reference to the VDU id";
790 type leafref {
791 path "../../../vdu/id";
792 }
793 }
794
795 leaf count {
796 description
797 "count of this VDU id within this scaling group.
798 The count allows to define the number of instances
799 when a scaling action targets this scaling group";
800 type uint32;
801 default 1;
802 }
803 }
804
805 leaf min-instance-count {
806 description
807 "Minimum instances of the scaling group which are allowed.
808 These instances are created by default when the network service
809 is instantiated.";
810 type uint32;
811 default 0;
812 }
813
814 leaf max-instance-count {
815 description
816 "Maximum instances of this scaling group that are allowed
817 in a single network service. The network service scaling
818 will fail, when the number of service group instances
819 exceed the max-instance-count specified.";
820 type uint32;
821 default 10;
822 }
823
824 list scaling-config-action {
825 description "List of scaling config actions";
826 key "trigger";
827
828 leaf trigger {
829 description "scaling trigger";
830 type manotypes:scaling-trigger;
831 }
832
833 leaf vnf-config-primitive-name-ref {
834 description "Reference to the VNF config primitive";
835 type leafref {
836 path "../../../vnf-configuration/config-primitive/name";
837 }
838 }
839 }
840 }
841
842 list monitoring-param {
843 description
844 "List of monitoring parameters at the network service level";
845 key id;
846 leaf id {
847 type string;
848 }
849
850 leaf name {
851 type string;
852 }
853
854 uses manotypes:monitoring-param-aggregation;
855
856 choice monitoring-type {
857 description
858 "Defines the type of monitoring param to be used:
859 * vdu-monitorin-param: VDU-related metric (from NFVI)
860 * vnf-metric: VNF-related metric (from VCA)
861 * vdu-metric: VDU-related metric (from VCA)
862 ";
863
864 case vdu-monitoring-param {
865 description "VDU-related metric from the infrastructure";
garciadeblas18e4ca52018-06-12 15:42:01 +0200866 container vdu-monitoring-param {
867 leaf vdu-ref {
868 type leafref {
869 path "../../../vdu/id";
870 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200871 }
garciadeblas18e4ca52018-06-12 15:42:01 +0200872 leaf vdu-monitoring-param-ref {
873 type leafref {
874 path "../../../vdu[id = current()/../vdu-ref]/monitoring-param/id";
875 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200876 }
877 }
878 }
879
880 case vnf-metric {
881 description "VNF-related metric (from VCA)";
garciadeblas18e4ca52018-06-12 15:42:01 +0200882 container vnf-metric {
883 leaf vnf-metric-name-ref {
884 type leafref {
885 path "../../../vnf-configuration/metrics/name";
886 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200887 }
888 }
889 }
890
891 case vdu-metric {
892 description "VDU-related metric (from VCA)";
garciadeblas18e4ca52018-06-12 15:42:01 +0200893 container vdu-metric {
894 leaf vdu-ref {
895 type leafref {
896 path "../../../vdu/id";
897 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200898 }
garciadeblas18e4ca52018-06-12 15:42:01 +0200899 leaf vdu-metric-name-ref {
900 type leafref {
901 path "../../../vdu[id = current()/../vdu-ref]/vdu-configuration/metrics/name";
902 }
garciadeblas8efd85e2018-04-02 17:29:08 +0200903 }
904 }
905 }
906
907 }
908
909 leaf http-endpoint-ref {
910 type leafref {
911 path "../../http-endpoint/path";
912 }
913 }
914
915 leaf json-query-method {
916 type manotypes:json-query-method;
917 default "NAMEKEY";
918 }
919
920 container json-query-params {
921 leaf json-path {
922 description
923 "The jsonpath to use to extract value from JSON structure";
924 type string;
925 }
926 leaf object-path {
927 description
928 "The objectpath to use to extract value from JSON structure";
929 type string;
930 }
931 }
932
933 uses manotypes:monitoring-param-ui-data;
934 uses manotypes:monitoring-param-value;
935
936 }
Rajesh Velandye27e0b22017-09-18 17:21:48 -0400937
938 list placement-groups {
939 description "List of placement groups at VNF level";
940
941 key "name";
942 uses manotypes:placement-group-info;
943
944 list member-vdus {
945
946 description
947 "List of VDUs that are part of this placement group";
948 key "member-vdu-ref";
949
950 leaf member-vdu-ref {
951 type leafref {
952 path "../../../vdu/id";
953 }
954 }
955 }
956 }
957 }
958}
959
960// vim: sw=2