5 // Created by Mike Mayo on 10/21/10.
6 // The OpenStack project is provided under the Apache 2.0 license.
9 #import <Foundation/Foundation.h>
11 // this class performs API calls on accounts and broadcasts NSNotifications to any other
12 // object that chooses to observe the notification
14 @class OpenStackAccount, Server, Flavor, Image, Container, StorageObject, OpenStackRequest, ASINetworkQueue, APICallback, LoadBalancer, LoadBalancerNode;
16 @interface AccountManager : NSObject {
17 OpenStackAccount *account;
18 ASINetworkQueue *queue;
21 @property (nonatomic, retain) ASINetworkQueue *queue;
23 @property (nonatomic, assign) OpenStackAccount *account;
25 - (NSString *)notificationName:(NSString *)key identifier:(NSString *)identifier;
26 - (void)notify:(NSString *)name request:(OpenStackRequest *)request;
27 - (void)notify:(NSString *)name request:(OpenStackRequest *)request object:(id)object;
29 - (APICallback *)authenticate;
34 - (void)softRebootServer:(Server *)server;
35 - (void)hardRebootServer:(Server *)server;
36 - (void)changeAdminPassword:(Server *)server password:(NSString *)password;
37 - (APICallback *)renameServer:(Server *)server name:(NSString *)name;
38 - (void)deleteServer:(Server *)server;
39 - (void)createServer:(Server *)server;
40 - (void)resizeServer:(Server *)server flavor:(Flavor *)flavor;
41 - (void)confirmResizeServer:(Server *)server;
42 - (void)revertResizeServer:(Server *)server;
43 - (void)rebuildServer:(Server *)server image:(Image *)image;
44 - (void)getBackupSchedule:(Server *)server;
45 - (void)updateBackupSchedule:(Server *)server;
48 - (APICallback *)getServersWithCallback;
51 - (void)getImage:(Server *)server;
55 - (void)getStorageAccountInfo;
56 - (void)getContainers;
57 - (APICallback *)getContainersWithCallback;
58 - (void)createContainer:(Container *)container;
59 - (void)deleteContainer:(Container *)container;
61 - (void)getObjects:(Container *)container;
62 - (void)getObjectInfo:(Container *)container object:(StorageObject *)object;
63 - (void)getObject:(Container *)container object:(StorageObject *)object downloadProgressDelegate:(id)downloadProgressDelegate;
64 - (void)writeObject:(Container *)container object:(StorageObject *)object downloadProgressDelegate:(id)downloadProgressDelegate;
65 - (void)writeObjectMetadata:(Container *)container object:(StorageObject *)object;
66 - (void)deleteObject:(Container *)container object:(StorageObject *)object;
70 - (void)writeAccountMetadata:(NSDictionary *)accountInfo;
73 - (void)updateCDNContainer:(Container *)container;
74 - (void)writeContainerPolicy:(Container *)container;
78 - (APICallback *)getLoadBalancers:(NSString *)endpoint;
79 - (APICallback *)getLoadBalancerDetails:(LoadBalancer *)loadBalancer endpoint:(NSString *)endpoint;
80 - (APICallback *)getLoadBalancerProtocols:(NSString *)endpoint;
81 - (APICallback *)createLoadBalancer:(LoadBalancer *)loadBalancer;
82 - (APICallback *)updateLoadBalancer:(LoadBalancer *)loadBalancer;
83 - (APICallback *)deleteLoadBalancer:(LoadBalancer *)loadBalancer;
84 - (APICallback *)updateLoadBalancerConnectionLogging:(LoadBalancer *)loadBalancer;
86 - (APICallback *)getLoadBalancerConnectionThrottling:(LoadBalancer *)loadBalancer;
87 - (APICallback *)updateLoadBalancerConnectionThrottling:(LoadBalancer *)loadBalancer;
88 - (APICallback *)deleteLoadBalancerConnectionThrottling:(LoadBalancer *)loadBalancer;
91 - (APICallback *)getLoadBalancerUsage:(LoadBalancer *)loadBalancer endpoint:(NSString *)endpoint;
92 - (APICallback *)addLBNodes:(NSArray *)nodes loadBalancer:(LoadBalancer *)loadBalancer endpoint:(NSString *)endpoint;
93 - (APICallback *)updateLBNode:(LoadBalancerNode *)node loadBalancer:(LoadBalancer *)loadBalancer endpoint:(NSString *)endpoint;
94 - (APICallback *)deleteLBNode:(LoadBalancerNode *)node loadBalancer:(LoadBalancer *)loadBalancer endpoint:(NSString *)endpoint;