a14388e8b81759bc0fd697a419dba4389a2a3dd7
[osm/SO.git] / rwcal / plugins / vala / rwcal.vala
1 namespace RwCal {
2
3   public class RwcalStatus : GLib.Object {
4     public RwTypes.RwStatus status;
5     public string error_msg;
6     public string traceback;
7   }
8
9   public interface Cloud: GLib.Object {
10     /*
11      * Init routine
12      */
13     public abstract RwTypes.RwStatus init(RwLog.Ctx log_ctx);
14
15     /*
16      * Cloud Account Credentails Validation related API
17      */
18     public abstract RwTypes.RwStatus validate_cloud_creds(
19       Rwcal.CloudAccount account,
20       out Rwcal.CloudConnectionStatus status);
21
22     /*
23      * Image related APIs
24      */
25     public abstract RwTypes.RwStatus get_image_list(
26       Rwcal.CloudAccount account,
27       out Rwcal.VimResources images);
28
29     public abstract RwTypes.RwStatus create_image(
30       Rwcal.CloudAccount account,
31       Rwcal.ImageInfoItem image,
32       out string image_id);
33
34     public abstract RwTypes.RwStatus delete_image(
35       Rwcal.CloudAccount account,
36       string image_id);
37
38     public abstract RwTypes.RwStatus get_image(
39         Rwcal.CloudAccount account,
40         string image_id,
41         out Rwcal.ImageInfoItem image);
42
43     /*
44      * VM Releated APIs
45      */
46     public abstract RwTypes.RwStatus create_vm(
47       Rwcal.CloudAccount account,
48       Rwcal.VMInfoItem vm,
49       out string vm_id);
50
51     public abstract RwTypes.RwStatus start_vm(
52       Rwcal.CloudAccount account,
53       string vm_id);
54
55     public abstract RwTypes.RwStatus stop_vm(
56       Rwcal.CloudAccount account,
57       string vm_id);
58
59     public abstract RwTypes.RwStatus delete_vm(
60       Rwcal.CloudAccount account,
61       string vm_id);
62
63     public abstract RwTypes.RwStatus reboot_vm(
64       Rwcal.CloudAccount account,
65       string vm_id);
66
67     public abstract RwTypes.RwStatus get_vm_list(
68       Rwcal.CloudAccount account,
69       out Rwcal.VimResources vms);
70
71     public abstract RwTypes.RwStatus get_vm(
72       Rwcal.CloudAccount account,
73       string vm_id,
74       out Rwcal.VMInfoItem vm);
75
76     /*
77      * Flavor related APIs
78      */
79     public abstract RwTypes.RwStatus create_flavor(
80       Rwcal.CloudAccount account,
81       Rwcal.FlavorInfoItem flavor_info_item,
82       out string flavor_id);
83
84     public abstract RwTypes.RwStatus delete_flavor(
85       Rwcal.CloudAccount account,
86       string flavor_id);
87
88     public abstract RwTypes.RwStatus get_flavor_list(
89       Rwcal.CloudAccount account,
90       out Rwcal.VimResources flavors);
91
92     public abstract RwTypes.RwStatus get_flavor(
93       Rwcal.CloudAccount account,
94       string flavor_id,
95       out Rwcal.FlavorInfoItem flavor);
96
97
98     /*
99      * Tenant related APIs
100      */
101     public abstract RwTypes.RwStatus create_tenant(
102       Rwcal.CloudAccount account,
103       string tenant_name,
104       [CCode (array_length = false, array_null_terminated = true)]
105       out string [] tenant_info);
106
107     public abstract RwTypes.RwStatus delete_tenant(
108       Rwcal.CloudAccount account,
109       string tenant_id);
110
111     public abstract RwTypes.RwStatus get_tenant_list(
112       Rwcal.CloudAccount account,
113       out Rwcal.VimResources tenants);
114
115     /*
116      * Role related APIs
117      */
118     public abstract RwTypes.RwStatus create_role(
119       Rwcal.CloudAccount account,
120       string role_name,
121       [CCode (array_length = false, array_null_terminated = true)]
122       out string [] role_info);
123
124     public abstract RwTypes.RwStatus delete_role(
125       Rwcal.CloudAccount account,
126       string role_id);
127
128     public abstract RwTypes.RwStatus get_role_list(
129       Rwcal.CloudAccount account,
130       out Rwcal.VimResources roles);
131
132     /*
133      * Port related APIs
134      */
135     public abstract RwTypes.RwStatus create_port(
136       Rwcal.CloudAccount account,
137       Rwcal.PortInfoItem port,
138       out string port_id);
139
140     public abstract RwTypes.RwStatus delete_port(
141       Rwcal.CloudAccount account,
142       string port_id);
143
144     public abstract RwTypes.RwStatus get_port(
145       Rwcal.CloudAccount account,
146       string port_id,
147       out Rwcal.PortInfoItem port);
148
149     public abstract RwTypes.RwStatus get_port_list(
150       Rwcal.CloudAccount account,
151       out Rwcal.VimResources ports);
152
153     /*
154      * Host related APIs
155      */
156     public abstract RwTypes.RwStatus add_host(
157       Rwcal.CloudAccount account,
158       Rwcal.HostInfoItem host,
159       out string host_id);
160
161     public abstract RwTypes.RwStatus remove_host(
162       Rwcal.CloudAccount account,
163       string host_id);
164
165     public abstract RwTypes.RwStatus get_host(
166       Rwcal.CloudAccount account,
167       string host_id,
168       out Rwcal.HostInfoItem host);
169
170     public abstract RwTypes.RwStatus get_host_list(
171       Rwcal.CloudAccount account,
172       out Rwcal.VimResources hosts);
173
174     /*
175      * Network related APIs
176      */
177     public abstract RwTypes.RwStatus create_network(
178       Rwcal.CloudAccount account,
179       Rwcal.NetworkInfoItem network,
180       out string network_id);
181
182     public abstract RwTypes.RwStatus delete_network(
183       Rwcal.CloudAccount account,
184       string network_id);
185
186     public abstract RwTypes.RwStatus get_network(
187       Rwcal.CloudAccount account,
188       string network_id,
189       out Rwcal.NetworkInfoItem network);
190
191     public abstract RwTypes.RwStatus get_network_list(
192       Rwcal.CloudAccount account,
193       out Rwcal.VimResources networks);
194
195     public abstract RwTypes.RwStatus get_management_network(
196       Rwcal.CloudAccount account,
197       out Rwcal.NetworkInfoItem network);
198
199     /*
200      * Higher Order CAL APIs
201      */
202     public abstract void create_virtual_link(
203       Rwcal.CloudAccount account,
204       Rwcal.VirtualLinkReqParams link_params,
205       out RwcalStatus status,
206       out string link_id);
207     
208     public abstract RwTypes.RwStatus delete_virtual_link(
209       Rwcal.CloudAccount account,
210       string link_id);
211
212     public abstract RwTypes.RwStatus get_virtual_link(
213       Rwcal.CloudAccount account,
214       string link_id,
215       out Rwcal.VirtualLinkInfoParams response);
216
217     public abstract RwTypes.RwStatus get_virtual_link_list(
218       Rwcal.CloudAccount account,
219       out Rwcal.VNFResources resources);
220
221
222     public abstract void create_vdu(
223       Rwcal.CloudAccount account,
224       Rwcal.VDUInitParams vdu_params,
225       out RwcalStatus status,
226       out string vdu_id);
227
228     public abstract RwTypes.RwStatus modify_vdu(
229       Rwcal.CloudAccount account,
230       Rwcal.VDUModifyParams vdu_params);
231     
232     public abstract RwTypes.RwStatus delete_vdu(
233       Rwcal.CloudAccount account,
234       string vdu_id);
235
236     public abstract RwTypes.RwStatus get_vdu(
237       Rwcal.CloudAccount account,
238       string vdu_id,
239       out Rwcal.VDUInfoParams response);
240     
241     public abstract RwTypes.RwStatus get_vdu_list(
242       Rwcal.CloudAccount account,
243       out Rwcal.VNFResources resources);
244     
245   }
246 }
247
248