X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=models%2Faugments%2Fcommon-augments.yang;fp=models%2Faugments%2Fcommon-augments.yang;h=7beec8905ffba0a60109e6c56527b8dead902efc;hb=76f6a62b4cc15bc77cf1270d2b1630524fb2879f;hp=0000000000000000000000000000000000000000;hpb=10ba9c39b590538a68bdbafce02fee7e0c33954d;p=osm%2FIM.git diff --git a/models/augments/common-augments.yang b/models/augments/common-augments.yang new file mode 100644 index 0000000..7beec89 --- /dev/null +++ b/models/augments/common-augments.yang @@ -0,0 +1,554 @@ +/* + Copyright 2020 Whitestack LLC + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +module common-augments { + yang-version 1.1; + namespace "urn:etsi:osm:yang:augments"; + prefix "common"; + + typedef parameter-data-type { + type enumeration { + enum STRING; + enum INTEGER; + enum BOOLEAN; + } + } + + grouping primitive-parameter-value { + list parameter { + description + "List of parameters to the configuration primitive."; + key "name"; + leaf name { + description + "Name of the parameter."; + type string; + } + + leaf data-type { + description + "Data type associated with the value."; + type common:parameter-data-type; + } + + leaf value { + description + "Value associated with the name."; + type string; + } + } + } + + grouping primitive-parameter { + leaf name { + description + "Name of the parameter."; + type string; + } + + leaf data-type { + description + "Data type associated with the name."; + type common:parameter-data-type; + } + + leaf mandatory { + description + "Is this field mandatory"; + type boolean; + default false; + } + + leaf default-value { + description + "The default value for this field"; + type string; + } + + leaf parameter-pool { + description + "NSD parameter pool name to use for this parameter"; + type string; + } + + leaf read-only { + description + "The value should be dimmed by the UI. + Only applies to parameters with default values."; + type boolean; + default false; + } + + leaf hidden { + description + "The value should be hidden by the UI. + Only applies to parameters with default values."; + type boolean; + default false; + } + } + + grouping vnfc-relations { + list relation { + description + "List of relations between elements in this descriptor."; + key "name"; + + leaf name { + description + "Name of the relation."; + + type string; + } + + list entities { + description + "List of two elements to be related. + Elements to be related are identified by a pair (id, endpoint). + The relation will relate (id1, endpoint1) to (id2, endpoint2)."; + key "id"; + + leaf id { + description + "A string, reference to the element id in the descriptor. + It could be a vnfd-id or a vdu-id in a VNFD, + or a nsd-id or member-vnf-index in a NSD."; + type string; + } + + leaf endpoint { + description + "Endpoint name defining the relation."; + type string; + } + } + } + } + + grouping vnfc-metrics { + description + "Information about the VNF or VDU metrics"; + list metrics { + description + "List of VNFC related metrics"; + key "name"; + leaf name { + description + "Name of the metric, as defined in the Juju charm."; + type string; + } + } + } + + grouping configuration-method { + choice config-method { + description + "Defines the configuration method for the VNF or VDU."; + case script { + description + "Use custom script for configuring the VNF or VDU. + This script is executed in the context of + Orchestrator (The same system and environment + as the Launchpad)."; + container script { + leaf script-type { + description + "Script type - currently supported - Scripts confirming to Rift CA plugin"; + type enumeration { + enum rift; + } + } + } + } + + case juju { + description + "Configure the VNF or VDU through Juju."; + container juju { + leaf charm { + description + "Juju charm to use with the VNF or VDU."; + type string; + } + leaf proxy { + description + "Is this a proxy charm?"; + type boolean; + default true; + } + } + } + } + } + + grouping vdu-config-access { + + container config-access { + + description + "Indicates the way to access to the xNF or xDU for VCA configuration. + For the moment there is a single way (ssh-access)."; + + container ssh-access { + + description + "If the xNF requires ssh and this parameter is set, SSH keys + will be injected so that VCA can configure the xNF or xDU via ssh."; + + leaf required { + description + "whether ssh access is needed or not"; + type boolean; + default false; + } + + leaf default-user { + description + "Default user for ssh"; + type string; + } + } + } + } + + grouping vnfc-configuration { + description + "Common information in the descriptors for NS, VNF or VDU configuration. + Note: If the NS contains multiple instances of the + same VNF or VDU, each instance could have a different + configuration."; + + uses common:configuration-method; + + list config-primitive { + description + "List of config primitives supported by the + configuration agent for this VNF or VDU."; + key "name"; + + leaf name { + description + "Name of the config primitive."; + type string; + } + + list parameter { + description + "List of parameters to the config primitive."; + key "name"; + uses primitive-parameter; + } + + leaf user-defined-script { + description + "A user defined script. If user defined script is defined, + the script will be executed using bash"; + type string; + } + } + + list initial-config-primitive { + description + "Initial set of configuration primitives."; + key "seq"; + leaf seq { + description + "Sequence number for the configuration primitive."; + type uint64; + } + + choice primitive-type { + case primitive-definition { + leaf name { + description + "Name of the configuration primitive."; + type string; + } + + uses primitive-parameter-value; + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + } + } + } + + list terminate-config-primitive { + description + "Terminate set of configuration primitives."; + key "seq"; + leaf seq { + description + "Sequence number for the configuration primitive."; + type uint64; + } + leaf name { + description + "Name of the configuration primitive."; + type string; + } + + uses primitive-parameter-value; + + leaf user-defined-script { + description + "A user defined script."; + type string; + } + } + uses common:vnfc-metrics; + } + + typedef alarm-severity-type { + description + "An indication of the importance or urgency of the alarm"; + type enumeration { + enum LOW; + enum MODERATE; + enum CRITICAL; + } + } + + typedef alarm-statistic-type { + description + "Statistic type to use to determine threshold crossing + for an alarm."; + type enumeration { + enum AVERAGE; + enum MINIMUM; + enum MAXIMUM; + enum COUNT; + enum SUM; + } + } + + typedef relational-operation-type { + description + "The relational operator used to define whether an alarm, + scaling event, etc. should be triggered in certain scenarios, + such as if the metric statistic goes above or below a specified + value."; + type enumeration { + enum GE; // greater than or equal + enum LE; // less than or equal + enum GT; // greater than + enum LT; // less than + enum EQ; // equal + } + } + + grouping alarm-properties { + leaf name { + description + "A human readable string to identify the alarm"; + type string; + } + + leaf description { + description + "A description of this alarm"; + type string; + } + + leaf vdur-id { + description + "The identifier of the VDUR that the alarm is associated with"; + type string; + } + + container actions { + list ok { + key "url"; + leaf url { + type string; + } + } + + list insufficient-data { + key "url"; + leaf url { + type string; + } + } + + list alarm { + key "url"; + leaf url { + type string; + } + } + } + + leaf repeat { + description + "This flag indicates whether the alarm should be repeatedly emitted + while the associated threshold has been crossed."; + + type boolean; + default true; + } + + leaf enabled { + description + "This flag indicates whether the alarm has been enabled or + disabled."; + + type boolean; + default true; + } + + leaf severity { + description + "A measure of the importance or urgency of the alarm"; + type alarm-severity-type; + } + + leaf statistic { + description + "The type of metric statistic that is tracked by this alarm"; + type alarm-statistic-type; + } + + leaf operation { + description + "The relational operator used to define whether an alarm should be + triggered in certain scenarios, such as if the metric statistic + goes above or below a specified value."; + type relational-operation-type; + } + + leaf value { + description + "This value defines the threshold that, if crossed, will trigger + the alarm."; + type decimal64 { + fraction-digits 4; + } + } + + leaf period { + description + "The period defines the length of time (seconds) that the metric + data are collected over in oreder to evaluate the chosen + statistic."; + type uint32; + } + + leaf evaluations { + description + "Defines the length of time (seconds) in which metric data are + collected in order to evaluate the chosen statistic."; + type uint32; + } + } + + grouping virtual-interface { + container virtual-interface { + description + "Container for the virtual interface properties"; + + leaf type { + description + "Specifies the type of virtual interface + between VM and host. + PARAVIRT : Use the default paravirtualized interface for the VIM (virtio, vmxnet3, etc.). + VIRTIO : Deprecated! Use the traditional VIRTIO interface. + PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface. + SR-IOV : Use SR-IOV interface. + E1000 : Emulate E1000 interface. + RTL8139 : Emulate RTL8139 interface. + PCNET : Emulate PCNET interface. + OM-MGMT : Deprecated! Use PARAVIRT instead and set the VNF management interface at vnfd:mgmt-interface:cp"; + + type enumeration { + enum PARAVIRT; + enum OM-MGMT; + enum PCI-PASSTHROUGH; + enum SR-IOV; + enum VIRTIO; + enum E1000; + enum RTL8139; + enum PCNET; + } + default "PARAVIRT"; + } + + leaf vpci { + description + "Specifies the virtual PCI address. Expressed in + the following format dddd:dd:dd.d. For example + 0000:00:12.0. This information can be used to + pass as metadata during the VM creation."; + type string; + } + + leaf bandwidth { + description + "Aggregate bandwidth of the NIC."; + type uint64; + } + } + } + + grouping description { + leaf description { + type string; + } + } + + typedef scaling-trigger { + type enumeration { + enum pre-scale-in { + value 1; + } + enum post-scale-in { + value 2; + } + enum pre-scale-out { + value 3; + } + enum post-scale-out { + value 4; + } + } + } + + typedef scaling-policy-type { + type enumeration { + enum manual { + value 1; + } + enum automatic { + value 2; + } + } + } + + typedef scaling-criteria-operation { + type enumeration { + enum AND { + value 1; + } + enum OR { + value 2; + } + } + } +} \ No newline at end of file