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";
262 default "rwcal_openstack";
265 leaf-list security-groups {
267 description "Names of the security groups for the VM";
270 leaf dynamic-flavor-support {
275 leaf floating-ip-pool {
277 description "Name of floating IP pool to use for floating IP address assignement";
283 description "Certificate validatation policy in case of SSL/TLS connection";
308 default "rwcal_openmano";
327 default "rwcal-python";
330 leaf dynamic-flavor-support {
339 default "rwcal_cloudsim";
341 leaf dynamic-flavor-support {
347 container cloudsim_proxy {
354 default "rwcal_cloudsimproxy";
356 leaf dynamic-flavor-support {
373 description "Mandatory parameter to indicate openvim tenant name";
382 default "rwcal_openmano_vimconnector";
384 leaf dynamic-flavor-support {
388 container image-management {
389 description " Information required for OpenVim image upload operation";
392 description "Username for host access";
396 description "Password for host access";
399 leaf image-directory-path {
400 description "Name of the directory on the host where image needs to be copied";
402 default "/opt/VNF/images";
409 grouping vm-info-item {
411 rwpb:field-inline "true";
412 rwpb:field-string-max 255;
417 rwpb:field-inline "true";
418 rwpb:field-string-max 64;
423 rwpb:field-inline "true";
424 rwpb:field-string-max 64;
429 rwpb:field-inline "true";
430 rwpb:field-string-max 64;
435 rwpb:field-inline "true";
436 rwpb:field-string-max 64;
441 rwpb:field-inline "true";
442 rwpb:field-string-max 64;
446 leaf availability-zone {
447 rwpb:field-inline "true";
448 rwpb:field-string-max 64;
453 rwpb:field-inline "true";
454 rwpb:field-string-max 64;
459 rwpb:field-inline "true";
460 rwpb:field-string-max 64;
465 rwpb:field-inline "true";
466 rwpb:field-string-max 64;
471 rwpb:field-inline "true";
472 rwpb:field-string-max 64;
476 leaf allocate-public-address {
477 rwpb:field-inline "true";
478 description "If this VM should allocate a floating public IP address";
483 list private-ip-list {
487 rwpb:field-inline "true";
488 rwpb:field-string-max 64;
493 list public-ip-list {
497 rwpb:field-inline "true";
498 rwpb:field-string-max 64;
506 rwpb:field-inline "true";
507 rwpb:field-string-max 64;
515 rwpb:field-inline "true";
516 rwpb:field-string-max 64;
521 container cloud-init {
524 "The userdata field for cloud-init should contain
525 the contents of the script that cloud-init should
526 invoke when configuring the system. Note that this
527 script is expected to be in the cloud-config format";
532 container user_tags {
538 leaf pci_assignement {
552 grouping image-info-item {
563 description "Image URL location";
568 description "Image file descriptor";
577 leaf virtual_size_mbytes {
578 description "Virtual size of the image";
583 description "Format of the Disk";
588 leaf container_format {
589 description "Format of the container";
590 type container-format;
595 description "State of the Image object in CAL";
605 container user-tags {
606 description "User tags associated with Image";
608 rwpb:field-inline "true";
609 rwpb:field-string-max 64;
615 grouping network-info-item {
617 rwpb:field-inline "true";
618 rwpb:field-string-max 64;
623 rwpb:field-inline "true";
624 rwpb:field-string-max 64;
629 rwpb:field-inline "true";
630 rwpb:field-string-max 64;
634 uses manotypes:provider-network;
637 grouping port-info-item {
639 rwpb:field-inline "true";
640 rwpb:field-string-max 255;
645 rwpb:field-inline "true";
646 rwpb:field-string-max 64;
651 rwpb:field-inline "true";
652 rwpb:field-string-max 64;
657 rwpb:field-inline "true";
658 rwpb:field-string-max 64;
663 rwpb:field-inline "true";
664 rwpb:field-string-max 64;
669 rwpb:field-inline "true";
670 rwpb:field-string-max 64;
675 description "Type of the port";
684 choice provider-specific-info {
693 container cloud-accounts {
694 list cloud-account-list {
695 rwpb:msg-new CloudAccount;
705 container vim-resources {
706 rwpb:msg-new VimResources;
710 rwpb:msg-new VMInfoItem;
717 list imageinfo-list {
718 rwpb:msg-new ImageInfoItem;
722 uses image-info-item;
725 list tenantinfo-list {
726 rwpb:msg-new TenantInfoItem;
731 rwpb:field-inline "true";
732 rwpb:field-string-max 64;
737 rwpb:field-inline "true";
738 rwpb:field-string-max 64;
744 rwpb:msg-new UserInfoItem;
749 rwpb:field-inline "true";
750 rwpb:field-string-max 64;
755 rwpb:field-inline "true";
756 rwpb:field-string-max 64;
762 rwpb:msg-new RoleInfoItem;
767 rwpb:field-inline "true";
768 rwpb:field-string-max 64;
773 rwpb:field-inline "true";
774 rwpb:field-string-max 64;
780 rwpb:msg-new HostInfoItem;
785 rwpb:field-inline "true";
786 rwpb:field-string-max 64;
791 rwpb:field-inline "true";
792 rwpb:field-string-max 64;
797 list networkinfo-list {
798 rwpb:msg-new NetworkInfoItem;
802 uses network-info-item;
806 rwpb:msg-new PortInfoItem;
813 list flavorinfo-list {
814 rwpb:msg-new FlavorInfoItem;
819 rwpb:field-inline "true";
820 rwpb:field-string-max 64;
825 rwpb:field-inline "true";
826 rwpb:field-string-max 255;
830 uses manotypes:vm-flavor;
831 uses manotypes:guest-epa;
832 uses manotypes:vswitch-epa;
833 uses manotypes:hypervisor-epa;
834 uses manotypes:host-epa;
835 uses manotypes:placement-group-input;
839 grouping virtual-link-create-params {
841 description "Name of the Virtual-Link";
842 rwpb:field-inline "true";
843 rwpb:field-string-max 255;
848 rwpb:field-inline "true";
849 rwpb:field-string-max 64;
852 leaf associate-public-ip {
856 leaf vim-network-name {
858 "Name of network in VIM account. This is used to indicate
859 pre-provisioned network name in cloud account.";
863 uses manotypes:provider-network;
864 uses manotypes:ip-profile-info;
868 container virtual-link-req-params {
869 description "This object defines the parameters required to create a virtual-link";
870 rwpb:msg-new VirtualLinkReqParams;
871 uses virtual-link-create-params;
875 grouping connection-point-type {
878 "Specifies the type of connection point
879 VIRTIO : Use the traditional VIRTIO interface.
880 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
881 SR-IOV : Use SR-IOV interface.
882 E1000 : Emulate E1000 interface.
883 RTL8139 : Emulate RTL8139 interface.
884 PCNET : Emulate PCNET interface.";
887 enum PCI-PASSTHROUGH;
898 grouping vdu-create-params {
900 description "Name of the VDU";
901 rwpb:field-inline "true";
902 rwpb:field-string-max 255;
908 "Specifies the virtual PCI address. Expressed in
909 the following format dddd:dd:dd.d. For example
910 0000:00:12.0. This information can be used to
911 pass as metadata during the VM creation.";
915 uses manotypes:vm-flavor;
916 uses manotypes:guest-epa;
917 uses manotypes:vswitch-epa;
918 uses manotypes:hypervisor-epa;
919 uses manotypes:host-epa;
922 rwpb:field-inline "true";
923 rwpb:field-string-max 64;
928 description "CAL assigned flavor-id for the VDU image";
929 rwpb:field-inline "true";
930 rwpb:field-string-max 64;
935 description "CAL assigned image-id for the VDU image";
936 rwpb:field-inline "true";
937 rwpb:field-string-max 64;
942 description "Image name which can be used to lookup the image-id";
944 rwpb:field-inline "true";
945 rwpb:field-string-max 256;
948 leaf image-checksum {
949 description "Image md5sum checksum used in combination with image name to lookup image-id ";
951 rwpb:field-inline "true";
952 rwpb:field-string-max 32;
955 uses manotypes:placement-group-input;
957 list connection-points {
960 description "Name of the connection point";
963 leaf virtual-link-id {
964 description "CAL assigned resource Id for the Virtual Link";
967 leaf associate-public-ip {
974 "Specifies the virtual PCI address. Expressed in
975 the following format dddd:dd:dd.d. For example
976 0000:00:12.0. This information can be used to
977 pass as metadata during the VM creation.";
981 leaf security-group {
982 description "Name of the security group";
986 uses connection-point-type;
991 "Explicit mgmt-network name, otherwise the mgmt-network from
992 Cloud account is used";
996 leaf allocate-public-address {
997 description "If this VDU needs public IP address";
1002 container vdu-init {
1005 "The userdata field for vdu-init should contain
1006 the contents of the script that cloud-init should
1007 invoke when configuring the system. Note that this
1008 script is expected to be in the cloud-config format";
1017 description "Name of the disk-volumes, e.g. vda, vdb etc";
1020 uses manotypes:volume-info;
1024 container vdu-init-params {
1025 description "This object defines the parameters required to create a VDU";
1026 rwpb:msg-new VDUInitParams;
1027 uses vdu-create-params;
1030 container vdu-modify-params {
1031 description "This object defines the parameters required to modify VDU";
1032 rwpb:msg-new VDUModifyParams;
1035 description "CAL assigned id for VDU to which this connection point belongs";
1036 rwpb:field-inline "true";
1037 rwpb:field-string-max 64;
1042 description "CAL assigned image-id for the VDU image";
1043 rwpb:field-inline "true";
1044 rwpb:field-string-max 64;
1048 list connection-points-add {
1051 description "Name of the connection point";
1054 leaf virtual-link-id {
1055 description "CAL assigned resource Id for the Virtual Link";
1058 leaf associate-public-ip {
1063 uses connection-point-type;
1066 list connection-points-remove {
1067 key "connection-point-id";
1068 leaf connection-point-id {
1069 rwpb:field-inline "true";
1070 rwpb:field-string-max 64;
1076 grouping connection-point-info-params {
1077 leaf connection-point-id {
1078 rwpb:field-inline "true";
1079 rwpb:field-string-max 64;
1084 description "Name of the connection point";
1088 leaf virtual-link-id {
1089 description "CAL assigned resource ID of the Virtual-Link";
1090 rwpb:field-inline "true";
1091 rwpb:field-string-max 64;
1096 description "CAL assigned id for VDU to which this connection point belongs";
1097 rwpb:field-inline "true";
1098 rwpb:field-string-max 64;
1103 description "CMP agnostic generic state of the connection point";
1113 rwpb:field-inline "true";
1114 rwpb:field-string-max 64;
1119 rwpb:field-inline "true";
1120 rwpb:field-string-max 64;
1125 grouping virtual-link-info-params {
1127 description "Name of the Virtual-Link";
1128 rwpb:field-inline "true";
1129 rwpb:field-string-max 255;
1134 description "State of the Virtual Link";
1144 leaf virtual-link-id {
1145 description "CAL assigned resource ID of the Virtual-Link";
1146 rwpb:field-inline "true";
1147 rwpb:field-string-max 64;
1151 list connection-points {
1152 key connection-point-id;
1153 uses connection-point-info-params;
1157 rwpb:field-inline "true";
1158 rwpb:field-string-max 64;
1162 uses manotypes:provider-network;
1166 grouping vdu-info-params {
1168 description "CAL assigned id for VDU";
1169 rwpb:field-inline "true";
1170 rwpb:field-string-max 64;
1174 description "Name of the VDU";
1175 rwpb:field-inline "true";
1176 rwpb:field-string-max 255;
1181 description "CAL assigned flavor-id for the VDU image";
1182 rwpb:field-inline "true";
1183 rwpb:field-string-max 64;
1188 description "CAL assigned image-id for the VDU image";
1189 rwpb:field-inline "true";
1190 rwpb:field-string-max 64;
1195 rwpb:field-inline "true";
1196 rwpb:field-string-max 64;
1201 description "State of the VDU";
1211 leaf management-ip {
1212 rwpb:field-inline "true";
1213 rwpb:field-string-max 64;
1218 rwpb:field-inline "true";
1219 rwpb:field-string-max 64;
1223 uses manotypes:vm-flavor;
1224 uses manotypes:guest-epa;
1225 uses manotypes:vswitch-epa;
1226 uses manotypes:hypervisor-epa;
1227 uses manotypes:host-epa;
1228 uses manotypes:placement-group-input;
1230 list connection-points {
1231 key connection-point-id;
1232 uses connection-point-info-params;
1236 description "Console URL from the VIM, if available";
1243 description "Name of the disk-volumes, e.g. vda, vdb etc";
1248 description "CAL assigned volume-id ";
1249 rwpb:field-inline "true";
1250 rwpb:field-string-max 64;
1258 container vnf-resources {
1259 rwpb:msg-new VNFResources;
1262 list virtual-link-info-list {
1263 rwpb:msg-new VirtualLinkInfoParams;
1265 key virtual-link-id;
1266 uses virtual-link-info-params;
1269 list vdu-info-list {
1270 rwpb:msg-new VDUInfoParams;
1273 uses vdu-info-params;
1278 /* vim: set ts=2:sw=2: */