Create application/directory for subdir, if metadata or permissions are applied.
[pithos-ios] / Classes / OpenStackAccount.h
1 //
2 //  Account.h
3 //  OpenStack
4 //
5 //  Created by Mike Mayo on 10/1/10.
6 //  The OpenStack project is provided under the Apache 2.0 license.
7 //
8
9 #import <Foundation/Foundation.h>
10
11 @class Provider;
12
13 @class AccountManager;
14
15 @interface OpenStackAccount : NSObject <NSCoding, NSCopying> {
16     id getLimitsObserver;
17     id getServersObserver;
18     id getImagesObserver;
19     id getFlavorsObserver;
20     @private
21     BOOL serversUnarchived;
22     BOOL shared;
23     NSString *sharingAccount;
24
25 }
26
27
28 @property (nonatomic, assign) BOOL hasBeenRefreshed;
29 @property (nonatomic, retain) NSString *uuid;
30 @property (nonatomic, retain) Provider *provider;
31 @property (nonatomic, retain) NSString *username;
32 @property (nonatomic, retain) NSString *apiKey;
33 @property (nonatomic, retain) NSString *projectId;
34 @property (nonatomic, retain) NSString *authToken;
35 @property (nonatomic, retain) NSMutableDictionary *images;
36 @property (nonatomic, retain) NSDictionary *flavors;
37 @property (nonatomic, retain) NSMutableDictionary *servers;
38 @property (nonatomic, retain) NSMutableDictionary *serversByPublicIP;
39 @property (nonatomic, retain) NSURL *hostURL;
40 @property (nonatomic, retain) NSURL *serversURL;
41 @property (nonatomic, retain) NSURL *filesURL;
42 @property (nonatomic, retain) NSURL *pithosPublicLinkURLPrefix;
43 @property (nonatomic, retain) NSURL *pithosLoginURLPrefix;
44 @property (nonatomic, retain) NSURL *cdnURL;
45 @property (nonatomic, retain) NSArray *rateLimits;
46 @property (nonatomic, retain) AccountManager *manager;
47 @property (nonatomic, retain) NSString *lastUsedFlavorId;
48 @property (nonatomic, retain) NSString *lastUsedImageId;
49 @property (nonatomic, assign) NSInteger containerCount;
50 @property (nonatomic, assign) unsigned long long totalBytesUsed;
51 @property (nonatomic, assign) unsigned long long quota;
52 @property (nonatomic, retain) NSMutableDictionary *containers;
53 @property (nonatomic, assign) BOOL flaggedForDelete;
54 @property (nonatomic, retain) NSString *apiVersion;
55 @property (nonatomic, assign) BOOL shared;
56 @property (nonatomic, retain) NSString *sharingAccount;
57
58 // this is a dictionary of dictionaries:
59 // { "endpoint1": { "123": { ... }, "456": { ... } },
60 //   "endpoint2": { "789": { ... }, "321": { ... } }}
61 @property (nonatomic, retain) NSMutableDictionary *loadBalancers;
62 @property (nonatomic, retain) NSMutableArray *lbProtocols;
63
64 + (NSArray *)accounts;
65 - (void)persist;
66 + (void)persist:(NSArray *)accountArray;
67 - (void)refreshCollections;
68 - (NSArray *)loadBalancerURLs;
69 - (NSArray *)loadBalancerRegions;
70
71 - (NSString *)loadBalancerEndpointForRegion:(NSString *)region;
72 - (NSString *)loadBalancerRegionForEndpoint:(NSString *)endpoint;
73 - (NSString *)accountNumber;
74
75 - (NSArray *)sortedServers;
76 - (NSArray *)sortedImages;
77 - (NSArray *)sortedFlavors;
78 - (NSArray *)sortedRateLimits;
79 - (NSArray *)sortedContainers;
80 - (NSArray *)sortedLoadBalancers;
81 - (NSArray *)pithosSortedContainers;
82
83 @end