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";
985 leaf port-security-enabled {
986 description "Enables the port security";
990 uses connection-point-type;
995 "Explicit mgmt-network name, otherwise the mgmt-network from
996 Cloud account is used";
1000 leaf allocate-public-address {
1001 description "If this VDU needs public IP address";
1006 container vdu-init {
1009 "The userdata field for vdu-init should contain
1010 the contents of the script that cloud-init should
1011 invoke when configuring the system. Note that this
1012 script is expected to be in the cloud-config format";
1017 uses manotypes:supplemental-boot-data;
1023 description "Name of the disk-volumes, e.g. vda, vdb etc";
1026 uses manotypes:volume-info;
1030 container vdu-init-params {
1031 description "This object defines the parameters required to create a VDU";
1032 rwpb:msg-new VDUInitParams;
1033 uses vdu-create-params;
1036 container vdu-modify-params {
1037 description "This object defines the parameters required to modify VDU";
1038 rwpb:msg-new VDUModifyParams;
1041 description "CAL assigned id for VDU to which this connection point belongs";
1042 rwpb:field-inline "true";
1043 rwpb:field-string-max 64;
1048 description "CAL assigned image-id for the VDU image";
1049 rwpb:field-inline "true";
1050 rwpb:field-string-max 64;
1054 list connection-points-add {
1057 description "Name of the connection point";
1060 leaf virtual-link-id {
1061 description "CAL assigned resource Id for the Virtual Link";
1064 leaf associate-public-ip {
1068 leaf port-security-enabled {
1069 description "Enables the port security";
1073 uses connection-point-type;
1076 list connection-points-remove {
1077 key "connection-point-id";
1078 leaf connection-point-id {
1079 rwpb:field-inline "true";
1080 rwpb:field-string-max 64;
1086 grouping connection-point-info-params {
1087 leaf connection-point-id {
1088 rwpb:field-inline "true";
1089 rwpb:field-string-max 64;
1094 description "Name of the connection point";
1098 leaf virtual-link-id {
1099 description "CAL assigned resource ID of the Virtual-Link";
1100 rwpb:field-inline "true";
1101 rwpb:field-string-max 64;
1106 description "CAL assigned id for VDU to which this connection point belongs";
1107 rwpb:field-inline "true";
1108 rwpb:field-string-max 64;
1113 description "CMP agnostic generic state of the connection point";
1123 rwpb:field-inline "true";
1124 rwpb:field-string-max 64;
1129 rwpb:field-inline "true";
1130 rwpb:field-string-max 64;
1135 rwpb:field-inline "true";
1136 rwpb:field-string-max 48;
1141 grouping virtual-link-info-params {
1143 description "Name of the Virtual-Link";
1144 rwpb:field-inline "true";
1145 rwpb:field-string-max 255;
1150 description "State of the Virtual Link";
1160 leaf virtual-link-id {
1161 description "CAL assigned resource ID of the Virtual-Link";
1162 rwpb:field-inline "true";
1163 rwpb:field-string-max 64;
1167 list connection-points {
1168 key connection-point-id;
1169 uses connection-point-info-params;
1173 rwpb:field-inline "true";
1174 rwpb:field-string-max 64;
1178 uses manotypes:provider-network;
1182 grouping vdu-info-params {
1184 description "CAL assigned id for VDU";
1185 rwpb:field-inline "true";
1186 rwpb:field-string-max 64;
1190 description "Name of the VDU";
1191 rwpb:field-inline "true";
1192 rwpb:field-string-max 255;
1197 description "CAL assigned flavor-id for the VDU image";
1198 rwpb:field-inline "true";
1199 rwpb:field-string-max 64;
1204 description "CAL assigned image-id for the VDU image";
1205 rwpb:field-inline "true";
1206 rwpb:field-string-max 64;
1211 rwpb:field-inline "true";
1212 rwpb:field-string-max 64;
1217 description "State of the VDU";
1227 leaf management-ip {
1228 rwpb:field-inline "true";
1229 rwpb:field-string-max 64;
1234 rwpb:field-inline "true";
1235 rwpb:field-string-max 64;
1239 uses manotypes:vm-flavor;
1240 uses manotypes:guest-epa;
1241 uses manotypes:vswitch-epa;
1242 uses manotypes:hypervisor-epa;
1243 uses manotypes:host-epa;
1244 uses manotypes:placement-group-input;
1246 list connection-points {
1247 key connection-point-id;
1248 uses connection-point-info-params;
1252 description "Console URL from the VIM, if available";
1255 uses manotypes:supplemental-boot-data;
1261 description "Name of the disk-volumes, e.g. vda, vdb etc";
1266 description "CAL assigned volume-id ";
1267 rwpb:field-inline "true";
1268 rwpb:field-string-max 64;
1275 container vnf-resources {
1276 rwpb:msg-new VNFResources;
1279 list virtual-link-info-list {
1280 rwpb:msg-new VirtualLinkInfoParams;
1282 key virtual-link-id;
1283 uses virtual-link-info-params;
1286 list vdu-info-list {
1287 rwpb:msg-new VDUInfoParams;
1290 uses vdu-info-params;
1295 /* vim: set ts=2:sw=2: */