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 grouping provider-auth {
105 type manotypes:cloud-account-type;
108 choice provider-specific-info {
115 default "rwcal_mock";
117 leaf dynamic-flavor-support {
135 description "VPC ID to use to instantiate EC2 instances";
139 description "Key pair name to connect to EC2 instance";
142 leaf availability-zone {
143 description "Availability zone where EC2 instance should
147 leaf default-subnet-id {
148 description "Default subnet ID to create network
149 interface at instance creation time";
156 leaf dynamic-flavor-support {
162 container openstack {
181 description "Domain of the OpenStack user";
183 leaf project-domain {
186 description "Domain of the OpenStack project";
211 default "rwcal_openstack";
214 leaf-list security-groups {
216 description "Names of the security groups for the VM";
219 leaf dynamic-flavor-support {
224 leaf floating-ip-pool {
226 description "Name of floating IP pool to use for floating IP address assignement";
232 description "Certificate validatation policy in case of SSL/TLS connection";
257 default "rwcal_openmano";
276 default "rwcal-python";
279 leaf dynamic-flavor-support {
288 default "rwcal_cloudsim";
290 leaf dynamic-flavor-support {
296 container cloudsim_proxy {
303 default "rwcal_cloudsimproxy";
305 leaf dynamic-flavor-support {
322 description "Mandatory parameter to indicate openvim tenant name";
331 default "rwcal_openmano_vimconnector";
333 leaf dynamic-flavor-support {
337 container image-management {
338 description " Information required for OpenVim image upload operation";
341 description "Username for host access";
345 description "Password for host access";
348 leaf image-directory-path {
349 description "Name of the directory on the host where image needs to be copied";
351 default "/opt/VNF/images";
358 grouping vm-info-item {
360 rwpb:field-inline "true";
361 rwpb:field-string-max 255;
366 rwpb:field-inline "true";
367 rwpb:field-string-max 64;
372 rwpb:field-inline "true";
373 rwpb:field-string-max 64;
378 rwpb:field-inline "true";
379 rwpb:field-string-max 64;
384 rwpb:field-inline "true";
385 rwpb:field-string-max 64;
390 rwpb:field-inline "true";
391 rwpb:field-string-max 64;
395 leaf availability-zone {
396 rwpb:field-inline "true";
397 rwpb:field-string-max 64;
402 rwpb:field-inline "true";
403 rwpb:field-string-max 64;
408 rwpb:field-inline "true";
409 rwpb:field-string-max 64;
414 rwpb:field-inline "true";
415 rwpb:field-string-max 64;
420 rwpb:field-inline "true";
421 rwpb:field-string-max 64;
425 leaf allocate-public-address {
426 rwpb:field-inline "true";
427 description "If this VM should allocate a floating public IP address";
432 list private-ip-list {
436 rwpb:field-inline "true";
437 rwpb:field-string-max 64;
442 list public-ip-list {
446 rwpb:field-inline "true";
447 rwpb:field-string-max 64;
455 rwpb:field-inline "true";
456 rwpb:field-string-max 64;
464 rwpb:field-inline "true";
465 rwpb:field-string-max 64;
470 container cloud-init {
473 "The userdata field for cloud-init should contain
474 the contents of the script that cloud-init should
475 invoke when configuring the system. Note that this
476 script is expected to be in the cloud-config format";
481 container user_tags {
487 leaf pci_assignement {
501 grouping image-info-item {
512 description "Image URL location";
517 description "Image file descriptor";
526 leaf virtual_size_mbytes {
527 description "Virtual size of the image";
532 description "Format of the Disk";
537 leaf container_format {
538 description "Format of the container";
539 type container-format;
544 description "State of the Image object in CAL";
554 container user-tags {
555 description "User tags associated with Image";
557 rwpb:field-inline "true";
558 rwpb:field-string-max 64;
564 grouping network-info-item {
566 rwpb:field-inline "true";
567 rwpb:field-string-max 64;
572 rwpb:field-inline "true";
573 rwpb:field-string-max 64;
578 rwpb:field-inline "true";
579 rwpb:field-string-max 64;
583 uses manotypes:provider-network;
586 grouping port-info-item {
588 rwpb:field-inline "true";
589 rwpb:field-string-max 255;
594 rwpb:field-inline "true";
595 rwpb:field-string-max 64;
600 rwpb:field-inline "true";
601 rwpb:field-string-max 64;
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;
624 description "Type of the port";
633 choice provider-specific-info {
642 container cloud-accounts {
643 list cloud-account-list {
644 rwpb:msg-new CloudAccount;
654 container vim-resources {
655 rwpb:msg-new VimResources;
659 rwpb:msg-new VMInfoItem;
666 list imageinfo-list {
667 rwpb:msg-new ImageInfoItem;
671 uses image-info-item;
674 list tenantinfo-list {
675 rwpb:msg-new TenantInfoItem;
680 rwpb:field-inline "true";
681 rwpb:field-string-max 64;
686 rwpb:field-inline "true";
687 rwpb:field-string-max 64;
693 rwpb:msg-new UserInfoItem;
698 rwpb:field-inline "true";
699 rwpb:field-string-max 64;
704 rwpb:field-inline "true";
705 rwpb:field-string-max 64;
711 rwpb:msg-new RoleInfoItem;
716 rwpb:field-inline "true";
717 rwpb:field-string-max 64;
722 rwpb:field-inline "true";
723 rwpb:field-string-max 64;
729 rwpb:msg-new HostInfoItem;
734 rwpb:field-inline "true";
735 rwpb:field-string-max 64;
740 rwpb:field-inline "true";
741 rwpb:field-string-max 64;
746 list networkinfo-list {
747 rwpb:msg-new NetworkInfoItem;
751 uses network-info-item;
755 rwpb:msg-new PortInfoItem;
762 list flavorinfo-list {
763 rwpb:msg-new FlavorInfoItem;
768 rwpb:field-inline "true";
769 rwpb:field-string-max 64;
774 rwpb:field-inline "true";
775 rwpb:field-string-max 255;
779 uses manotypes:vm-flavor;
780 uses manotypes:guest-epa;
781 uses manotypes:vswitch-epa;
782 uses manotypes:hypervisor-epa;
783 uses manotypes:host-epa;
784 uses manotypes:placement-group-input;
788 grouping virtual-link-create-params {
790 description "Name of the Virtual-Link";
791 rwpb:field-inline "true";
792 rwpb:field-string-max 255;
797 rwpb:field-inline "true";
798 rwpb:field-string-max 64;
801 leaf associate-public-ip {
805 leaf vim-network-name {
807 "Name of network in VIM account. This is used to indicate
808 pre-provisioned network name in cloud account.";
812 uses manotypes:provider-network;
813 uses manotypes:ip-profile-info;
817 container virtual-link-req-params {
818 description "This object defines the parameters required to create a virtual-link";
819 rwpb:msg-new VirtualLinkReqParams;
820 uses virtual-link-create-params;
824 grouping connection-point-type {
827 "Specifies the type of connection point
828 VIRTIO : Use the traditional VIRTIO interface.
829 PCI-PASSTHROUGH : Use PCI-PASSTHROUGH interface.
830 SR-IOV : Use SR-IOV interface.
831 E1000 : Emulate E1000 interface.
832 RTL8139 : Emulate RTL8139 interface.
833 PCNET : Emulate PCNET interface.";
836 enum PCI-PASSTHROUGH;
847 grouping vdu-create-params {
849 description "Name of the VDU";
850 rwpb:field-inline "true";
851 rwpb:field-string-max 255;
857 "Specifies the virtual PCI address. Expressed in
858 the following format dddd:dd:dd.d. For example
859 0000:00:12.0. This information can be used to
860 pass as metadata during the VM creation.";
864 uses manotypes:vm-flavor;
865 uses manotypes:guest-epa;
866 uses manotypes:vswitch-epa;
867 uses manotypes:hypervisor-epa;
868 uses manotypes:host-epa;
871 rwpb:field-inline "true";
872 rwpb:field-string-max 64;
877 description "CAL assigned flavor-id for the VDU image";
878 rwpb:field-inline "true";
879 rwpb:field-string-max 64;
884 description "CAL assigned image-id for the VDU image";
885 rwpb:field-inline "true";
886 rwpb:field-string-max 64;
891 description "Image name which can be used to lookup the image-id";
893 rwpb:field-inline "true";
894 rwpb:field-string-max 256;
897 leaf image-checksum {
898 description "Image md5sum checksum used in combination with image name to lookup image-id ";
900 rwpb:field-inline "true";
901 rwpb:field-string-max 32;
904 uses manotypes:placement-group-input;
906 list connection-points {
909 description "Name of the connection point";
912 leaf virtual-link-id {
913 description "CAL assigned resource Id for the Virtual Link";
916 leaf associate-public-ip {
923 "Specifies the virtual PCI address. Expressed in
924 the following format dddd:dd:dd.d. For example
925 0000:00:12.0. This information can be used to
926 pass as metadata during the VM creation.";
930 leaf security-group {
931 description "Name of the security group";
934 leaf port-security-enabled {
935 description "Enables the port security";
939 uses connection-point-type;
944 "Explicit mgmt-network name, otherwise the mgmt-network from
945 Cloud account is used";
949 leaf allocate-public-address {
950 description "If this VDU needs public IP address";
958 "The userdata field for vdu-init should contain
959 the contents of the script that cloud-init should
960 invoke when configuring the system. Note that this
961 script is expected to be in the cloud-config format";
966 uses manotypes:supplemental-boot-data;
972 description "Name of the disk-volumes, e.g. vda, vdb etc";
975 uses manotypes:volume-info;
979 container vdu-init-params {
980 description "This object defines the parameters required to create a VDU";
981 rwpb:msg-new VDUInitParams;
982 uses vdu-create-params;
985 container vdu-modify-params {
986 description "This object defines the parameters required to modify VDU";
987 rwpb:msg-new VDUModifyParams;
990 description "CAL assigned id for VDU to which this connection point belongs";
991 rwpb:field-inline "true";
992 rwpb:field-string-max 64;
997 description "CAL assigned image-id for the VDU image";
998 rwpb:field-inline "true";
999 rwpb:field-string-max 64;
1003 list connection-points-add {
1006 description "Name of the connection point";
1009 leaf virtual-link-id {
1010 description "CAL assigned resource Id for the Virtual Link";
1013 leaf associate-public-ip {
1017 leaf port-security-enabled {
1018 description "Enables the port security";
1022 uses connection-point-type;
1025 list connection-points-remove {
1026 key "connection-point-id";
1027 leaf connection-point-id {
1028 rwpb:field-inline "true";
1029 rwpb:field-string-max 64;
1035 grouping connection-point-info-params {
1036 leaf connection-point-id {
1037 rwpb:field-inline "true";
1038 rwpb:field-string-max 64;
1043 description "Name of the connection point";
1047 leaf virtual-link-id {
1048 description "CAL assigned resource ID of the Virtual-Link";
1049 rwpb:field-inline "true";
1050 rwpb:field-string-max 64;
1055 description "CAL assigned id for VDU to which this connection point belongs";
1056 rwpb:field-inline "true";
1057 rwpb:field-string-max 64;
1062 description "CMP agnostic generic state of the connection point";
1072 rwpb:field-inline "true";
1073 rwpb:field-string-max 64;
1078 rwpb:field-inline "true";
1079 rwpb:field-string-max 64;
1084 rwpb:field-inline "true";
1085 rwpb:field-string-max 48;
1090 grouping virtual-link-info-params {
1092 description "Name of the Virtual-Link";
1093 rwpb:field-inline "true";
1094 rwpb:field-string-max 255;
1099 description "State of the Virtual Link";
1109 leaf virtual-link-id {
1110 description "CAL assigned resource ID of the Virtual-Link";
1111 rwpb:field-inline "true";
1112 rwpb:field-string-max 64;
1116 list connection-points {
1117 key connection-point-id;
1118 uses connection-point-info-params;
1122 rwpb:field-inline "true";
1123 rwpb:field-string-max 64;
1127 uses manotypes:provider-network;
1131 grouping vdu-info-params {
1133 description "CAL assigned id for VDU";
1134 rwpb:field-inline "true";
1135 rwpb:field-string-max 64;
1139 description "Name of the VDU";
1140 rwpb:field-inline "true";
1141 rwpb:field-string-max 255;
1146 description "CAL assigned flavor-id for the VDU image";
1147 rwpb:field-inline "true";
1148 rwpb:field-string-max 64;
1153 description "CAL assigned image-id for the VDU image";
1154 rwpb:field-inline "true";
1155 rwpb:field-string-max 64;
1160 rwpb:field-inline "true";
1161 rwpb:field-string-max 64;
1166 description "State of the VDU";
1176 leaf management-ip {
1177 rwpb:field-inline "true";
1178 rwpb:field-string-max 64;
1183 rwpb:field-inline "true";
1184 rwpb:field-string-max 64;
1188 uses manotypes:vm-flavor;
1189 uses manotypes:guest-epa;
1190 uses manotypes:vswitch-epa;
1191 uses manotypes:hypervisor-epa;
1192 uses manotypes:host-epa;
1193 uses manotypes:placement-group-input;
1195 list connection-points {
1196 key connection-point-id;
1197 uses connection-point-info-params;
1201 description "Console URL from the VIM, if available";
1204 uses manotypes:supplemental-boot-data;
1210 description "Name of the disk-volumes, e.g. vda, vdb etc";
1215 description "CAL assigned volume-id ";
1216 rwpb:field-inline "true";
1217 rwpb:field-string-max 64;
1224 container vnf-resources {
1225 rwpb:msg-new VNFResources;
1228 list virtual-link-info-list {
1229 rwpb:msg-new VirtualLinkInfoParams;
1231 key virtual-link-id;
1232 uses virtual-link-info-params;
1235 list vdu-info-list {
1236 rwpb:msg-new VDUInfoParams;
1239 uses vdu-info-params;
1244 /* vim: set ts=2:sw=2: */