update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b second try
[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.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
20       out Rwcal.YangData_Rwcal_ConnectionStatus status);
21
22     /*
23      * Image related APIs
24      */
25     public abstract RwTypes.RwStatus get_image_list(
26       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
27       out Rwcal.YangData_RwProject_Project_VimResources images);
28
29     public abstract RwTypes.RwStatus create_image(
30       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
31       Rwcal.YangData_RwProject_Project_VimResources_ImageinfoList image,
32       out string image_id);
33
34     public abstract RwTypes.RwStatus delete_image(
35       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
36       string image_id);
37
38     public abstract RwTypes.RwStatus get_image(
39         Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
40         string image_id,
41         out Rwcal.YangData_RwProject_Project_VimResources_ImageinfoList image);
42
43     /*
44      * VM Releated APIs
45      */
46     public abstract RwTypes.RwStatus create_vm(
47       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
48       Rwcal.YangData_RwProject_Project_VimResources_VminfoList vm,
49       out string vm_id);
50
51     public abstract RwTypes.RwStatus start_vm(
52       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
53       string vm_id);
54
55     public abstract RwTypes.RwStatus stop_vm(
56       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
57       string vm_id);
58
59     public abstract RwTypes.RwStatus delete_vm(
60       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
61       string vm_id);
62
63     public abstract RwTypes.RwStatus reboot_vm(
64       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
65       string vm_id);
66
67     public abstract RwTypes.RwStatus get_vm_list(
68       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
69       out Rwcal.YangData_RwProject_Project_VimResources vms);
70
71     public abstract RwTypes.RwStatus get_vm(
72       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
73       string vm_id,
74       out Rwcal.YangData_RwProject_Project_VimResources_VminfoList vm);
75
76     /*
77      * Flavor related APIs
78      */
79     public abstract RwTypes.RwStatus create_flavor(
80       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
81       Rwcal.YangData_RwProject_Project_VimResources_FlavorinfoList flavor_info_item,
82       out string flavor_id);
83
84     public abstract RwTypes.RwStatus delete_flavor(
85       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
86       string flavor_id);
87
88     public abstract RwTypes.RwStatus get_flavor_list(
89       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
90       out Rwcal.YangData_RwProject_Project_VimResources flavors);
91
92     public abstract RwTypes.RwStatus get_flavor(
93       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
94       string flavor_id,
95       out Rwcal.YangData_RwProject_Project_VimResources_FlavorinfoList flavor);
96
97
98     /*
99      * Tenant related APIs
100      */
101     public abstract RwTypes.RwStatus create_tenant(
102       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList 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.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
109       string tenant_id);
110
111     public abstract RwTypes.RwStatus get_tenant_list(
112       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
113       out Rwcal.YangData_RwProject_Project_VimResources tenants);
114
115     /*
116      * Role related APIs
117      */
118     public abstract RwTypes.RwStatus create_role(
119       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList 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.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
126       string role_id);
127
128     public abstract RwTypes.RwStatus get_role_list(
129       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
130       out Rwcal.YangData_RwProject_Project_VimResources roles);
131
132     /*
133      * Port related APIs
134      */
135     public abstract RwTypes.RwStatus create_port(
136       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
137       Rwcal.YangData_RwProject_Project_VimResources_PortinfoList port,
138       out string port_id);
139
140     public abstract RwTypes.RwStatus delete_port(
141       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
142       string port_id);
143
144     public abstract RwTypes.RwStatus get_port(
145       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
146       string port_id,
147       out Rwcal.YangData_RwProject_Project_VimResources_PortinfoList port);
148
149     public abstract RwTypes.RwStatus get_port_list(
150       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
151       out Rwcal.YangData_RwProject_Project_VimResources ports);
152
153     /*
154      * Host related APIs
155      */
156     public abstract RwTypes.RwStatus add_host(
157       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
158       Rwcal.YangData_RwProject_Project_VimResources_HostinfoList host,
159       out string host_id);
160
161     public abstract RwTypes.RwStatus remove_host(
162       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
163       string host_id);
164
165     public abstract RwTypes.RwStatus get_host(
166       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
167       string host_id,
168       out Rwcal.YangData_RwProject_Project_VimResources_HostinfoList host);
169
170     public abstract RwTypes.RwStatus get_host_list(
171       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
172       out Rwcal.YangData_RwProject_Project_VimResources hosts);
173
174     /*
175      * Network related APIs
176      */
177     public abstract RwTypes.RwStatus create_network(
178       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
179       Rwcal.YangData_RwProject_Project_VimResources_NetworkinfoList network,
180       out string network_id);
181
182     public abstract RwTypes.RwStatus delete_network(
183       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
184       string network_id);
185
186     public abstract RwTypes.RwStatus get_network(
187       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
188       string network_id,
189       out Rwcal.YangData_RwProject_Project_VimResources_NetworkinfoList network);
190
191     public abstract RwTypes.RwStatus get_network_list(
192       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
193       out Rwcal.YangData_RwProject_Project_VimResources networks);
194
195     public abstract RwTypes.RwStatus get_management_network(
196       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
197       out Rwcal.YangData_RwProject_Project_VimResources_NetworkinfoList network);
198
199     /*
200      * Higher Order CAL APIs
201      */
202     public abstract void create_virtual_link(
203       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
204       Rwcal.YangData_RwProject_Project_VirtualLinkReqParams link_params,
205       out RwcalStatus status,
206       out string link_id);
207     
208     public abstract RwTypes.RwStatus delete_virtual_link(
209       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
210       string link_id);
211
212     public abstract RwTypes.RwStatus get_virtual_link(
213       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
214       string link_id,
215       out Rwcal.YangData_RwProject_Project_VnfResources_VirtualLinkInfoList response);
216
217     public abstract RwTypes.RwStatus get_virtual_link_by_name(
218       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
219       string link_name,
220       out Rwcal.YangData_RwProject_Project_VnfResources_VirtualLinkInfoList response);
221
222     public abstract RwTypes.RwStatus get_virtual_link_list(
223       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
224       out Rwcal.YangData_RwProject_Project_VnfResources resources);
225
226
227     public abstract void create_vdu(
228       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
229       Rwcal.YangData_RwProject_Project_VduInitParams vdu_params,
230       out RwcalStatus status,
231       out string vdu_id);
232
233     public abstract RwTypes.RwStatus modify_vdu(
234       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
235       Rwcal.YangData_RwProject_Project_VduModifyParams vdu_params);
236     
237     public abstract RwTypes.RwStatus delete_vdu(
238       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
239       string vdu_id);
240
241     public abstract void get_vdu(
242       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
243       string vdu_id,
244       string mgmt_network,
245       out RwcalStatus status,
246       out Rwcal.YangData_RwProject_Project_VnfResources_VduInfoList response);
247     
248     public abstract void get_vdu_list(
249       Rwcal.YangData_RwProject_Project_CloudAccounts_CloudAccountList account,
250       out RwcalStatus status,
251       out Rwcal.YangData_RwProject_Project_VnfResources resources);
252   }
253 }
254
255