RIFT OSM R1 Initial Submission
[osm/SO.git] / rwcal / plugins / vala / rwcal.vala
diff --git a/rwcal/plugins/vala/rwcal.vala b/rwcal/plugins/vala/rwcal.vala
new file mode 100644 (file)
index 0000000..a14388e
--- /dev/null
@@ -0,0 +1,248 @@
+namespace RwCal {
+
+  public class RwcalStatus : GLib.Object {
+    public RwTypes.RwStatus status;
+    public string error_msg;
+    public string traceback;
+  }
+
+  public interface Cloud: GLib.Object {
+    /*
+     * Init routine
+     */
+    public abstract RwTypes.RwStatus init(RwLog.Ctx log_ctx);
+
+    /*
+     * Cloud Account Credentails Validation related API
+     */
+    public abstract RwTypes.RwStatus validate_cloud_creds(
+      Rwcal.CloudAccount account,
+      out Rwcal.CloudConnectionStatus status);
+
+    /*
+     * Image related APIs
+     */
+    public abstract RwTypes.RwStatus get_image_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources images);
+
+    public abstract RwTypes.RwStatus create_image(
+      Rwcal.CloudAccount account,
+      Rwcal.ImageInfoItem image,
+      out string image_id);
+
+    public abstract RwTypes.RwStatus delete_image(
+      Rwcal.CloudAccount account,
+      string image_id);
+
+    public abstract RwTypes.RwStatus get_image(
+        Rwcal.CloudAccount account,
+        string image_id,
+        out Rwcal.ImageInfoItem image);
+
+    /*
+     * VM Releated APIs
+     */
+    public abstract RwTypes.RwStatus create_vm(
+      Rwcal.CloudAccount account,
+      Rwcal.VMInfoItem vm,
+      out string vm_id);
+
+    public abstract RwTypes.RwStatus start_vm(
+      Rwcal.CloudAccount account,
+      string vm_id);
+
+    public abstract RwTypes.RwStatus stop_vm(
+      Rwcal.CloudAccount account,
+      string vm_id);
+
+    public abstract RwTypes.RwStatus delete_vm(
+      Rwcal.CloudAccount account,
+      string vm_id);
+
+    public abstract RwTypes.RwStatus reboot_vm(
+      Rwcal.CloudAccount account,
+      string vm_id);
+
+    public abstract RwTypes.RwStatus get_vm_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources vms);
+
+    public abstract RwTypes.RwStatus get_vm(
+      Rwcal.CloudAccount account,
+      string vm_id,
+      out Rwcal.VMInfoItem vm);
+
+    /*
+     * Flavor related APIs
+     */
+    public abstract RwTypes.RwStatus create_flavor(
+      Rwcal.CloudAccount account,
+      Rwcal.FlavorInfoItem flavor_info_item,
+      out string flavor_id);
+
+    public abstract RwTypes.RwStatus delete_flavor(
+      Rwcal.CloudAccount account,
+      string flavor_id);
+
+    public abstract RwTypes.RwStatus get_flavor_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources flavors);
+
+    public abstract RwTypes.RwStatus get_flavor(
+      Rwcal.CloudAccount account,
+      string flavor_id,
+      out Rwcal.FlavorInfoItem flavor);
+
+
+    /*
+     * Tenant related APIs
+     */
+    public abstract RwTypes.RwStatus create_tenant(
+      Rwcal.CloudAccount account,
+      string tenant_name,
+      [CCode (array_length = false, array_null_terminated = true)]
+      out string [] tenant_info);
+
+    public abstract RwTypes.RwStatus delete_tenant(
+      Rwcal.CloudAccount account,
+      string tenant_id);
+
+    public abstract RwTypes.RwStatus get_tenant_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources tenants);
+
+    /*
+     * Role related APIs
+     */
+    public abstract RwTypes.RwStatus create_role(
+      Rwcal.CloudAccount account,
+      string role_name,
+      [CCode (array_length = false, array_null_terminated = true)]
+      out string [] role_info);
+
+    public abstract RwTypes.RwStatus delete_role(
+      Rwcal.CloudAccount account,
+      string role_id);
+
+    public abstract RwTypes.RwStatus get_role_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources roles);
+
+    /*
+     * Port related APIs
+     */
+    public abstract RwTypes.RwStatus create_port(
+      Rwcal.CloudAccount account,
+      Rwcal.PortInfoItem port,
+      out string port_id);
+
+    public abstract RwTypes.RwStatus delete_port(
+      Rwcal.CloudAccount account,
+      string port_id);
+
+    public abstract RwTypes.RwStatus get_port(
+      Rwcal.CloudAccount account,
+      string port_id,
+      out Rwcal.PortInfoItem port);
+
+    public abstract RwTypes.RwStatus get_port_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources ports);
+
+    /*
+     * Host related APIs
+     */
+    public abstract RwTypes.RwStatus add_host(
+      Rwcal.CloudAccount account,
+      Rwcal.HostInfoItem host,
+      out string host_id);
+
+    public abstract RwTypes.RwStatus remove_host(
+      Rwcal.CloudAccount account,
+      string host_id);
+
+    public abstract RwTypes.RwStatus get_host(
+      Rwcal.CloudAccount account,
+      string host_id,
+      out Rwcal.HostInfoItem host);
+
+    public abstract RwTypes.RwStatus get_host_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources hosts);
+
+    /*
+     * Network related APIs
+     */
+    public abstract RwTypes.RwStatus create_network(
+      Rwcal.CloudAccount account,
+      Rwcal.NetworkInfoItem network,
+      out string network_id);
+
+    public abstract RwTypes.RwStatus delete_network(
+      Rwcal.CloudAccount account,
+      string network_id);
+
+    public abstract RwTypes.RwStatus get_network(
+      Rwcal.CloudAccount account,
+      string network_id,
+      out Rwcal.NetworkInfoItem network);
+
+    public abstract RwTypes.RwStatus get_network_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VimResources networks);
+
+    public abstract RwTypes.RwStatus get_management_network(
+      Rwcal.CloudAccount account,
+      out Rwcal.NetworkInfoItem network);
+
+    /*
+     * Higher Order CAL APIs
+     */
+    public abstract void create_virtual_link(
+      Rwcal.CloudAccount account,
+      Rwcal.VirtualLinkReqParams link_params,
+      out RwcalStatus status,
+      out string link_id);
+    
+    public abstract RwTypes.RwStatus delete_virtual_link(
+      Rwcal.CloudAccount account,
+      string link_id);
+
+    public abstract RwTypes.RwStatus get_virtual_link(
+      Rwcal.CloudAccount account,
+      string link_id,
+      out Rwcal.VirtualLinkInfoParams response);
+
+    public abstract RwTypes.RwStatus get_virtual_link_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VNFResources resources);
+
+
+    public abstract void create_vdu(
+      Rwcal.CloudAccount account,
+      Rwcal.VDUInitParams vdu_params,
+      out RwcalStatus status,
+      out string vdu_id);
+
+    public abstract RwTypes.RwStatus modify_vdu(
+      Rwcal.CloudAccount account,
+      Rwcal.VDUModifyParams vdu_params);
+    
+    public abstract RwTypes.RwStatus delete_vdu(
+      Rwcal.CloudAccount account,
+      string vdu_id);
+
+    public abstract RwTypes.RwStatus get_vdu(
+      Rwcal.CloudAccount account,
+      string vdu_id,
+      out Rwcal.VDUInfoParams response);
+    
+    public abstract RwTypes.RwStatus get_vdu_list(
+      Rwcal.CloudAccount account,
+      out Rwcal.VNFResources resources);
+    
+  }
+}
+
+