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 {
50 "RIFT RWCAL cloud data";
54 typedef connection-status {
55 description "Connection status for the cloud account";
78 typedef container-format {
88 grouping connection-status {
89 container connection-status {
91 rwpb:msg-new CloudConnectionStatus;
93 type connection-status;
101 uses connection-status;
103 typedef sdn-account-type {
104 description "SDN account type";
112 grouping sdn-provider-auth {
114 type sdn-account-type;
117 choice provider-specific-info {
143 default "rwsdn_mock";
159 grouping provider-auth {
161 type manotypes:cloud-account-type;
164 choice provider-specific-info {
171 default "rwcal_mock";
173 leaf dynamic-flavor-support {
191 description "VPC ID to use to instantiate EC2 instances";
195 description "Key pair name to connect to EC2 instance";
198 leaf availability-zone {
199 description "Availability zone where EC2 instance should
203 leaf default-subnet-id {
204 description "Default subnet ID to create network
205 interface at instance creation time";
212 leaf dynamic-flavor-support {
218 container openstack {
237 description "Domain of the OpenStack user";
239 leaf project-domain {
242 description "Domain of the OpenStack project";
267 default "rwcal_openstack";
270 leaf-list security-groups {
272 description "Names of the security groups for the VM";
275 leaf dynamic-flavor-support {
280 leaf floating-ip-pool {
282 description "Name of floating IP pool to use for floating IP address assignement";
288 description "Certificate validatation policy in case of SSL/TLS connection";
313 default "rwcal_openmano";
332 default "rwcal-python";
335 leaf dynamic-flavor-support {
344 default "rwcal_cloudsim";
346 leaf dynamic-flavor-support {
352 container cloudsim_proxy {
359 default "rwcal_cloudsimproxy";
361 leaf dynamic-flavor-support {
378 description "Mandatory parameter to indicate openvim tenant name";
387 default "rwcal_openmano_vimconnector";
389 leaf dynamic-flavor-support {
393 container image-management {
394 description " Information required for OpenVim image upload operation";
397 description "Username for host access";
401 description "Password for host access";
404 leaf image-directory-path {
405 description "Name of the directory on the host where image needs to be copied";
407 default "/opt/VNF/images";
414 grouping vm-info-item {
416 rwpb:field-inline "true";
417 rwpb:field-string-max 255;
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;
440 rwpb:field-inline "true";
441 rwpb:field-string-max 64;
446 rwpb:field-inline "true";
447 rwpb:field-string-max 64;
451 leaf availability-zone {
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;
470 rwpb:field-inline "true";
471 rwpb:field-string-max 64;
476 rwpb:field-inline "true";
477 rwpb:field-string-max 64;
481 leaf allocate-public-address {
482 rwpb:field-inline "true";
483 description "If this VM should allocate a floating public IP address";
488 list private-ip-list {
492 rwpb:field-inline "true";
493 rwpb:field-string-max 64;
498 list public-ip-list {
502 rwpb:field-inline "true";
503 rwpb:field-string-max 64;
511 rwpb:field-inline "true";
512 rwpb:field-string-max 64;
520 rwpb:field-inline "true";
521 rwpb:field-string-max 64;
526 container cloud-init {
529 "The userdata field for cloud-init should contain
530 the contents of the script that cloud-init should
531 invoke when configuring the system. Note that this
532 script is expected to be in the cloud-config format";
537 container user_tags {
543 leaf pci_assignement {
557 grouping image-info-item {
568 description "Image URL location";
573 description "Image file descriptor";
582 leaf virtual_size_mbytes {
583 description "Virtual size of the image";
588 description "Format of the Disk";
593 leaf container_format {
594 description "Format of the container";
595 type container-format;
600 description "State of the Image object in CAL";
610 container user-tags {
611 description "User tags associated with Image";
613 rwpb:field-inline "true";
614 rwpb:field-string-max 64;
620 grouping network-info-item {
622 rwpb:field-inline "true";
623 rwpb:field-string-max 64;
628 rwpb:field-inline "true";
629 rwpb:field-string-max 64;
634 rwpb:field-inline "true";
635 rwpb:field-string-max 64;
639 uses manotypes:provider-network;
642 grouping port-info-item {
644 rwpb:field-inline "true";
645 rwpb:field-string-max 255;
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 rwpb:field-inline "true";
669 rwpb:field-string-max 64;
674 rwpb:field-inline "true";
675 rwpb:field-string-max 64;
680 description "Type of the port";
689 choice provider-specific-info {
698 container cloud-accounts {
699 list cloud-account-list {
700 rwpb:msg-new CloudAccount;
710 container vim-resources {
711 rwpb:msg-new VimResources;
715 rwpb:msg-new VMInfoItem;
722 list imageinfo-list {
723 rwpb:msg-new ImageInfoItem;
727 uses image-info-item;
730 list tenantinfo-list {
731 rwpb:msg-new TenantInfoItem;
736 rwpb:field-inline "true";
737 rwpb:field-string-max 64;
742 rwpb:field-inline "true";
743 rwpb:field-string-max 64;
749 rwpb:msg-new UserInfoItem;
754 rwpb:field-inline "true";
755 rwpb:field-string-max 64;
760 rwpb:field-inline "true";
761 rwpb:field-string-max 64;
767 rwpb:msg-new RoleInfoItem;
772 rwpb:field-inline "true";
773 rwpb:field-string-max 64;
778 rwpb:field-inline "true";
779 rwpb:field-string-max 64;
785 rwpb:msg-new HostInfoItem;
790 rwpb:field-inline "true";
791 rwpb:field-string-max 64;
796 rwpb:field-inline "true";
797 rwpb:field-string-max 64;
802 list networkinfo-list {
803 rwpb:msg-new NetworkInfoItem;
807 uses network-info-item;
811 rwpb:msg-new PortInfoItem;
818 list flavorinfo-list {
819 rwpb:msg-new FlavorInfoItem;
824 rwpb:field-inline "true";
825 rwpb:field-string-max 64;
830 rwpb:field-inline "true";
831 rwpb:field-string-max 255;
835 uses manotypes:vm-flavor;
836 uses manotypes:guest-epa;
837 uses manotypes:vswitch-epa;
838 uses manotypes:hypervisor-epa;
839 uses manotypes:host-epa;
840 uses manotypes:placement-group-input;
844 grouping virtual-link-create-params {
846 description "Name of the Virtual-Link";
847 rwpb:field-inline "true";
848 rwpb:field-string-max 255;
853 rwpb:field-inline "true";
854 rwpb:field-string-max 64;
857 leaf associate-public-ip {
861 leaf vim-network-name {
863 "Name of network in VIM account. This is used to indicate
864 pre-provisioned network name in cloud account.";
868 uses manotypes:provider-network;
869 uses manotypes:ip-profile-info;
873 container virtual-link-req-params {
874 description "This object defines the parameters required to create a virtual-link";
875 rwpb:msg-new VirtualLinkReqParams;
876 uses virtual-link-create-params;
880 grouping connection-point-type {
883 "Specifies the type of connection point
884 VIRTIO : Use the traditional VIRTIO interface.
885 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
886 SR-IOV : Use SR-IOV interface.
887 E1000 : Emulate E1000 interface.
888 RTL8139 : Emulate RTL8139 interface.
889 PCNET : Emulate PCNET interface.";
892 enum PCI-PASSTHROUGH;
903 grouping vdu-create-params {
905 description "Name of the VDU";
906 rwpb:field-inline "true";
907 rwpb:field-string-max 255;
913 "Specifies the virtual PCI address. Expressed in
914 the following format dddd:dd:dd.d. For example
915 0000:00:12.0. This information can be used to
916 pass as metadata during the VM creation.";
920 uses manotypes:vm-flavor;
921 uses manotypes:guest-epa;
922 uses manotypes:vswitch-epa;
923 uses manotypes:hypervisor-epa;
924 uses manotypes:host-epa;
927 rwpb:field-inline "true";
928 rwpb:field-string-max 64;
933 description "CAL assigned flavor-id for the VDU image";
934 rwpb:field-inline "true";
935 rwpb:field-string-max 64;
940 description "CAL assigned image-id for the VDU image";
941 rwpb:field-inline "true";
942 rwpb:field-string-max 64;
947 description "Image name which can be used to lookup the image-id";
949 rwpb:field-inline "true";
950 rwpb:field-string-max 256;
953 leaf image-checksum {
954 description "Image md5sum checksum used in combination with image name to lookup image-id ";
956 rwpb:field-inline "true";
957 rwpb:field-string-max 32;
960 uses manotypes:placement-group-input;
962 list connection-points {
965 description "Name of the connection point";
968 leaf virtual-link-id {
969 description "CAL assigned resource Id for the Virtual Link";
972 leaf associate-public-ip {
979 "Specifies the virtual PCI address. Expressed in
980 the following format dddd:dd:dd.d. For example
981 0000:00:12.0. This information can be used to
982 pass as metadata during the VM creation.";
986 leaf security-group {
987 description "Name of the security group";
990 leaf port-security-enabled {
991 description "Enables the port security";
995 uses connection-point-type;
1000 "Explicit mgmt-network name, otherwise the mgmt-network from
1001 Cloud account is used";
1005 leaf allocate-public-address {
1006 description "If this VDU needs public IP address";
1011 container vdu-init {
1014 "The userdata field for vdu-init should contain
1015 the contents of the script that cloud-init should
1016 invoke when configuring the system. Note that this
1017 script is expected to be in the cloud-config format";
1022 uses manotypes:supplemental-boot-data;
1028 description "Name of the disk-volumes, e.g. vda, vdb etc";
1031 uses manotypes:volume-info;
1035 container vdu-init-params {
1036 description "This object defines the parameters required to create a VDU";
1037 rwpb:msg-new VDUInitParams;
1038 uses vdu-create-params;
1041 container vdu-modify-params {
1042 description "This object defines the parameters required to modify VDU";
1043 rwpb:msg-new VDUModifyParams;
1046 description "CAL assigned id for VDU to which this connection point belongs";
1047 rwpb:field-inline "true";
1048 rwpb:field-string-max 64;
1053 description "CAL assigned image-id for the VDU image";
1054 rwpb:field-inline "true";
1055 rwpb:field-string-max 64;
1059 list connection-points-add {
1062 description "Name of the connection point";
1065 leaf virtual-link-id {
1066 description "CAL assigned resource Id for the Virtual Link";
1069 leaf associate-public-ip {
1073 leaf port-security-enabled {
1074 description "Enables the port security";
1078 uses connection-point-type;
1081 list connection-points-remove {
1082 key "connection-point-id";
1083 leaf connection-point-id {
1084 rwpb:field-inline "true";
1085 rwpb:field-string-max 64;
1091 grouping connection-point-info-params {
1092 leaf connection-point-id {
1093 rwpb:field-inline "true";
1094 rwpb:field-string-max 64;
1099 description "Name of the connection point";
1103 leaf virtual-link-id {
1104 description "CAL assigned resource ID of the Virtual-Link";
1105 rwpb:field-inline "true";
1106 rwpb:field-string-max 64;
1111 description "CAL assigned id for VDU to which this connection point belongs";
1112 rwpb:field-inline "true";
1113 rwpb:field-string-max 64;
1118 description "CMP agnostic generic state of the connection point";
1128 rwpb:field-inline "true";
1129 rwpb:field-string-max 64;
1134 rwpb:field-inline "true";
1135 rwpb:field-string-max 64;
1140 rwpb:field-inline "true";
1141 rwpb:field-string-max 48;
1146 grouping virtual-link-info-params {
1148 description "Name of the Virtual-Link";
1149 rwpb:field-inline "true";
1150 rwpb:field-string-max 255;
1155 description "State of the Virtual Link";
1165 leaf virtual-link-id {
1166 description "CAL assigned resource ID of the Virtual-Link";
1167 rwpb:field-inline "true";
1168 rwpb:field-string-max 64;
1172 list connection-points {
1173 key connection-point-id;
1174 uses connection-point-info-params;
1178 rwpb:field-inline "true";
1179 rwpb:field-string-max 64;
1183 uses manotypes:provider-network;
1187 grouping vdu-info-params {
1189 description "CAL assigned id for VDU";
1190 rwpb:field-inline "true";
1191 rwpb:field-string-max 64;
1195 description "Name of the VDU";
1196 rwpb:field-inline "true";
1197 rwpb:field-string-max 255;
1202 description "CAL assigned flavor-id for the VDU image";
1203 rwpb:field-inline "true";
1204 rwpb:field-string-max 64;
1209 description "CAL assigned image-id for the VDU image";
1210 rwpb:field-inline "true";
1211 rwpb:field-string-max 64;
1216 rwpb:field-inline "true";
1217 rwpb:field-string-max 64;
1222 description "State of the VDU";
1232 leaf management-ip {
1233 rwpb:field-inline "true";
1234 rwpb:field-string-max 64;
1239 rwpb:field-inline "true";
1240 rwpb:field-string-max 64;
1244 uses manotypes:vm-flavor;
1245 uses manotypes:guest-epa;
1246 uses manotypes:vswitch-epa;
1247 uses manotypes:hypervisor-epa;
1248 uses manotypes:host-epa;
1249 uses manotypes:placement-group-input;
1251 list connection-points {
1252 key connection-point-id;
1253 uses connection-point-info-params;
1257 description "Console URL from the VIM, if available";
1260 uses manotypes:supplemental-boot-data;
1266 description "Name of the disk-volumes, e.g. vda, vdb etc";
1271 description "CAL assigned volume-id ";
1272 rwpb:field-inline "true";
1273 rwpb:field-string-max 64;
1280 container vnf-resources {
1281 rwpb:msg-new VNFResources;
1284 list virtual-link-info-list {
1285 rwpb:msg-new VirtualLinkInfoParams;
1287 key virtual-link-id;
1288 uses virtual-link-info-params;
1291 list vdu-info-list {
1292 rwpb:msg-new VDUInfoParams;
1295 uses vdu-info-params;
1300 /* vim: set ts=2:sw=2: */