4 * Copyright 2016-2017 RIFT.IO Inc
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
23 namespace "http://riftio.com/ns/riftware-1.0/rwcal";
30 import rw-yang-types {
42 import ietf-inet-types {
52 "Update model to support projects.";
59 "RIFT RWCAL cloud data";
64 typedef connection-status {
65 description "Connection status for the cloud account";
88 typedef container-format {
98 grouping connection-status {
99 container connection-status {
102 type connection-status;
110 grouping custom-meta-data {
111 description "Grouping for instance-specific meta data";
112 list custom-meta-data {
114 "List of meta-data to be associated with the instance";
117 description "Name of the meta-data parameter";
122 description "Data-type the meta-data parameter";
123 type manotypes:meta-data-type;
128 description "Value of the meta-data parameter";
133 description "Type of input parameter";
136 enum "CLOUD_METADATA";
138 default "CLOUD_METADATA";
143 uses connection-status;
145 grouping provider-auth {
147 type manotypes:cloud-account-type;
150 choice provider-specific-info {
157 default "rwcal_mock";
159 leaf dynamic-flavor-support {
177 description "VPC ID to use to instantiate EC2 instances";
181 description "Key pair name to connect to EC2 instance";
184 leaf availability-zone {
185 description "Availability zone where EC2 instance should
189 leaf default-subnet-id {
190 description "Default subnet ID to create network
191 interface at instance creation time";
198 leaf dynamic-flavor-support {
204 container openstack {
223 description "Domain of the OpenStack user";
225 leaf project-domain {
228 description "Domain of the OpenStack project";
252 default "rwcal_openstack";
255 leaf-list security-groups {
257 description "Names of the security groups for the VM";
260 leaf dynamic-flavor-support {
265 leaf floating-ip-pool {
267 description "Name of floating IP pool to use for floating IP address assignement";
273 description "Certificate validatation policy in case of SSL/TLS connection";
298 default "rwcal_openmano";
317 default "rwcal-python";
320 leaf dynamic-flavor-support {
329 default "rwcal_cloudsim";
331 leaf dynamic-flavor-support {
337 container cloudsim_proxy {
344 default "rwcal_cloudsimproxy";
346 leaf dynamic-flavor-support {
363 description "Mandatory parameter to indicate openvim tenant name";
372 default "rwcal_openmano_vimconnector";
374 leaf dynamic-flavor-support {
378 container image-management {
379 description " Information required for OpenVim image upload operation";
382 description "Username for host access";
386 description "Password for host access";
389 leaf image-directory-path {
390 description "Name of the directory on the host where image needs to be copied";
392 default "/opt/VNF/images";
397 container prop_cloud1 {
399 description "This is a single-host cloud. IP address of host";
404 description "Username to access host";
408 description "Password for user";
412 description "Name of bridge used for management access to VMs on cloud";
416 leaf public-ip-pool {
417 description "Public IP pool for VMs";
422 description "WAN interface name";
427 description "Firewall services";
432 default "rwcal_brocade";
434 leaf dynamic-flavor-support {
442 grouping instance-timeout {
443 leaf vdu-instance-timeout {
444 description "VDU instantiation timeout";
450 grouping vm-info-item {
475 leaf availability-zone {
495 leaf allocate-public-address {
496 description "If this VM should allocate a floating public IP address";
501 list private-ip-list {
509 list public-ip-list {
531 container cloud-init {
534 "The userdata field for cloud-init should contain
535 the contents of the script that cloud-init should
536 invoke when configuring the system. Note that this
537 script is expected to be in the cloud-config format";
542 container user_tags {
548 leaf pci_assignement {
562 grouping image-info-item {
573 description "Image URL location";
578 description "Image file descriptor";
587 leaf virtual_size_mbytes {
588 description "Virtual size of the image";
593 description "Format of the Disk";
598 leaf container_format {
599 description "Format of the container";
605 description "State of the Image object in CAL";
615 container user-tags {
616 description "User tags associated with Image";
625 description "Name of the image property";
628 leaf property_value {
629 description "Value of the image property";
635 grouping network-info-item {
648 uses manotypes:provider-network;
651 grouping port-info-item {
677 description "Type of the port";
686 choice provider-specific-info {
695 augment "/rw-project:project" {
696 container cloud-accounts {
697 list cloud-account-list {
704 uses instance-timeout;
709 augment "/rw-project:project" {
710 container vim-resources {
720 list imageinfo-list {
724 uses image-info-item;
727 list tenantinfo-list {
779 list networkinfo-list {
783 uses network-info-item;
793 list flavorinfo-list {
805 uses manotypes:vm-flavor;
806 uses manotypes:guest-epa;
807 uses manotypes:vswitch-epa;
808 uses manotypes:hypervisor-epa;
809 uses manotypes:host-epa;
810 uses manotypes:placement-group-input;
815 grouping virtual-cp-info-params {
817 leaf connection-point-id {
818 description "Connection point id";
823 description "Name of virtual connection point";
828 description "IP address of the virtual connection point";
829 type inet:ip-address;
833 description "MAC address of the virtual connection point";
838 grouping virtual-link-create-params {
840 description "Name of the Virtual-Link";
847 leaf associate-public-ip {
851 leaf vim-network-name {
853 "Name of network in VIM account. This is used to indicate
854 pre-provisioned network name in cloud account.";
862 description "Name of virtual connection point";
867 description "Type of the Virtual Connection Point";
868 type manotypes:connection-point-type;
871 leaf security-group {
872 description "Name of the security group";
876 leaf port-security-enabled {
877 description "Enables the port security";
881 leaf static-ip-address {
882 description "Static IP address for the connection point";
883 type inet:ip-address;
887 uses manotypes:provider-network;
888 uses manotypes:ip-profile-info;
892 augment "/rw-project:project" {
893 container virtual-link-req-params {
894 description "This object defines the parameters required to create a virtual-link";
895 uses virtual-link-create-params;
899 grouping connection-point-type {
902 "Specifies the type of connection point
903 VIRTIO : Use the traditional VIRTIO interface.
904 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
905 SR-IOV : Use SR-IOV interface.
906 E1000 : Emulate E1000 interface.
907 RTL8139 : Emulate RTL8139 interface.
908 PCNET : Emulate PCNET interface.
909 VPORT : Virtual Port.";
912 enum PCI-PASSTHROUGH;
924 grouping vdu-create-params {
926 description "Name of the VDU";
932 "Specifies the virtual PCI address. Expressed in
933 the following format dddd:dd:dd.d. For example
934 0000:00:12.0. This information can be used to
935 pass as metadata during the VM creation.";
939 uses manotypes:vm-flavor;
940 uses manotypes:guest-epa;
941 uses manotypes:vswitch-epa;
942 uses manotypes:hypervisor-epa;
943 uses manotypes:host-epa;
950 description "CAL assigned flavor-id for the VDU image";
955 description "CAL assigned image-id for the VDU image";
960 description "Image name which can be used to lookup the image-id";
964 leaf image-checksum {
965 description "Image md5sum checksum used in combination with image name to lookup image-id ";
969 uses manotypes:placement-group-input;
971 list connection-points {
974 description "Name of the connection point";
977 leaf virtual-link-id {
978 description "CAL assigned resource Id for the Virtual Link";
981 leaf associate-public-ip {
988 "Specifies the virtual PCI address. Expressed in
989 the following format dddd:dd:dd.d. For example
990 0000:00:12.0. This information can be used to
991 pass as metadata during the VM creation.";
995 leaf security-group {
996 description "Name of the security group";
1000 leaf port-security-enabled {
1001 description "Enables the port security";
1005 leaf static-ip-address {
1006 description "Static IP address for the connection point";
1007 type inet:ip-address;
1011 description "Port Sequence Order";
1017 uses virtual-cp-info-params;
1020 uses connection-point-type;
1025 "Explicit mgmt-network name, otherwise the mgmt-network from
1026 Cloud account is used";
1030 leaf allocate-public-address {
1031 description "If this VDU needs public IP address";
1036 container vdu-init {
1039 "The userdata field for vdu-init should contain
1040 the contents of the script that cloud-init should
1041 invoke when configuring the system. Note that this
1042 script is expected to be in the cloud-config format";
1047 container supplemental-boot-data {
1048 uses manotypes:config-file;
1049 leaf boot-data-drive {
1050 description "Some VIMs implement additional drives to host config-files or meta-data";
1054 uses custom-meta-data;
1061 description "Name of the disk-volumes, e.g. vda, vdb etc";
1066 description "Description for Volume";
1071 description "Size of disk in GB";
1075 choice volume-source {
1077 "Defines the source of the volume. Possible options are
1078 1. Ephemeral -- Empty disk
1079 2. Image -- Refer to image to be used for volume
1080 3. Volume -- Reference of pre-existing volume to be used
1090 uses manotypes:image-properties;
1095 description "Reference for pre-existing volume in VIM";
1102 description "Type of disk-bus on which this disk is exposed to guest";
1112 description "The type of device as exposed to guest";
1122 description "This flag indicates if this is boot volume or not";
1126 leaf boot-priority {
1127 description "Boot priority associated with volume";
1133 augment "/rw-project:project" {
1134 container vdu-init-params {
1135 description "This object defines the parameters required to create a VDU";
1136 uses vdu-create-params;
1140 augment "/rw-project:project/vdu-init-params/vm-flavor" {
1141 uses manotypes:vm-flavor-name;
1144 augment "/rw-project:project" {
1145 container vdu-modify-params {
1146 description "This object defines the parameters required to modify VDU";
1149 description "CAL assigned id for VDU to which this connection point belongs";
1153 leaf static-ip-address {
1154 description "Static IP address for the connection point";
1155 type inet:ip-address;
1158 uses connection-point-type;
1161 description "CAL assigned image-id for the VDU image";
1165 list connection-points-add {
1168 description "Name of the connection point";
1171 leaf virtual-link-id {
1172 description "CAL assigned resource Id for the Virtual Link";
1175 leaf associate-public-ip {
1179 leaf port-security-enabled {
1180 description "Enables the port security";
1184 uses connection-point-type;
1187 list connection-points-remove {
1188 key "connection-point-id";
1189 leaf connection-point-id {
1196 grouping connection-point-info-params {
1197 leaf connection-point-id {
1202 description "Name of the connection point";
1206 leaf virtual-link-id {
1207 description "CAL assigned resource ID of the Virtual-Link";
1212 description "CAL assigned id for VDU to which this connection point belongs";
1217 description "CMP agnostic generic state of the connection point";
1227 type inet:ip-address;
1239 description "Port Sequence Order";
1243 list virtual-cp-info {
1247 type inet:ip-address;
1256 grouping virtual-link-info-params {
1258 description "Name of the Virtual-Link";
1263 description "State of the Virtual Link";
1273 leaf virtual-link-id {
1274 description "CAL assigned resource ID of the Virtual-Link";
1278 list connection-points {
1279 key connection-point-id;
1280 uses connection-point-info-params;
1283 list virtual-connection-points {
1284 key connection-point-id;
1285 uses virtual-cp-info-params;
1292 uses manotypes:provider-network;
1296 grouping vdu-info-params {
1298 description "CAL assigned id for VDU";
1302 description "Name of the VDU";
1307 description "CAL assigned flavor-id for the VDU image";
1312 description "CAL assigned image-id for the VDU image";
1321 description "State of the VDU";
1331 leaf management-ip {
1339 uses manotypes:vm-flavor;
1340 uses manotypes:guest-epa;
1341 uses manotypes:vswitch-epa;
1342 uses manotypes:hypervisor-epa;
1343 uses manotypes:host-epa;
1344 uses manotypes:placement-group-input;
1346 list connection-points {
1347 key connection-point-id;
1348 uses connection-point-info-params;
1352 description "Console URL from the VIM, if available";
1355 container supplemental-boot-data {
1356 uses manotypes:config-file;
1357 leaf boot-data-drive {
1358 description "Some VIMs implement additional drives to host config-files or meta-data";
1362 uses custom-meta-data;
1369 description "Name of the disk-volumes, e.g. vda, vdb etc";
1374 description "CAL assigned volume-id ";
1378 uses custom-meta-data;
1383 augment "/rw-project:project" {
1384 container vnf-resources {
1387 list virtual-link-info-list {
1389 key virtual-link-id;
1390 uses virtual-link-info-params;
1393 list vdu-info-list {
1396 uses vdu-info-params;
1402 /* vim: set ts=2:sw=2: */