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 {
251 default "rwcal_openstack";
254 leaf-list security-groups {
256 description "Names of the security groups for the VM";
259 leaf dynamic-flavor-support {
264 leaf floating-ip-pool {
266 description "Name of floating IP pool to use for floating IP address assignement";
272 description "Certificate validatation policy in case of SSL/TLS connection";
297 default "rwcal_openmano";
316 default "rwcal-python";
319 leaf dynamic-flavor-support {
328 default "rwcal_cloudsim";
330 leaf dynamic-flavor-support {
336 container cloudsim_proxy {
343 default "rwcal_cloudsimproxy";
345 leaf dynamic-flavor-support {
362 description "Mandatory parameter to indicate openvim tenant name";
371 default "rwcal_openmano_vimconnector";
373 leaf dynamic-flavor-support {
377 container image-management {
378 description " Information required for OpenVim image upload operation";
381 description "Username for host access";
385 description "Password for host access";
388 leaf image-directory-path {
389 description "Name of the directory on the host where image needs to be copied";
391 default "/opt/VNF/images";
398 grouping vm-info-item {
400 rwpb:field-inline "true";
401 rwpb:field-string-max 255;
406 rwpb:field-inline "true";
407 rwpb:field-string-max 64;
412 rwpb:field-inline "true";
413 rwpb:field-string-max 64;
418 rwpb:field-inline "true";
419 rwpb:field-string-max 64;
424 rwpb:field-inline "true";
425 rwpb:field-string-max 64;
430 rwpb:field-inline "true";
431 rwpb:field-string-max 64;
435 leaf availability-zone {
436 rwpb:field-inline "true";
437 rwpb:field-string-max 64;
442 rwpb:field-inline "true";
443 rwpb:field-string-max 64;
448 rwpb:field-inline "true";
449 rwpb:field-string-max 64;
454 rwpb:field-inline "true";
455 rwpb:field-string-max 64;
460 rwpb:field-inline "true";
461 rwpb:field-string-max 64;
465 leaf allocate-public-address {
466 rwpb:field-inline "true";
467 description "If this VM should allocate a floating public IP address";
472 list private-ip-list {
476 rwpb:field-inline "true";
477 rwpb:field-string-max 64;
482 list public-ip-list {
486 rwpb:field-inline "true";
487 rwpb:field-string-max 64;
495 rwpb:field-inline "true";
496 rwpb:field-string-max 64;
504 rwpb:field-inline "true";
505 rwpb:field-string-max 64;
510 container cloud-init {
513 "The userdata field for cloud-init should contain
514 the contents of the script that cloud-init should
515 invoke when configuring the system. Note that this
516 script is expected to be in the cloud-config format";
521 container user_tags {
527 leaf pci_assignement {
541 grouping image-info-item {
552 description "Image URL location";
557 description "Image file descriptor";
566 leaf virtual_size_mbytes {
567 description "Virtual size of the image";
572 description "Format of the Disk";
577 leaf container_format {
578 description "Format of the container";
579 type container-format;
584 description "State of the Image object in CAL";
594 container user-tags {
595 description "User tags associated with Image";
597 rwpb:field-inline "true";
598 rwpb:field-string-max 64;
604 grouping network-info-item {
606 rwpb:field-inline "true";
607 rwpb:field-string-max 64;
612 rwpb:field-inline "true";
613 rwpb:field-string-max 64;
618 rwpb:field-inline "true";
619 rwpb:field-string-max 64;
623 uses manotypes:provider-network;
626 grouping port-info-item {
628 rwpb:field-inline "true";
629 rwpb:field-string-max 255;
634 rwpb:field-inline "true";
635 rwpb:field-string-max 64;
640 rwpb:field-inline "true";
641 rwpb:field-string-max 64;
646 rwpb:field-inline "true";
647 rwpb:field-string-max 64;
652 rwpb:field-inline "true";
653 rwpb:field-string-max 64;
658 rwpb:field-inline "true";
659 rwpb:field-string-max 64;
664 description "Type of the port";
673 choice provider-specific-info {
682 container cloud-accounts {
683 list cloud-account-list {
684 rwpb:msg-new CloudAccount;
694 container vim-resources {
695 rwpb:msg-new VimResources;
699 rwpb:msg-new VMInfoItem;
706 list imageinfo-list {
707 rwpb:msg-new ImageInfoItem;
711 uses image-info-item;
714 list tenantinfo-list {
715 rwpb:msg-new TenantInfoItem;
720 rwpb:field-inline "true";
721 rwpb:field-string-max 64;
726 rwpb:field-inline "true";
727 rwpb:field-string-max 64;
733 rwpb:msg-new UserInfoItem;
738 rwpb:field-inline "true";
739 rwpb:field-string-max 64;
744 rwpb:field-inline "true";
745 rwpb:field-string-max 64;
751 rwpb:msg-new RoleInfoItem;
756 rwpb:field-inline "true";
757 rwpb:field-string-max 64;
762 rwpb:field-inline "true";
763 rwpb:field-string-max 64;
769 rwpb:msg-new HostInfoItem;
774 rwpb:field-inline "true";
775 rwpb:field-string-max 64;
780 rwpb:field-inline "true";
781 rwpb:field-string-max 64;
786 list networkinfo-list {
787 rwpb:msg-new NetworkInfoItem;
791 uses network-info-item;
795 rwpb:msg-new PortInfoItem;
802 list flavorinfo-list {
803 rwpb:msg-new FlavorInfoItem;
808 rwpb:field-inline "true";
809 rwpb:field-string-max 64;
814 rwpb:field-inline "true";
815 rwpb:field-string-max 255;
819 uses manotypes:vm-flavor;
820 uses manotypes:guest-epa;
821 uses manotypes:vswitch-epa;
822 uses manotypes:hypervisor-epa;
823 uses manotypes:host-epa;
824 uses manotypes:placement-group-input;
828 grouping virtual-link-create-params {
830 description "Name of the Virtual-Link";
831 rwpb:field-inline "true";
832 rwpb:field-string-max 255;
837 rwpb:field-inline "true";
838 rwpb:field-string-max 64;
841 leaf associate-public-ip {
845 leaf vim-network-name {
847 "Name of network in VIM account. This is used to indicate
848 pre-provisioned network name in cloud account.";
852 uses manotypes:provider-network;
853 uses manotypes:ip-profile-info;
857 container virtual-link-req-params {
858 description "This object defines the parameters required to create a virtual-link";
859 rwpb:msg-new VirtualLinkReqParams;
860 uses virtual-link-create-params;
864 grouping connection-point-type {
867 "Specifies the type of connection point
868 VIRTIO : Use the traditional VIRTIO interface.
869 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
870 SR-IOV : Use SR-IOV interface.";
873 enum PCI-PASSTHROUGH;
881 grouping vdu-create-params {
883 description "Name of the VDU";
884 rwpb:field-inline "true";
885 rwpb:field-string-max 255;
891 "Specifies the virtual PCI address. Expressed in
892 the following format dddd:dd:dd.d. For example
893 0000:00:12.0. This information can be used to
894 pass as metadata during the VM creation.";
898 uses manotypes:vm-flavor;
899 uses manotypes:guest-epa;
900 uses manotypes:vswitch-epa;
901 uses manotypes:hypervisor-epa;
902 uses manotypes:host-epa;
905 rwpb:field-inline "true";
906 rwpb:field-string-max 64;
911 description "CAL assigned flavor-id for the VDU image";
912 rwpb:field-inline "true";
913 rwpb:field-string-max 64;
918 description "CAL assigned image-id for the VDU image";
919 rwpb:field-inline "true";
920 rwpb:field-string-max 64;
925 description "Image name which can be used to lookup the image-id";
927 rwpb:field-inline "true";
928 rwpb:field-string-max 256;
931 leaf image-checksum {
932 description "Image md5sum checksum used in combination with image name to lookup image-id ";
934 rwpb:field-inline "true";
935 rwpb:field-string-max 32;
938 uses manotypes:placement-group-input;
940 list connection-points {
943 description "Name of the connection point";
946 leaf virtual-link-id {
947 description "CAL assigned resource Id for the Virtual Link";
950 leaf associate-public-ip {
957 "Specifies the virtual PCI address. Expressed in
958 the following format dddd:dd:dd.d. For example
959 0000:00:12.0. This information can be used to
960 pass as metadata during the VM creation.";
964 leaf security-group {
965 description "Name of the security group";
969 uses connection-point-type;
972 leaf allocate-public-address {
973 description "If this VDU needs public IP address";
981 "The userdata field for vdu-init should contain
982 the contents of the script that cloud-init should
983 invoke when configuring the system. Note that this
984 script is expected to be in the cloud-config format";
990 container vdu-init-params {
991 description "This object defines the parameters required to create a VDU";
992 rwpb:msg-new VDUInitParams;
993 uses vdu-create-params;
996 container vdu-modify-params {
997 description "This object defines the parameters required to modify VDU";
998 rwpb:msg-new VDUModifyParams;
1001 description "CAL assigned id for VDU to which this connection point belongs";
1002 rwpb:field-inline "true";
1003 rwpb:field-string-max 64;
1008 description "CAL assigned image-id for the VDU image";
1009 rwpb:field-inline "true";
1010 rwpb:field-string-max 64;
1014 list connection-points-add {
1017 description "Name of the connection point";
1020 leaf virtual-link-id {
1021 description "CAL assigned resource Id for the Virtual Link";
1024 leaf associate-public-ip {
1029 uses connection-point-type;
1032 list connection-points-remove {
1033 key "connection-point-id";
1034 leaf connection-point-id {
1035 rwpb:field-inline "true";
1036 rwpb:field-string-max 64;
1042 grouping connection-point-info-params {
1043 leaf connection-point-id {
1044 rwpb:field-inline "true";
1045 rwpb:field-string-max 64;
1050 description "Name of the connection point";
1054 leaf virtual-link-id {
1055 description "CAL assigned resource ID of the Virtual-Link";
1056 rwpb:field-inline "true";
1057 rwpb:field-string-max 64;
1062 description "CAL assigned id for VDU to which this connection point belongs";
1063 rwpb:field-inline "true";
1064 rwpb:field-string-max 64;
1069 description "CMP agnostic generic state of the connection point";
1079 rwpb:field-inline "true";
1080 rwpb:field-string-max 64;
1085 rwpb:field-inline "true";
1086 rwpb:field-string-max 64;
1091 grouping virtual-link-info-params {
1093 description "Name of the Virtual-Link";
1094 rwpb:field-inline "true";
1095 rwpb:field-string-max 255;
1100 description "State of the Virtual Link";
1110 leaf virtual-link-id {
1111 description "CAL assigned resource ID of the Virtual-Link";
1112 rwpb:field-inline "true";
1113 rwpb:field-string-max 64;
1117 list connection-points {
1118 key connection-point-id;
1119 uses connection-point-info-params;
1123 rwpb:field-inline "true";
1124 rwpb:field-string-max 64;
1128 uses manotypes:provider-network;
1132 grouping vdu-info-params {
1134 description "CAL assigned id for VDU";
1135 rwpb:field-inline "true";
1136 rwpb:field-string-max 64;
1140 description "Name of the VDU";
1141 rwpb:field-inline "true";
1142 rwpb:field-string-max 255;
1147 description "CAL assigned flavor-id for the VDU image";
1148 rwpb:field-inline "true";
1149 rwpb:field-string-max 64;
1154 description "CAL assigned image-id for the VDU image";
1155 rwpb:field-inline "true";
1156 rwpb:field-string-max 64;
1161 rwpb:field-inline "true";
1162 rwpb:field-string-max 64;
1167 description "State of the VDU";
1177 leaf management-ip {
1178 rwpb:field-inline "true";
1179 rwpb:field-string-max 64;
1184 rwpb:field-inline "true";
1185 rwpb:field-string-max 64;
1189 uses manotypes:vm-flavor;
1190 uses manotypes:guest-epa;
1191 uses manotypes:vswitch-epa;
1192 uses manotypes:hypervisor-epa;
1193 uses manotypes:host-epa;
1194 uses manotypes:placement-group-input;
1196 list connection-points {
1197 key connection-point-id;
1198 uses connection-point-info-params;
1202 description "Console URL from the VIM, if available";
1206 container vnf-resources {
1207 rwpb:msg-new VNFResources;
1210 list virtual-link-info-list {
1211 rwpb:msg-new VirtualLinkInfoParams;
1213 key virtual-link-id;
1214 uses virtual-link-info-params;
1217 list vdu-info-list {
1218 rwpb:msg-new VDUInfoParams;
1221 uses vdu-info-params;
1226 /* vim: set ts=2:sw=2: */