libdeltacloud 0.9
include/libdeltacloud/storage_volume.h
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
 All Data Structures Files Functions Variables