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";
34 import rw-yang-types {
52 "Update model to support projects.";
59 "RIFT RWCAL cloud data";
63 typedef connection-status {
64 description "Connection status for the cloud account";
87 typedef container-format {
97 grouping connection-status {
98 container connection-status {
100 rwpb:msg-new CloudConnectionStatus;
102 type connection-status;
110 uses connection-status;
112 typedef sdn-account-type {
113 description "SDN account type";
121 grouping sdn-provider-auth {
123 type sdn-account-type;
126 choice provider-specific-info {
152 default "rwsdn_mock";
168 grouping provider-auth {
170 type manotypes:cloud-account-type;
173 choice provider-specific-info {
180 default "rwcal_mock";
182 leaf dynamic-flavor-support {
200 description "VPC ID to use to instantiate EC2 instances";
204 description "Key pair name to connect to EC2 instance";
207 leaf availability-zone {
208 description "Availability zone where EC2 instance should
212 leaf default-subnet-id {
213 description "Default subnet ID to create network
214 interface at instance creation time";
221 leaf dynamic-flavor-support {
227 container openstack {
246 description "Domain of the OpenStack user";
248 leaf project-domain {
251 description "Domain of the OpenStack project";
276 default "rwcal_openstack";
279 leaf-list security-groups {
281 description "Names of the security groups for the VM";
284 leaf dynamic-flavor-support {
289 leaf floating-ip-pool {
291 description "Name of floating IP pool to use for floating IP address assignement";
297 description "Certificate validatation policy in case of SSL/TLS connection";
322 default "rwcal_openmano";
341 default "rwcal-python";
344 leaf dynamic-flavor-support {
353 default "rwcal_cloudsim";
355 leaf dynamic-flavor-support {
361 container cloudsim_proxy {
368 default "rwcal_cloudsimproxy";
370 leaf dynamic-flavor-support {
387 description "Mandatory parameter to indicate openvim tenant name";
396 default "rwcal_openmano_vimconnector";
398 leaf dynamic-flavor-support {
402 container image-management {
403 description " Information required for OpenVim image upload operation";
406 description "Username for host access";
410 description "Password for host access";
413 leaf image-directory-path {
414 description "Name of the directory on the host where image needs to be copied";
416 default "/opt/VNF/images";
423 grouping vm-info-item {
425 rwpb:field-inline "true";
426 rwpb:field-string-max 255;
431 rwpb:field-inline "true";
432 rwpb:field-string-max 64;
437 rwpb:field-inline "true";
438 rwpb:field-string-max 64;
443 rwpb:field-inline "true";
444 rwpb:field-string-max 64;
449 rwpb:field-inline "true";
450 rwpb:field-string-max 64;
455 rwpb:field-inline "true";
456 rwpb:field-string-max 64;
460 leaf availability-zone {
461 rwpb:field-inline "true";
462 rwpb:field-string-max 64;
467 rwpb:field-inline "true";
468 rwpb:field-string-max 64;
473 rwpb:field-inline "true";
474 rwpb:field-string-max 64;
479 rwpb:field-inline "true";
480 rwpb:field-string-max 64;
485 rwpb:field-inline "true";
486 rwpb:field-string-max 64;
490 leaf allocate-public-address {
491 rwpb:field-inline "true";
492 description "If this VM should allocate a floating public IP address";
497 list private-ip-list {
501 rwpb:field-inline "true";
502 rwpb:field-string-max 64;
507 list public-ip-list {
511 rwpb:field-inline "true";
512 rwpb:field-string-max 64;
520 rwpb:field-inline "true";
521 rwpb:field-string-max 64;
529 rwpb:field-inline "true";
530 rwpb:field-string-max 64;
535 container cloud-init {
538 "The userdata field for cloud-init should contain
539 the contents of the script that cloud-init should
540 invoke when configuring the system. Note that this
541 script is expected to be in the cloud-config format";
546 container user_tags {
552 leaf pci_assignement {
566 grouping image-info-item {
577 description "Image URL location";
582 description "Image file descriptor";
591 leaf virtual_size_mbytes {
592 description "Virtual size of the image";
597 description "Format of the Disk";
602 leaf container_format {
603 description "Format of the container";
604 type container-format;
609 description "State of the Image object in CAL";
619 container user-tags {
620 description "User tags associated with Image";
622 rwpb:field-inline "true";
623 rwpb:field-string-max 64;
629 grouping network-info-item {
631 rwpb:field-inline "true";
632 rwpb:field-string-max 64;
637 rwpb:field-inline "true";
638 rwpb:field-string-max 64;
643 rwpb:field-inline "true";
644 rwpb:field-string-max 64;
648 uses manotypes:provider-network;
651 grouping port-info-item {
653 rwpb:field-inline "true";
654 rwpb:field-string-max 255;
659 rwpb:field-inline "true";
660 rwpb:field-string-max 64;
665 rwpb:field-inline "true";
666 rwpb:field-string-max 64;
671 rwpb:field-inline "true";
672 rwpb:field-string-max 64;
677 rwpb:field-inline "true";
678 rwpb:field-string-max 64;
683 rwpb:field-inline "true";
684 rwpb:field-string-max 64;
689 description "Type of the port";
698 choice provider-specific-info {
707 augment "/rw-project:project" {
708 container cloud-accounts {
709 list cloud-account-list {
710 rwpb:msg-new CloudAccount;
721 augment "/rw-project:project" {
722 container vim-resources {
723 rwpb:msg-new VimResources;
727 rwpb:msg-new VMInfoItem;
734 list imageinfo-list {
735 rwpb:msg-new ImageInfoItem;
739 uses image-info-item;
742 list tenantinfo-list {
743 rwpb:msg-new TenantInfoItem;
748 rwpb:field-inline "true";
749 rwpb:field-string-max 64;
754 rwpb:field-inline "true";
755 rwpb:field-string-max 64;
761 rwpb:msg-new UserInfoItem;
766 rwpb:field-inline "true";
767 rwpb:field-string-max 64;
772 rwpb:field-inline "true";
773 rwpb:field-string-max 64;
779 rwpb:msg-new RoleInfoItem;
784 rwpb:field-inline "true";
785 rwpb:field-string-max 64;
790 rwpb:field-inline "true";
791 rwpb:field-string-max 64;
797 rwpb:msg-new HostInfoItem;
802 rwpb:field-inline "true";
803 rwpb:field-string-max 64;
808 rwpb:field-inline "true";
809 rwpb:field-string-max 64;
814 list networkinfo-list {
815 rwpb:msg-new NetworkInfoItem;
819 uses network-info-item;
823 rwpb:msg-new PortInfoItem;
830 list flavorinfo-list {
831 rwpb:msg-new FlavorInfoItem;
836 rwpb:field-inline "true";
837 rwpb:field-string-max 64;
842 rwpb:field-inline "true";
843 rwpb:field-string-max 255;
847 uses manotypes:vm-flavor;
848 uses manotypes:guest-epa;
849 uses manotypes:vswitch-epa;
850 uses manotypes:hypervisor-epa;
851 uses manotypes:host-epa;
852 uses manotypes:placement-group-input;
857 grouping virtual-link-create-params {
859 description "Name of the Virtual-Link";
860 rwpb:field-inline "true";
861 rwpb:field-string-max 255;
866 rwpb:field-inline "true";
867 rwpb:field-string-max 64;
870 leaf associate-public-ip {
874 leaf vim-network-name {
876 "Name of network in VIM account. This is used to indicate
877 pre-provisioned network name in cloud account.";
881 uses manotypes:provider-network;
882 uses manotypes:ip-profile-info;
886 augment "/rw-project:project" {
887 container virtual-link-req-params {
888 description "This object defines the parameters required to create a virtual-link";
889 rwpb:msg-new VirtualLinkReqParams;
890 uses virtual-link-create-params;
894 grouping connection-point-type {
897 "Specifies the type of connection point
898 VIRTIO : Use the traditional VIRTIO interface.
899 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
900 SR-IOV : Use SR-IOV interface.
901 E1000 : Emulate E1000 interface.
902 RTL8139 : Emulate RTL8139 interface.
903 PCNET : Emulate PCNET interface.";
906 enum PCI-PASSTHROUGH;
917 grouping vdu-create-params {
919 description "Name of the VDU";
920 rwpb:field-inline "true";
921 rwpb:field-string-max 255;
927 "Specifies the virtual PCI address. Expressed in
928 the following format dddd:dd:dd.d. For example
929 0000:00:12.0. This information can be used to
930 pass as metadata during the VM creation.";
934 uses manotypes:vm-flavor;
935 uses manotypes:guest-epa;
936 uses manotypes:vswitch-epa;
937 uses manotypes:hypervisor-epa;
938 uses manotypes:host-epa;
941 rwpb:field-inline "true";
942 rwpb:field-string-max 64;
947 description "CAL assigned flavor-id for the VDU image";
948 rwpb:field-inline "true";
949 rwpb:field-string-max 64;
954 description "CAL assigned image-id for the VDU image";
955 rwpb:field-inline "true";
956 rwpb:field-string-max 64;
961 description "Image name which can be used to lookup the image-id";
963 rwpb:field-inline "true";
964 rwpb:field-string-max 256;
967 leaf image-checksum {
968 description "Image md5sum checksum used in combination with image name to lookup image-id ";
970 rwpb:field-inline "true";
971 rwpb:field-string-max 32;
974 uses manotypes:placement-group-input;
976 list connection-points {
979 description "Name of the connection point";
982 leaf virtual-link-id {
983 description "CAL assigned resource Id for the Virtual Link";
986 leaf associate-public-ip {
993 "Specifies the virtual PCI address. Expressed in
994 the following format dddd:dd:dd.d. For example
995 0000:00:12.0. This information can be used to
996 pass as metadata during the VM creation.";
1000 leaf security-group {
1001 description "Name of the security group";
1004 leaf port-security-enabled {
1005 description "Enables the port security";
1009 uses connection-point-type;
1014 "Explicit mgmt-network name, otherwise the mgmt-network from
1015 Cloud account is used";
1019 leaf allocate-public-address {
1020 description "If this VDU needs public IP address";
1025 container vdu-init {
1028 "The userdata field for vdu-init should contain
1029 the contents of the script that cloud-init should
1030 invoke when configuring the system. Note that this
1031 script is expected to be in the cloud-config format";
1036 uses manotypes:supplemental-boot-data;
1042 description "Name of the disk-volumes, e.g. vda, vdb etc";
1045 uses manotypes:volume-info;
1049 augment "/rw-project:project" {
1050 container vdu-init-params {
1051 description "This object defines the parameters required to create a VDU";
1052 rwpb:msg-new VDUInitParams;
1053 uses vdu-create-params;
1057 augment "/rw-project:project" {
1058 container vdu-modify-params {
1059 description "This object defines the parameters required to modify VDU";
1060 rwpb:msg-new VDUModifyParams;
1063 description "CAL assigned id for VDU to which this connection point belongs";
1064 rwpb:field-inline "true";
1065 rwpb:field-string-max 64;
1070 description "CAL assigned image-id for the VDU image";
1071 rwpb:field-inline "true";
1072 rwpb:field-string-max 64;
1076 list connection-points-add {
1079 description "Name of the connection point";
1082 leaf virtual-link-id {
1083 description "CAL assigned resource Id for the Virtual Link";
1086 leaf associate-public-ip {
1090 leaf port-security-enabled {
1091 description "Enables the port security";
1095 uses connection-point-type;
1098 list connection-points-remove {
1099 key "connection-point-id";
1100 leaf connection-point-id {
1101 rwpb:field-inline "true";
1102 rwpb:field-string-max 64;
1109 grouping connection-point-info-params {
1110 leaf connection-point-id {
1111 rwpb:field-inline "true";
1112 rwpb:field-string-max 64;
1117 description "Name of the connection point";
1121 leaf virtual-link-id {
1122 description "CAL assigned resource ID of the Virtual-Link";
1123 rwpb:field-inline "true";
1124 rwpb:field-string-max 64;
1129 description "CAL assigned id for VDU to which this connection point belongs";
1130 rwpb:field-inline "true";
1131 rwpb:field-string-max 64;
1136 description "CMP agnostic generic state of the connection point";
1146 rwpb:field-inline "true";
1147 rwpb:field-string-max 64;
1152 rwpb:field-inline "true";
1153 rwpb:field-string-max 64;
1158 rwpb:field-inline "true";
1159 rwpb:field-string-max 48;
1164 grouping virtual-link-info-params {
1166 description "Name of the Virtual-Link";
1167 rwpb:field-inline "true";
1168 rwpb:field-string-max 255;
1173 description "State of the Virtual Link";
1183 leaf virtual-link-id {
1184 description "CAL assigned resource ID of the Virtual-Link";
1185 rwpb:field-inline "true";
1186 rwpb:field-string-max 64;
1190 list connection-points {
1191 key connection-point-id;
1192 uses connection-point-info-params;
1196 rwpb:field-inline "true";
1197 rwpb:field-string-max 64;
1201 uses manotypes:provider-network;
1205 grouping vdu-info-params {
1207 description "CAL assigned id for VDU";
1208 rwpb:field-inline "true";
1209 rwpb:field-string-max 64;
1213 description "Name of the VDU";
1214 rwpb:field-inline "true";
1215 rwpb:field-string-max 255;
1220 description "CAL assigned flavor-id for the VDU image";
1221 rwpb:field-inline "true";
1222 rwpb:field-string-max 64;
1227 description "CAL assigned image-id for the VDU image";
1228 rwpb:field-inline "true";
1229 rwpb:field-string-max 64;
1234 rwpb:field-inline "true";
1235 rwpb:field-string-max 64;
1240 description "State of the VDU";
1250 leaf management-ip {
1251 rwpb:field-inline "true";
1252 rwpb:field-string-max 64;
1257 rwpb:field-inline "true";
1258 rwpb:field-string-max 64;
1262 uses manotypes:vm-flavor;
1263 uses manotypes:guest-epa;
1264 uses manotypes:vswitch-epa;
1265 uses manotypes:hypervisor-epa;
1266 uses manotypes:host-epa;
1267 uses manotypes:placement-group-input;
1269 list connection-points {
1270 key connection-point-id;
1271 uses connection-point-info-params;
1275 description "Console URL from the VIM, if available";
1278 uses manotypes:supplemental-boot-data;
1284 description "Name of the disk-volumes, e.g. vda, vdb etc";
1289 description "CAL assigned volume-id ";
1290 rwpb:field-inline "true";
1291 rwpb:field-string-max 64;
1298 augment "/rw-project:project" {
1299 container vnf-resources {
1300 rwpb:msg-new VNFResources;
1303 list virtual-link-info-list {
1304 rwpb:msg-new VirtualLinkInfoParams;
1306 key virtual-link-id;
1307 uses virtual-link-info-params;
1310 list vdu-info-list {
1311 rwpb:msg-new VDUInfoParams;
1314 uses vdu-info-params;
1320 /* vim: set ts=2:sw=2: */