Statistics
| Branch: | Revision:

root / asi-http-request-with-pithos / Classes / Pithos / ASIPithosObjectRequest.h @ 9d03a93c

History | View | Annotate | Download (43.5 kB)

1
//  ASIPithosObjectRequest.h
2
//  Based on ASICloudFilesObjectRequest.h
3
//
4
// Copyright 2011 GRNET S.A. All rights reserved.
5
//
6
// Redistribution and use in source and binary forms, with or
7
// without modification, are permitted provided that the following
8
// conditions are met:
9
// 
10
//   1. Redistributions of source code must retain the above
11
//      copyright notice, this list of conditions and the following
12
//      disclaimer.
13
// 
14
//   2. Redistributions in binary form must reproduce the above
15
//      copyright notice, this list of conditions and the following
16
//      disclaimer in the documentation and/or other materials
17
//      provided with the distribution.
18
// 
19
// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
20
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
23
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26
// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
// POSSIBILITY OF SUCH DAMAGE.
31
// 
32
// The views and conclusions contained in the software and
33
// documentation are those of the authors and should not be
34
// interpreted as representing official policies, either expressed
35
// or implied, of GRNET S.A.
36

    
37
#import "ASIPithosRequest.h"
38

    
39
#if !TARGET_OS_IPHONE || (TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_4_0)
40
#import "ASINSXMLParserCompat.h"
41
#endif
42

    
43
#define ASIPithosObjectRequestData 0
44
#define ASIPithosObjectRequestHashmap 1
45
#define ASIPithosObjectRequestVersions 2
46

    
47
#define ASIPithosObjectRequestPublicIgnore 0
48
#define ASIPithosObjectRequestPublicTrue 1
49
#define ASIPithosObjectRequestPublicFalse 2
50

    
51
@class ASIPithosObject;
52

    
53
@interface ASIPithosObjectRequest : ASIPithosRequest <NSXMLParserDelegate> {
54
    NSUInteger objectRequestType;
55
    
56
        NSString *containerName;
57
    NSString *objectName;
58
    
59
    NSMutableDictionary *metadata;
60
    
61
    NSUInteger blockSize;
62
    NSString *blockHash;
63
    NSMutableArray *hashes;
64
    NSUInteger bytes;
65
        
66
    NSMutableArray *versions;
67
    
68
        // Internally used while parsing the response
69
    ASIPithosObject *currentObject;
70
}
71

    
72
@property (assign) NSUInteger objectRequestType;
73
@property (retain) NSString *containerName;
74
@property (retain) NSString *objectName;
75
@property (retain) ASIPithosObject *currentObject;
76

    
77
// HEAD storageURL/container/object
78
+ (id)objectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
79
// HEAD storageURL/container/object?[version=version]
80
+ (id)objectMetadataRequestWithContainerName:(NSString *)containerName  objectName:(NSString *)objectName version:(NSString *)version;
81
// HEAD storageURL/container/object?[version=version] [If-Match]
82
+ (id)objectMetadataRequestWithContainerName:(NSString *)containerName  objectName:(NSString *)objectName 
83
                                     version:(NSString *)version 
84
                                     ifMatch:(NSString *)matchETag;
85
// HEAD storageURL/container/object?[version=version] [If-None-Match]
86
+ (id)objectMetadataRequestWithContainerName:(NSString *)containerName  objectName:(NSString *)objectName 
87
                                     version:(NSString *)version 
88
                                 ifNoneMatch:(NSString *)matchETag;
89
// HEAD storageURL/container/object?[version=version] [If-Modified-Since]
90
+ (id)objectMetadataRequestWithContainerName:(NSString *)containerName  objectName:(NSString *)objectName 
91
                                     version:(NSString *)version 
92
                             ifModifiedSince:(NSDate *)sinceTimestamp;
93
// HEAD storageURL/container/object?[version=version] [If-Unmodified-Since]
94
+ (id)objectMetadataRequestWithContainerName:(NSString *)containerName  objectName:(NSString *)objectName 
95
                                     version:(NSString *)version 
96
                             ifUnmodifiedSince:(NSDate *)sinceTimestamp;
97

    
98
- (NSString *)eTag;
99
- (NSUInteger)objectContentLength;
100
- (NSString *)contentType;
101
- (NSDate *)lastModified;
102
- (NSString *)contentEncoding;
103
- (NSString *)contentDisposition;
104
- (NSString *)version;
105
- (NSDate *)versionTimestamp;
106
- (NSString *)modifiedBy;
107
- (NSString *)manifest;
108
- (NSString *)sharing;
109
- (NSString *)sharedBy;
110
- (NSString *)publicURI;
111
- (NSDictionary *)metadata;
112
- (NSString *)allowedTo;
113

    
114
- (ASIPithosObject *)object;
115

    
116
// GET storageURL/container/object
117
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
118
// GET storageURL/container/object?[version=version]
119
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName version:(NSString *)version;
120
// GET storageURL/container/object?[version=version] [If-Match]
121
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
122
                                 version:(NSString *)version 
123
                                 ifMatch:(NSString *)matchETag;
124
// GET storageURL/container/object?[version=version] [If-None-Match]
125
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
126
                                 version:(NSString *)version 
127
                                 ifNoneMatch:(NSString *)matchETag;
128
// GET storageURL/container/object?[version=version] [If-Modified-Since]
129
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
130
                                 version:(NSString *)version 
131
                             ifModifiedSince:(NSDate *)sinceTimestamp;
132
// GET storageURL/container/object?[version=version] [If-Unmodified-Since]
133
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
134
                                 version:(NSString *)version 
135
                         ifUnmodifiedSince:(NSDate *)sinceTimestamp;
136
// GET storageURL/container/object?[version=version] [Range [If-Range]]
137
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
138
                                 version:(NSString *)version 
139
                                   range:(NSString *)rangeString;
140
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
141
                                 version:(NSString *)version 
142
                                   range:(NSString *)rangeString 
143
                             ifRangeETag:(NSString *)rangeETag;
144
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
145
                                 version:(NSString *)version 
146
                                   range:(NSString *)rangeString 
147
                        ifRangeTimestamp:(NSDate *)rangeTimestamp;
148

    
149
- (NSData *)data;
150

    
151
// GET storageURL/container/object?format=xml&hashmap=
152
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
153
// GET storageURL/container/object?format=xml&hashmap=[&version=version]
154
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName version:(NSString *)version;
155
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Match]
156
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
157
                                    version:(NSString *)version 
158
                                    ifMatch:(NSString *)matchETag;
159
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-NoneMatch]
160
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
161
                                    version:(NSString *)version 
162
                                ifNoneMatch:(NSString *)matchETag;
163
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Modified-Since]
164
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
165
                                    version:(NSString *)version 
166
                            ifModifiedSince:(NSDate *)sinceTimestamp;
167
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Unmodified-Since]
168
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
169
                                    version:(NSString *)version 
170
                          ifUnmodifiedSince:(NSDate *)sinceTimestamp;
171

    
172
- (NSUInteger)blockSize;
173
- (NSString *)blockHash;
174
- (NSArray *)hashes;
175
- (NSUInteger)bytes;
176

    
177
// GET storageURL/container/object?format=xml&version=list
178
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
179
// GET storageURL/container/object?format=xml&version=list [If-Match]
180
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifMatch:(NSString *)matchETag;
181
// GET storageURL/container/object?format=xml&version=list [If-None-Match]
182
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifNoneMatch:(NSString *)matchETag;
183
// GET storageURL/container/object?format=xml&version=list [If-Modified-Since]
184
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifModifiedSince:(NSDate *)sinceTimestamp;
185
// GET storageURL/container/object?format=xml&version=list [If-Unmodified-Since]
186
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifUnmodifiedSince:(NSDate *)sinceTimestamp;
187

    
188
- (NSArray *)versions;
189

    
190
// PUT storageURL/container/object (from ASIPithosObject with data)
191
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName object:(ASIPithosObject *)object;
192
// PUT storageURL/container/object (from ASIPithosObject with data) [If-Match]
193
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName object:(ASIPithosObject *)object ifMatch:(NSString *)matchETag;
194
// PUT storageURL/container/object (from ASIPithosObject with data) [If-None-Match]
195
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName object:(ASIPithosObject *)object ifNoneMatch:(NSString *)matchETag;
196
// PUT storageURL/container/object (from NSData)
197
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
198
                                   objectName:(NSString *)objectName 
199
                                         eTag:(NSString *)eTag 
200
                                  contentType:(NSString *)contentType 
201
                              contentEncoding:(NSString *)contentEncoding 
202
                           contentDisposition:(NSString *)contentDisposition 
203
                                     manifest:(NSString *)manifest 
204
                                      sharing:(NSString *)sharing 
205
                                     isPublic:(NSUInteger)isPublic 
206
                                     metadata:(NSDictionary *)metadata 
207
                                         data:(NSData *)data;
208
// PUT storageURL/container/object (from NSData) [If-Match]
209
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
210
                                   objectName:(NSString *)objectName 
211
                                         eTag:(NSString *)eTag 
212
                                  contentType:(NSString *)contentType 
213
                              contentEncoding:(NSString *)contentEncoding 
214
                           contentDisposition:(NSString *)contentDisposition 
215
                                     manifest:(NSString *)manifest 
216
                                      sharing:(NSString *)sharing 
217
                                     isPublic:(NSUInteger)isPublic 
218
                                     metadata:(NSDictionary *)metadata 
219
                                         data:(NSData *)data 
220
                                      ifMatch:(NSString *)matchETag;
221
// PUT storageURL/container/object (from NSData) [If-None-Match]
222
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
223
                                   objectName:(NSString *)objectName 
224
                                         eTag:(NSString *)eTag 
225
                                  contentType:(NSString *)contentType 
226
                              contentEncoding:(NSString *)contentEncoding 
227
                           contentDisposition:(NSString *)contentDisposition 
228
                                     manifest:(NSString *)manifest 
229
                                      sharing:(NSString *)sharing 
230
                                     isPublic:(NSUInteger)isPublic 
231
                                     metadata:(NSDictionary *)metadata 
232
                                         data:(NSData *)data 
233
                                  ifNoneMatch:(NSString *)matchETag;
234
// PUT storageURL/container/object (from file)
235
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
236
                                   objectName:(NSString *)objectName 
237
                                         eTag:(NSString *)eTag 
238
                                  contentType:(NSString *)contentType 
239
                              contentEncoding:(NSString *)contentEncoding 
240
                           contentDisposition:(NSString *)contentDisposition 
241
                                     manifest:(NSString *)manifest 
242
                                      sharing:(NSString *)sharing 
243
                                     isPublic:(NSUInteger)isPublic 
244
                                     metadata:(NSDictionary *)metadata 
245
                                         file:(NSString *)filePath;
246
// PUT storageURL/container/object (from file) [If-Match]
247
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
248
                                   objectName:(NSString *)objectName 
249
                                         eTag:(NSString *)eTag 
250
                                  contentType:(NSString *)contentType 
251
                              contentEncoding:(NSString *)contentEncoding 
252
                           contentDisposition:(NSString *)contentDisposition 
253
                                     manifest:(NSString *)manifest 
254
                                      sharing:(NSString *)sharing 
255
                                     isPublic:(NSUInteger)isPublic 
256
                                     metadata:(NSDictionary *)metadata 
257
                                         file:(NSString *)filePath 
258
                                      ifMatch:(NSString *)matchETag;
259
// PUT storageURL/container/object (from file) [If-None-Match]
260
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
261
                                   objectName:(NSString *)objectName 
262
                                         eTag:(NSString *)eTag 
263
                                  contentType:(NSString *)contentType 
264
                              contentEncoding:(NSString *)contentEncoding 
265
                           contentDisposition:(NSString *)contentDisposition 
266
                                     manifest:(NSString *)manifest 
267
                                      sharing:(NSString *)sharing 
268
                                     isPublic:(NSUInteger)isPublic 
269
                                     metadata:(NSDictionary *)metadata 
270
                                         file:(NSString *)filePath 
271
                                  ifNoneMatch:(NSString *)matchETag;
272
// PUT storageURL/container/object (from hashes)
273
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
274
                                   objectName:(NSString *)objectName 
275
                                  contentType:(NSString *)contentType 
276
                              contentEncoding:(NSString *)contentEncoding 
277
                           contentDisposition:(NSString *)contentDisposition 
278
                                     manifest:(NSString *)manifest 
279
                                      sharing:(NSString *)sharing 
280
                                     isPublic:(NSUInteger)isPublic 
281
                                     metadata:(NSDictionary *)metadata 
282
                                    blockSize:(NSUInteger)blockSize 
283
                                    blockHash:(NSString *)blockHash 
284
                                       hashes:(NSArray *)hashes 
285
                                        bytes:(NSUInteger)bytes;
286
// PUT storageURL/container/object (from hashes) [If-Match]
287
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
288
                                   objectName:(NSString *)objectName 
289
                                  contentType:(NSString *)contentType 
290
                              contentEncoding:(NSString *)contentEncoding 
291
                           contentDisposition:(NSString *)contentDisposition 
292
                                     manifest:(NSString *)manifest 
293
                                      sharing:(NSString *)sharing 
294
                                     isPublic:(NSUInteger)isPublic 
295
                                     metadata:(NSDictionary *)metadata 
296
                                    blockSize:(NSUInteger)blockSize 
297
                                    blockHash:(NSString *)blockHash 
298
                                       hashes:(NSArray *)hashes 
299
                                        bytes:(NSUInteger)bytes 
300
                                      ifMatch:(NSString *)matchETag;
301
// PUT storageURL/container/object (from hashes) [If-None-Match]
302
+ (id)writeObjectDataRequestWithContainerName:(NSString *)containerName 
303
                                   objectName:(NSString *)objectName 
304
                                  contentType:(NSString *)contentType 
305
                              contentEncoding:(NSString *)contentEncoding 
306
                           contentDisposition:(NSString *)contentDisposition 
307
                                     manifest:(NSString *)manifest 
308
                                      sharing:(NSString *)sharing 
309
                                     isPublic:(NSUInteger)isPublic 
310
                                     metadata:(NSDictionary *)metadata 
311
                                    blockSize:(NSUInteger)blockSize 
312
                                    blockHash:(NSString *)blockHash 
313
                                       hashes:(NSArray *)hashes 
314
                                        bytes:(NSUInteger)bytes 
315
                                      ifNoneMatch:(NSString *)matchETag;
316
// PUT storageURL/container/object (copy from source)
317
+ (id)copyObjectDataRequestWithContainerName:(NSString *)containerName 
318
                                  objectName:(NSString *)objectName 
319
                                 contentType:(NSString *)contentType 
320
                             contentEncoding:(NSString *)contentEncoding 
321
                          contentDisposition:(NSString *)contentDisposition 
322
                                    manifest:(NSString *)manifest 
323
                                     sharing:(NSString *)sharing 
324
                                    isPublic:(NSUInteger)isPublic 
325
                                    metadata:(NSDictionary *)metadata 
326
                         sourceContainerName:(NSString *)sourceContainerName 
327
                            sourceObjectName:(NSString *)sourceObjectName
328
                               sourceAccount:(NSString *)sourceAccount
329
                               sourceVersion:(NSString *)sourceVersion;
330
// PUT storageURL/container/object (copy from source) [If-Match]
331
+ (id)copyObjectDataRequestWithContainerName:(NSString *)containerName 
332
                                  objectName:(NSString *)objectName 
333
                                 contentType:(NSString *)contentType 
334
                             contentEncoding:(NSString *)contentEncoding 
335
                          contentDisposition:(NSString *)contentDisposition 
336
                                    manifest:(NSString *)manifest 
337
                                     sharing:(NSString *)sharing 
338
                                    isPublic:(NSUInteger)isPublic 
339
                                    metadata:(NSDictionary *)metadata 
340
                         sourceContainerName:(NSString *)sourceContainerName 
341
                            sourceObjectName:(NSString *)sourceObjectName
342
                               sourceAccount:(NSString *)sourceAccount
343
                               sourceVersion:(NSString *)sourceVersion 
344
                                 ifMatch:(NSString *)matchETag;
345
// PUT storageURL/container/object (copy from source) [If-None-Match]
346
+ (id)copyObjectDataRequestWithContainerName:(NSString *)containerName 
347
                                  objectName:(NSString *)objectName 
348
                                 contentType:(NSString *)contentType 
349
                             contentEncoding:(NSString *)contentEncoding 
350
                          contentDisposition:(NSString *)contentDisposition 
351
                                    manifest:(NSString *)manifest 
352
                                     sharing:(NSString *)sharing 
353
                                    isPublic:(NSUInteger)isPublic 
354
                                    metadata:(NSDictionary *)metadata 
355
                         sourceContainerName:(NSString *)sourceContainerName 
356
                            sourceObjectName:(NSString *)sourceObjectName
357
                               sourceAccount:(NSString *)sourceAccount
358
                               sourceVersion:(NSString *)sourceVersion 
359
                                 ifNoneMatch:(NSString *)matchETag;
360
// COPY storageURL/container/object (copy to destination)
361
+ (id)copyObjectDataRequestWithContainerName:(NSString *)containerName 
362
                                  objectName:(NSString *)objectName 
363
                                 contentType:(NSString *)contentType 
364
                             contentEncoding:(NSString *)contentEncoding 
365
                          contentDisposition:(NSString *)contentDisposition 
366
                                    manifest:(NSString *)manifest 
367
                                     sharing:(NSString *)sharing 
368
                                    isPublic:(NSUInteger)isPublic 
369
                                    metadata:(NSDictionary *)metadata 
370
                    destinationContainerName:(NSString *)destinationContainerName 
371
                       destinationObjectName:(NSString *)destinationObjectName
372
                          destinationAccount:(NSString *)destinationAccount
373
                               sourceVersion:(NSString *)sourceVersion;
374
// COPY storageURL/container/object (copy to destination) [If-Match]
375
+ (id)copyObjectDataRequestWithContainerName:(NSString *)containerName 
376
                                  objectName:(NSString *)objectName 
377
                                 contentType:(NSString *)contentType 
378
                             contentEncoding:(NSString *)contentEncoding 
379
                          contentDisposition:(NSString *)contentDisposition 
380
                                    manifest:(NSString *)manifest 
381
                                     sharing:(NSString *)sharing 
382
                                    isPublic:(NSUInteger)isPublic 
383
                                    metadata:(NSDictionary *)metadata 
384
                    destinationContainerName:(NSString *)destinationContainerName 
385
                       destinationObjectName:(NSString *)destinationObjectName
386
                          destinationAccount:(NSString *)destinationAccount
387
                               sourceVersion:(NSString *)sourceVersion 
388
                                     ifMatch:(NSString *)matchETag;
389
// COPY storageURL/container/object (copy to destination) [If-None-Match]
390
+ (id)copyObjectDataRequestWithContainerName:(NSString *)containerName 
391
                                  objectName:(NSString *)objectName 
392
                                 contentType:(NSString *)contentType 
393
                             contentEncoding:(NSString *)contentEncoding 
394
                          contentDisposition:(NSString *)contentDisposition 
395
                                    manifest:(NSString *)manifest 
396
                                     sharing:(NSString *)sharing 
397
                                    isPublic:(NSUInteger)isPublic 
398
                                    metadata:(NSDictionary *)metadata 
399
                    destinationContainerName:(NSString *)destinationContainerName 
400
                       destinationObjectName:(NSString *)destinationObjectName
401
                          destinationAccount:(NSString *)destinationAccount
402
                               sourceVersion:(NSString *)sourceVersion 
403
                                 ifNoneMatch:(NSString *)matchETag;
404
// PUT storageURL/container/object (move from source)
405
+ (id)moveObjectDataRequestWithContainerName:(NSString *)containerName 
406
                                  objectName:(NSString *)objectName 
407
                                 contentType:(NSString *)contentType 
408
                             contentEncoding:(NSString *)contentEncoding 
409
                          contentDisposition:(NSString *)contentDisposition 
410
                                    manifest:(NSString *)manifest 
411
                                     sharing:(NSString *)sharing 
412
                                    isPublic:(NSUInteger)isPublic 
413
                                    metadata:(NSDictionary *)metadata 
414
                         sourceContainerName:(NSString *)sourceContainerName 
415
                            sourceObjectName:(NSString *)sourceObjectName
416
                               sourceAccount:(NSString *)sourceAccount;
417
// PUT storageURL/container/object (move from source) [If-Match]
418
+ (id)moveObjectDataRequestWithContainerName:(NSString *)containerName 
419
                                  objectName:(NSString *)objectName 
420
                                 contentType:(NSString *)contentType 
421
                             contentEncoding:(NSString *)contentEncoding 
422
                          contentDisposition:(NSString *)contentDisposition 
423
                                    manifest:(NSString *)manifest 
424
                                     sharing:(NSString *)sharing 
425
                                    isPublic:(NSUInteger)isPublic 
426
                                    metadata:(NSDictionary *)metadata 
427
                         sourceContainerName:(NSString *)sourceContainerName 
428
                            sourceObjectName:(NSString *)sourceObjectName
429
                               sourceAccount:(NSString *)sourceAccount
430
                                     ifMatch:(NSString *)matchETag;
431
// PUT storageURL/container/object (move from source) [If-None-Match]
432
+ (id)moveObjectDataRequestWithContainerName:(NSString *)containerName 
433
                                  objectName:(NSString *)objectName 
434
                                 contentType:(NSString *)contentType 
435
                             contentEncoding:(NSString *)contentEncoding 
436
                          contentDisposition:(NSString *)contentDisposition 
437
                                    manifest:(NSString *)manifest 
438
                                     sharing:(NSString *)sharing 
439
                                    isPublic:(NSUInteger)isPublic 
440
                                    metadata:(NSDictionary *)metadata 
441
                         sourceContainerName:(NSString *)sourceContainerName 
442
                            sourceObjectName:(NSString *)sourceObjectName
443
                               sourceAccount:(NSString *)sourceAccount
444
                                 ifNoneMatch:(NSString *)matchETag;
445
// MOVE storageURL/container/object (move to destination)
446
+ (id)moveObjectDataRequestWithContainerName:(NSString *)containerName 
447
                                  objectName:(NSString *)objectName 
448
                                 contentType:(NSString *)contentType 
449
                             contentEncoding:(NSString *)contentEncoding 
450
                          contentDisposition:(NSString *)contentDisposition 
451
                                    manifest:(NSString *)manifest 
452
                                     sharing:(NSString *)sharing 
453
                                    isPublic:(NSUInteger)isPublic 
454
                                    metadata:(NSDictionary *)metadata 
455
                    destinationContainerName:(NSString *)destinationContainerName 
456
                       destinationObjectName:(NSString *)destinationObjectName 
457
                          destinationAccount:(NSString *)destinationAccount;
458
// MOVE storageURL/container/object (move to destination) [If-Match]
459
+ (id)moveObjectDataRequestWithContainerName:(NSString *)containerName 
460
                                  objectName:(NSString *)objectName 
461
                                 contentType:(NSString *)contentType 
462
                             contentEncoding:(NSString *)contentEncoding 
463
                          contentDisposition:(NSString *)contentDisposition 
464
                                    manifest:(NSString *)manifest 
465
                                     sharing:(NSString *)sharing 
466
                                    isPublic:(NSUInteger)isPublic 
467
                                    metadata:(NSDictionary *)metadata 
468
                    destinationContainerName:(NSString *)destinationContainerName 
469
                       destinationObjectName:(NSString *)destinationObjectName
470
                          destinationAccount:(NSString *)destinationAccount
471
                                     ifMatch:(NSString *)matchETag;
472
// MOVE storageURL/container/object (move to destination) [If-None-Match]
473
+ (id)moveObjectDataRequestWithContainerName:(NSString *)containerName 
474
                                  objectName:(NSString *)objectName 
475
                                 contentType:(NSString *)contentType 
476
                             contentEncoding:(NSString *)contentEncoding 
477
                          contentDisposition:(NSString *)contentDisposition 
478
                                    manifest:(NSString *)manifest 
479
                                     sharing:(NSString *)sharing 
480
                                    isPublic:(NSUInteger)isPublic 
481
                                    metadata:(NSDictionary *)metadata 
482
                    destinationContainerName:(NSString *)destinationContainerName 
483
                       destinationObjectName:(NSString *)destinationObjectName
484
                          destinationAccount:(NSString *)destinationAccount
485
                                 ifNoneMatch:(NSString *)matchETag;
486

    
487
// POST storageURL/container/object?[update=] (update metadata)
488
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName update:(BOOL)update;
489
// POST storageURL/container/object?[update=] (update metadata) [If-Match]
490
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
491
                                            update:(BOOL)update 
492
                                           ifMatch:(NSString *)matchETag;
493
// POST storageURL/container/object?[update=] (update metadata) [If-None-Match]
494
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
495
                                            update:(BOOL)update 
496
                                       ifNoneMatch:(NSString *)matchETag;
497
// POST storageURL/container/object?[update=] (update metadata)
498
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
499
                                   contentEncoding:(NSString *)contentEncoding 
500
                                contentDisposition:(NSString *)contentDisposition 
501
                                          manifest:(NSString *)manifest 
502
                                           sharing:(NSString *)sharing 
503
                                          isPublic:(NSUInteger)isPublic 
504
                                          metadata:(NSDictionary *)metadata 
505
                                            update:(BOOL)update;
506
// POST storageURL/container/object?[update=] (update metadata) [If-Match]
507
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
508
                                   contentEncoding:(NSString *)contentEncoding 
509
                                contentDisposition:(NSString *)contentDisposition 
510
                                          manifest:(NSString *)manifest 
511
                                           sharing:(NSString *)sharing 
512
                                          isPublic:(NSUInteger)isPublic 
513
                                          metadata:(NSDictionary *)metadata 
514
                                            update:(BOOL)update 
515
                                           ifMatch:(NSString *)matchETag;
516
// POST storageURL/container/object?[update=] (update metadata) [If-None-Match]
517
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
518
                                   contentEncoding:(NSString *)contentEncoding 
519
                                contentDisposition:(NSString *)contentDisposition 
520
                                          manifest:(NSString *)manifest 
521
                                           sharing:(NSString *)sharing 
522
                                          isPublic:(NSUInteger)isPublic 
523
                                          metadata:(NSDictionary *)metadata 
524
                                            update:(BOOL)update 
525
                                       ifNoneMatch:(NSString *)matchETag;
526

    
527
// POST storageURL/container/object?[update=] (update data from ASIPithosObject with data)
528
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName object:(ASIPithosObject *)object 
529
                                        update:(BOOL)update 
530
                                  contentRange:(NSString *)contentRange;
531
// POST storageURL/container/object?[update=] (update data from ASIPithosObject with data) [If-Match]
532
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName object:(ASIPithosObject *)object 
533
                                        update:(BOOL)update 
534
                                  contentRange:(NSString *)contentRange 
535
                                       ifMatch:(NSString *)matchETag;
536
// POST storageURL/container/object?[update=] (update data from ASIPithosObject with data) [If-None-Match]
537
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName object:(ASIPithosObject *)object 
538
                                        update:(BOOL)update 
539
                                  contentRange:(NSString *)contentRange 
540
                                   ifNoneMatch:(NSString *)matchETag;
541
// POST storageURL/container/object?[update=] (update data from NSData)
542
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
543
                               contentEncoding:(NSString *)contentEncoding 
544
                            contentDisposition:(NSString *)contentDisposition 
545
                                      manifest:(NSString *)manifest 
546
                                       sharing:(NSString *)sharing 
547
                                      isPublic:(NSUInteger)isPublic 
548
                                      metadata:(NSDictionary *)metadata 
549
                                        update:(BOOL)update 
550
                                  contentRange:(NSString *)contentRange 
551
                                         bytes:(NSNumber *)bytes 
552
                                          data:(NSData *)data;
553
// POST storageURL/container/object?[update=] (update data from NSData) [If-Match]
554
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
555
                               contentEncoding:(NSString *)contentEncoding 
556
                            contentDisposition:(NSString *)contentDisposition 
557
                                      manifest:(NSString *)manifest 
558
                                       sharing:(NSString *)sharing 
559
                                      isPublic:(NSUInteger)isPublic 
560
                                      metadata:(NSDictionary *)metadata 
561
                                        update:(BOOL)update 
562
                                  contentRange:(NSString *)contentRange 
563
                                         bytes:(NSNumber *)bytes 
564
                                          data:(NSData *)data 
565
                                       ifMatch:(NSString *)matchETag;
566
// POST storageURL/container/object?[update=] (update data from NSData) [If-None-Match]
567
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
568
                               contentEncoding:(NSString *)contentEncoding 
569
                            contentDisposition:(NSString *)contentDisposition 
570
                                      manifest:(NSString *)manifest 
571
                                       sharing:(NSString *)sharing 
572
                                      isPublic:(NSUInteger)isPublic 
573
                                      metadata:(NSDictionary *)metadata 
574
                                        update:(BOOL)update 
575
                                  contentRange:(NSString *)contentRange 
576
                                         bytes:(NSNumber *)bytes 
577
                                          data:(NSData *)data 
578
                                   ifNoneMatch:(NSString *)matchETag;
579
// POST storageURL/container/object?[update=] (update data from file)
580
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
581
                               contentEncoding:(NSString *)contentEncoding 
582
                            contentDisposition:(NSString *)contentDisposition 
583
                                      manifest:(NSString *)manifest 
584
                                       sharing:(NSString *)sharing 
585
                                      isPublic:(NSUInteger)isPublic 
586
                                      metadata:(NSDictionary *)metadata 
587
                                        update:(BOOL)update 
588
                                  contentRange:(NSString *)contentRange 
589
                                         bytes:(NSNumber *)bytes 
590
                                          file:(NSString *)filePath;
591
// POST storageURL/container/object?[update=] (update data from file) [If-Match]
592
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
593
                               contentEncoding:(NSString *)contentEncoding 
594
                            contentDisposition:(NSString *)contentDisposition 
595
                                      manifest:(NSString *)manifest 
596
                                       sharing:(NSString *)sharing 
597
                                      isPublic:(NSUInteger)isPublic 
598
                                      metadata:(NSDictionary *)metadata 
599
                                        update:(BOOL)update 
600
                                  contentRange:(NSString *)contentRange 
601
                                         bytes:(NSNumber *)bytes 
602
                                          file:(NSString *)filePath 
603
                                       ifMatch:(NSString *)matchETag;
604
// POST storageURL/container/object?[update=] (update data from file) [If-None-Match]
605
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
606
                               contentEncoding:(NSString *)contentEncoding 
607
                            contentDisposition:(NSString *)contentDisposition 
608
                                      manifest:(NSString *)manifest 
609
                                       sharing:(NSString *)sharing 
610
                                      isPublic:(NSUInteger)isPublic 
611
                                      metadata:(NSDictionary *)metadata 
612
                                        update:(BOOL)update 
613
                                  contentRange:(NSString *)contentRange 
614
                                         bytes:(NSNumber *)bytes 
615
                                          file:(NSString *)filePath 
616
                                   ifNoneMatch:(NSString *)matchETag;
617
// POST storageURL/container/object?[update=] (update data from source)
618
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
619
                               contentEncoding:(NSString *)contentEncoding 
620
                            contentDisposition:(NSString *)contentDisposition 
621
                                      manifest:(NSString *)manifest 
622
                                       sharing:(NSString *)sharing 
623
                                      isPublic:(NSUInteger)isPublic 
624
                                      metadata:(NSDictionary *)metadata 
625
                                        update:(BOOL)update 
626
                                  contentRange:(NSString *)contentRange 
627
                                         bytes:(NSNumber *)bytes 
628
                           sourceContainerName:(NSString *)sourceContainerName 
629
                              sourceObjectName:(NSString *)sourceObjectName 
630
                                 sourceVersion:(NSString *)sourceVersion;
631
// POST storageURL/container/object?[update=] (update data from source) [If-Match]
632
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
633
                               contentEncoding:(NSString *)contentEncoding 
634
                            contentDisposition:(NSString *)contentDisposition 
635
                                      manifest:(NSString *)manifest 
636
                                       sharing:(NSString *)sharing 
637
                                      isPublic:(NSUInteger)isPublic 
638
                                      metadata:(NSDictionary *)metadata 
639
                                        update:(BOOL)update 
640
                                  contentRange:(NSString *)contentRange 
641
                                         bytes:(NSNumber *)bytes 
642
                           sourceContainerName:(NSString *)sourceContainerName 
643
                              sourceObjectName:(NSString *)sourceObjectName 
644
                                 sourceVersion:(NSString *)sourceVersion 
645
                                   ifMatch:(NSString *)matchETag;
646
// POST storageURL/container/object?[update=] (update data from source) [If-None-Match]
647
+ (id)updateObjectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
648
                               contentEncoding:(NSString *)contentEncoding 
649
                            contentDisposition:(NSString *)contentDisposition 
650
                                      manifest:(NSString *)manifest 
651
                                       sharing:(NSString *)sharing 
652
                                      isPublic:(NSUInteger)isPublic 
653
                                      metadata:(NSDictionary *)metadata 
654
                                        update:(BOOL)update 
655
                                  contentRange:(NSString *)contentRange 
656
                                         bytes:(NSNumber *)bytes 
657
                           sourceContainerName:(NSString *)sourceContainerName 
658
                              sourceObjectName:(NSString *)sourceObjectName 
659
                                 sourceVersion:(NSString *)sourceVersion 
660
                                   ifNoneMatch:(NSString *)matchETag;
661

    
662
// DELETE storageURL/container/object
663
+ (id)deleteObjectRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
664
// DELETE storageURL/container/object?[until=untilTimestamp]
665
+ (id)deleteObjectRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName until:(NSDate *)untilTimestamp;
666

    
667
@end