libdeltacloud 0.9
|
00001 /* 00002 * Copyright (C) 2010,2011 Red Hat, Inc. 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 * 00018 * Author: Chris Lalancette <clalance@redhat.com> 00019 */ 00020 00021 #ifndef LIBDELTACLOUD_STORAGE_VOLUME_H 00022 #define LIBDELTACLOUD_STORAGE_VOLUME_H 00023 00024 #ifdef __cplusplus 00025 extern "C" { 00026 #endif 00027 00031 struct deltacloud_storage_volume_capacity { 00032 char *unit; 00033 char *size; 00034 }; 00035 00040 struct deltacloud_storage_volume_mount { 00041 char *instance_href; 00042 char *instance_id; 00043 char *device_name; 00044 }; 00045 00049 struct deltacloud_storage_volume { 00050 char *href; 00051 char *id; 00052 char *created; 00053 char *state; 00054 struct deltacloud_storage_volume_capacity capacity; 00055 char *device; 00056 char *realm_id; 00057 struct deltacloud_storage_volume_mount mount; 00059 struct deltacloud_storage_volume *next; 00060 }; 00061 00062 #define deltacloud_supports_storage_volumes(api) deltacloud_has_link(api, "storage_volumes") 00063 int deltacloud_get_storage_volumes(struct deltacloud_api *api, 00064 struct deltacloud_storage_volume **storage_volumes); 00065 int deltacloud_get_storage_volume_by_id(struct deltacloud_api *api, 00066 const char *id, 00067 struct deltacloud_storage_volume *storage_volume); 00068 int deltacloud_create_storage_volume(struct deltacloud_api *api, 00069 struct deltacloud_create_parameter *params, 00070 int params_length); 00071 int deltacloud_storage_volume_destroy(struct deltacloud_api *api, 00072 struct deltacloud_storage_volume *storage_volume); 00073 int deltacloud_storage_volume_attach(struct deltacloud_api *api, 00074 struct deltacloud_storage_volume *storage_volume, 00075 const char *instance_id, 00076 const char *device, 00077 struct deltacloud_create_parameter *params, 00078 int params_length); 00079 int deltacloud_storage_volume_detach(struct deltacloud_api *api, 00080 struct deltacloud_storage_volume *storage_volume, 00081 struct deltacloud_create_parameter *params, 00082 int params_length); 00083 void deltacloud_free_storage_volume(struct deltacloud_storage_volume *storage_volume); 00084 void deltacloud_free_storage_volume_list(struct deltacloud_storage_volume **storage_volumes); 00085 00086 #ifdef __cplusplus 00087 } 00088 #endif 00089 00090 #endif