4 * Copyright 2016 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 {
46 import ietf-inet-types {
54 "RIFT RWCAL cloud data";
58 typedef connection-status {
59 description "Connection status for the cloud account";
82 typedef container-format {
92 grouping connection-status {
93 container connection-status {
95 rwpb:msg-new CloudConnectionStatus;
97 type connection-status;
105 uses connection-status;
107 typedef sdn-account-type {
108 description "SDN account type";
116 grouping sdn-provider-auth {
118 type sdn-account-type;
121 choice provider-specific-info {
147 default "rwsdn_mock";
163 grouping provider-auth {
165 type manotypes:cloud-account-type;
168 choice provider-specific-info {
175 default "rwcal_mock";
177 leaf dynamic-flavor-support {
195 description "VPC ID to use to instantiate EC2 instances";
199 description "Key pair name to connect to EC2 instance";
202 leaf availability-zone {
203 description "Availability zone where EC2 instance should
207 leaf default-subnet-id {
208 description "Default subnet ID to create network
209 interface at instance creation time";
216 leaf dynamic-flavor-support {
222 container openstack {
255 default "rwcal_openstack";
258 leaf-list security-groups {
260 description "Names of the security groups for the VM";
263 leaf dynamic-flavor-support {
268 leaf floating-ip-pool {
270 description "Name of floating IP pool to use for floating IP address assignement";
276 description "Certificate validatation policy in case of SSL/TLS connection";
301 default "rwcal_openmano";
320 default "rwcal-python";
323 leaf dynamic-flavor-support {
332 default "rwcal_cloudsim";
334 leaf dynamic-flavor-support {
340 container cloudsim_proxy {
347 default "rwcal_cloudsimproxy";
349 leaf dynamic-flavor-support {
366 description "Mandatory parameter to indicate openvim tenant name";
375 default "rwcal_openmano_vimconnector";
377 leaf dynamic-flavor-support {
381 container image-management {
382 description " Information required for OpenVim image upload operation";
385 description "Username for host access";
389 description "Password for host access";
392 leaf image-directory-path {
393 description "Name of the directory on the host where image needs to be copied";
395 default "/opt/VNF/images";
402 grouping vm-info-item {
404 rwpb:field-inline "true";
405 rwpb:field-string-max 255;
410 rwpb:field-inline "true";
411 rwpb:field-string-max 64;
416 rwpb:field-inline "true";
417 rwpb:field-string-max 64;
422 rwpb:field-inline "true";
423 rwpb:field-string-max 64;
428 rwpb:field-inline "true";
429 rwpb:field-string-max 64;
434 rwpb:field-inline "true";
435 rwpb:field-string-max 64;
439 leaf availability-zone {
440 rwpb:field-inline "true";
441 rwpb:field-string-max 64;
446 rwpb:field-inline "true";
447 rwpb:field-string-max 64;
452 rwpb:field-inline "true";
453 rwpb:field-string-max 64;
458 rwpb:field-inline "true";
459 rwpb:field-string-max 64;
464 rwpb:field-inline "true";
465 rwpb:field-string-max 64;
469 leaf allocate-public-address {
470 rwpb:field-inline "true";
471 description "If this VM should allocate a floating public IP address";
476 list private-ip-list {
480 rwpb:field-inline "true";
481 rwpb:field-string-max 64;
486 list public-ip-list {
490 rwpb:field-inline "true";
491 rwpb:field-string-max 64;
499 rwpb:field-inline "true";
500 rwpb:field-string-max 64;
508 rwpb:field-inline "true";
509 rwpb:field-string-max 64;
514 container cloud-init {
517 "The userdata field for cloud-init should contain
518 the contents of the script that cloud-init should
519 invoke when configuring the system. Note that this
520 script is expected to be in the cloud-config format";
525 container user_tags {
531 leaf pci_assignement {
545 grouping image-info-item {
556 description "Image URL location";
561 description "Image file descriptor";
570 leaf virtual_size_mbytes {
571 description "Virtual size of the image";
576 description "Format of the Disk";
581 leaf container_format {
582 description "Format of the container";
583 type container-format;
588 description "State of the Image object in CAL";
598 container user-tags {
599 description "User tags associated with Image";
601 rwpb:field-inline "true";
602 rwpb:field-string-max 64;
608 grouping network-info-item {
610 rwpb:field-inline "true";
611 rwpb:field-string-max 64;
616 rwpb:field-inline "true";
617 rwpb:field-string-max 64;
622 rwpb:field-inline "true";
623 rwpb:field-string-max 64;
627 uses manotypes:provider-network;
630 grouping port-info-item {
632 rwpb:field-inline "true";
633 rwpb:field-string-max 255;
638 rwpb:field-inline "true";
639 rwpb:field-string-max 64;
644 rwpb:field-inline "true";
645 rwpb:field-string-max 64;
650 rwpb:field-inline "true";
651 rwpb:field-string-max 64;
656 rwpb:field-inline "true";
657 rwpb:field-string-max 64;
662 rwpb:field-inline "true";
663 rwpb:field-string-max 64;
668 description "Type of the port";
677 choice provider-specific-info {
686 container cloud-accounts {
687 list cloud-account-list {
688 rwpb:msg-new CloudAccount;
698 container vim-resources {
699 rwpb:msg-new VimResources;
703 rwpb:msg-new VMInfoItem;
710 list imageinfo-list {
711 rwpb:msg-new ImageInfoItem;
715 uses image-info-item;
718 list tenantinfo-list {
719 rwpb:msg-new TenantInfoItem;
724 rwpb:field-inline "true";
725 rwpb:field-string-max 64;
730 rwpb:field-inline "true";
731 rwpb:field-string-max 64;
737 rwpb:msg-new UserInfoItem;
742 rwpb:field-inline "true";
743 rwpb:field-string-max 64;
748 rwpb:field-inline "true";
749 rwpb:field-string-max 64;
755 rwpb:msg-new RoleInfoItem;
760 rwpb:field-inline "true";
761 rwpb:field-string-max 64;
766 rwpb:field-inline "true";
767 rwpb:field-string-max 64;
773 rwpb:msg-new HostInfoItem;
778 rwpb:field-inline "true";
779 rwpb:field-string-max 64;
784 rwpb:field-inline "true";
785 rwpb:field-string-max 64;
790 list networkinfo-list {
791 rwpb:msg-new NetworkInfoItem;
795 uses network-info-item;
799 rwpb:msg-new PortInfoItem;
806 list flavorinfo-list {
807 rwpb:msg-new FlavorInfoItem;
812 rwpb:field-inline "true";
813 rwpb:field-string-max 64;
818 rwpb:field-inline "true";
819 rwpb:field-string-max 255;
823 uses manotypes:vm-flavor;
824 uses manotypes:guest-epa;
825 uses manotypes:vswitch-epa;
826 uses manotypes:hypervisor-epa;
827 uses manotypes:host-epa;
828 uses manotypes:placement-group-input;
832 grouping virtual-link-create-params {
834 description "Name of the Virtual-Link";
835 rwpb:field-inline "true";
836 rwpb:field-string-max 255;
841 rwpb:field-inline "true";
842 rwpb:field-string-max 64;
845 leaf associate-public-ip {
849 leaf vim-network-name {
851 "Name of network in VIM account. This is used to indicate
852 pre-provisioned network name in cloud account.";
856 uses manotypes:provider-network;
857 uses manotypes:ip-profile-info;
861 container virtual-link-req-params {
862 description "This object defines the parameters required to create a virtual-link";
863 rwpb:msg-new VirtualLinkReqParams;
864 uses virtual-link-create-params;
868 grouping connection-point-type {
871 "Specifies the type of connection point
872 VIRTIO : Use the traditional VIRTIO interface.
873 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
874 SR-IOV : Use SR-IOV interface.
875 E1000 : Emulate E1000 interface.
876 RTL8139 : Emulate RTL8139 interface.
877 PCNET : Emulate PCNET interface.";
880 enum PCI-PASSTHROUGH;
891 grouping vdu-create-params {
893 description "Name of the VDU";
894 rwpb:field-inline "true";
895 rwpb:field-string-max 255;
901 "Specifies the virtual PCI address. Expressed in
902 the following format dddd:dd:dd.d. For example
903 0000:00:12.0. This information can be used to
904 pass as metadata during the VM creation.";
908 uses manotypes:vm-flavor;
909 uses manotypes:guest-epa;
910 uses manotypes:vswitch-epa;
911 uses manotypes:hypervisor-epa;
912 uses manotypes:host-epa;
915 rwpb:field-inline "true";
916 rwpb:field-string-max 64;
921 description "CAL assigned flavor-id for the VDU image";
922 rwpb:field-inline "true";
923 rwpb:field-string-max 64;
928 description "CAL assigned image-id for the VDU image";
929 rwpb:field-inline "true";
930 rwpb:field-string-max 64;
935 description "Image name which can be used to lookup the image-id";
937 rwpb:field-inline "true";
938 rwpb:field-string-max 256;
941 leaf image-checksum {
942 description "Image md5sum checksum used in combination with image name to lookup image-id ";
944 rwpb:field-inline "true";
945 rwpb:field-string-max 32;
948 uses manotypes:placement-group-input;
950 list connection-points {
953 description "Name of the connection point";
956 leaf virtual-link-id {
957 description "CAL assigned resource Id for the Virtual Link";
960 leaf associate-public-ip {
967 "Specifies the virtual PCI address. Expressed in
968 the following format dddd:dd:dd.d. For example
969 0000:00:12.0. This information can be used to
970 pass as metadata during the VM creation.";
974 leaf security-group {
975 description "Name of the security group";
979 leaf static-ip-address {
980 description "Static IP address for the connection point";
981 type inet:ip-address;
984 uses connection-point-type;
989 "Explicit mgmt-network name, otherwise the mgmt-network from
990 Cloud account is used";
994 leaf allocate-public-address {
995 description "If this VDU needs public IP address";
1000 container vdu-init {
1003 "The userdata field for vdu-init should contain
1004 the contents of the script that cloud-init should
1005 invoke when configuring the system. Note that this
1006 script is expected to be in the cloud-config format";
1015 description "Name of the disk-volumes, e.g. vda, vdb etc";
1018 uses manotypes:volume-info;
1022 container vdu-init-params {
1023 description "This object defines the parameters required to create a VDU";
1024 rwpb:msg-new VDUInitParams;
1025 uses vdu-create-params;
1028 container vdu-modify-params {
1029 description "This object defines the parameters required to modify VDU";
1030 rwpb:msg-new VDUModifyParams;
1033 description "CAL assigned id for VDU to which this connection point belongs";
1034 rwpb:field-inline "true";
1035 rwpb:field-string-max 64;
1040 description "CAL assigned image-id for the VDU image";
1041 rwpb:field-inline "true";
1042 rwpb:field-string-max 64;
1046 list connection-points-add {
1049 description "Name of the connection point";
1052 leaf virtual-link-id {
1053 description "CAL assigned resource Id for the Virtual Link";
1056 leaf associate-public-ip {
1061 leaf static-ip-address {
1062 description "Static IP address for the connection point";
1063 type inet:ip-address;
1066 uses connection-point-type;
1069 list connection-points-remove {
1070 key "connection-point-id";
1071 leaf connection-point-id {
1072 rwpb:field-inline "true";
1073 rwpb:field-string-max 64;
1079 grouping connection-point-info-params {
1080 leaf connection-point-id {
1081 rwpb:field-inline "true";
1082 rwpb:field-string-max 64;
1087 description "Name of the connection point";
1091 leaf virtual-link-id {
1092 description "CAL assigned resource ID of the Virtual-Link";
1093 rwpb:field-inline "true";
1094 rwpb:field-string-max 64;
1099 description "CAL assigned id for VDU to which this connection point belongs";
1100 rwpb:field-inline "true";
1101 rwpb:field-string-max 64;
1106 description "CMP agnostic generic state of the connection point";
1116 rwpb:field-inline "true";
1117 rwpb:field-string-max 64;
1122 rwpb:field-inline "true";
1123 rwpb:field-string-max 64;
1128 grouping virtual-link-info-params {
1130 description "Name of the Virtual-Link";
1131 rwpb:field-inline "true";
1132 rwpb:field-string-max 255;
1137 description "State of the Virtual Link";
1147 leaf virtual-link-id {
1148 description "CAL assigned resource ID of the Virtual-Link";
1149 rwpb:field-inline "true";
1150 rwpb:field-string-max 64;
1154 list connection-points {
1155 key connection-point-id;
1156 uses connection-point-info-params;
1160 rwpb:field-inline "true";
1161 rwpb:field-string-max 64;
1165 uses manotypes:provider-network;
1169 grouping vdu-info-params {
1171 description "CAL assigned id for VDU";
1172 rwpb:field-inline "true";
1173 rwpb:field-string-max 64;
1177 description "Name of the VDU";
1178 rwpb:field-inline "true";
1179 rwpb:field-string-max 255;
1184 description "CAL assigned flavor-id for the VDU image";
1185 rwpb:field-inline "true";
1186 rwpb:field-string-max 64;
1191 description "CAL assigned image-id for the VDU image";
1192 rwpb:field-inline "true";
1193 rwpb:field-string-max 64;
1198 rwpb:field-inline "true";
1199 rwpb:field-string-max 64;
1204 description "State of the VDU";
1214 leaf management-ip {
1215 rwpb:field-inline "true";
1216 rwpb:field-string-max 64;
1221 rwpb:field-inline "true";
1222 rwpb:field-string-max 64;
1226 uses manotypes:vm-flavor;
1227 uses manotypes:guest-epa;
1228 uses manotypes:vswitch-epa;
1229 uses manotypes:hypervisor-epa;
1230 uses manotypes:host-epa;
1231 uses manotypes:placement-group-input;
1233 list connection-points {
1234 key connection-point-id;
1235 uses connection-point-info-params;
1239 description "Console URL from the VIM, if available";
1246 description "Name of the disk-volumes, e.g. vda, vdb etc";
1251 description "CAL assigned volume-id ";
1252 rwpb:field-inline "true";
1253 rwpb:field-string-max 64;
1261 container vnf-resources {
1262 rwpb:msg-new VNFResources;
1265 list virtual-link-info-list {
1266 rwpb:msg-new VirtualLinkInfoParams;
1268 key virtual-link-id;
1269 uses virtual-link-info-params;
1272 list vdu-info-list {
1273 rwpb:msg-new VDUInfoParams;
1276 uses vdu-info-params;
1281 /* vim: set ts=2:sw=2: */