2 Copyright 2020 Whitestack LLC
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14 See the License for the specific language governing permissions and
15 limitations under the License.
18 module common-augments {
20 namespace "urn:etsi:osm:yang:augments";
23 typedef parameter-data-type {
31 grouping primitive-parameter-value {
34 "List of parameters to the configuration primitive.";
38 "Name of the parameter.";
44 "Data type associated with the value.";
45 type common:parameter-data-type;
50 "Value associated with the name.";
56 grouping primitive-parameter {
59 "Name of the parameter.";
65 "Data type associated with the name.";
66 type common:parameter-data-type;
71 "Is this field mandatory";
78 "The default value for this field";
84 "NSD parameter pool name to use for this parameter";
90 "The value should be dimmed by the UI.
91 Only applies to parameters with default values.";
98 "The value should be hidden by the UI.
99 Only applies to parameters with default values.";
105 grouping vnfc-relations {
108 "List of relations between elements in this descriptor.";
113 "Name of the relation.";
120 "List of two elements to be related.
121 Elements to be related are identified by a pair (id, endpoint).
122 The relation will relate (id1, endpoint1) to (id2, endpoint2).";
127 "A string, reference to the element id in the descriptor.
128 It could be a vnfd-id or a vdu-id in a VNFD,
129 or a nsd-id or member-vnf-index in a NSD.";
135 "Endpoint name defining the relation.";
142 grouping vnfc-metrics {
144 "Information about the VNF or VDU metrics";
147 "List of VNFC related metrics";
151 "Name of the metric, as defined in the Juju charm.";
157 grouping configuration-method {
158 choice config-method {
160 "Defines the configuration method for the VNF or VDU.";
163 "Use custom script for configuring the VNF or VDU.
164 This script is executed in the context of
165 Orchestrator (The same system and environment
170 "Script type - currently supported - Scripts confirming to Rift CA plugin";
180 "Configure the VNF or VDU through Juju.";
184 "Juju charm to use with the VNF or VDU.";
189 "Is this a proxy charm?";
198 grouping vdu-config-access {
200 container config-access {
203 "Indicates the way to access to the xNF or xDU for VCA configuration.
204 For the moment there is a single way (ssh-access).";
206 container ssh-access {
209 "If the xNF requires ssh and this parameter is set, SSH keys
210 will be injected so that VCA can configure the xNF or xDU via ssh.";
214 "whether ssh access is needed or not";
221 "Default user for ssh";
228 grouping vnfc-configuration {
230 "Common information in the descriptors for NS, VNF or VDU configuration.
231 Note: If the NS contains multiple instances of the
232 same VNF or VDU, each instance could have a different
235 uses common:configuration-method;
237 list config-primitive {
239 "List of config primitives supported by the
240 configuration agent for this VNF or VDU.";
245 "Name of the config primitive.";
251 "List of parameters to the config primitive.";
253 uses primitive-parameter;
256 leaf user-defined-script {
258 "A user defined script. If user defined script is defined,
259 the script will be executed using bash";
264 list initial-config-primitive {
266 "Initial set of configuration primitives.";
270 "Sequence number for the configuration primitive.";
274 choice primitive-type {
275 case primitive-definition {
278 "Name of the configuration primitive.";
282 uses primitive-parameter-value;
284 leaf user-defined-script {
286 "A user defined script.";
293 list terminate-config-primitive {
295 "Terminate set of configuration primitives.";
299 "Sequence number for the configuration primitive.";
304 "Name of the configuration primitive.";
308 uses primitive-parameter-value;
310 leaf user-defined-script {
312 "A user defined script.";
316 uses common:vnfc-metrics;
319 typedef alarm-severity-type {
321 "An indication of the importance or urgency of the alarm";
329 typedef alarm-statistic-type {
331 "Statistic type to use to determine threshold crossing
342 typedef relational-operation-type {
344 "The relational operator used to define whether an alarm,
345 scaling event, etc. should be triggered in certain scenarios,
346 such as if the metric statistic goes above or below a specified
349 enum GE; // greater than or equal
350 enum LE; // less than or equal
351 enum GT; // greater than
352 enum LT; // less than
357 grouping alarm-properties {
360 "A human readable string to identify the alarm";
366 "A description of this alarm";
372 "The identifier of the VDUR that the alarm is associated with";
384 list insufficient-data {
401 "This flag indicates whether the alarm should be repeatedly emitted
402 while the associated threshold has been crossed.";
410 "This flag indicates whether the alarm has been enabled or
419 "A measure of the importance or urgency of the alarm";
420 type alarm-severity-type;
425 "The type of metric statistic that is tracked by this alarm";
426 type alarm-statistic-type;
431 "The relational operator used to define whether an alarm should be
432 triggered in certain scenarios, such as if the metric statistic
433 goes above or below a specified value.";
434 type relational-operation-type;
439 "This value defines the threshold that, if crossed, will trigger
448 "The period defines the length of time (seconds) that the metric
449 data are collected over in oreder to evaluate the chosen
456 "Defines the length of time (seconds) in which metric data are
457 collected in order to evaluate the chosen statistic.";
462 grouping virtual-interface {
463 container virtual-interface {
465 "Container for the virtual interface properties";
469 "Specifies the type of virtual interface
471 PARAVIRT : Use the default paravirtualized interface for the VIM (virtio, vmxnet3, etc.).
472 VIRTIO : Deprecated! Use the traditional VIRTIO interface.
473 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
474 SR-IOV : Use SR-IOV interface.
475 E1000 : Emulate E1000 interface.
476 RTL8139 : Emulate RTL8139 interface.
477 PCNET : Emulate PCNET interface.
478 OM-MGMT : Deprecated! Use PARAVIRT instead and set the VNF management interface at vnfd:mgmt-interface:cp";
483 enum PCI-PASSTHROUGH;
495 "Specifies the virtual PCI address. Expressed in
496 the following format dddd:dd:dd.d. For example
497 0000:00:12.0. This information can be used to
498 pass as metadata during the VM creation.";
504 "Aggregate bandwidth of the NIC.";
510 grouping description {
516 typedef scaling-trigger {
527 enum post-scale-out {
533 typedef scaling-policy-type {
544 typedef scaling-criteria-operation {