Statistics
| Branch: | Revision:

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

History | View | Annotate | Download (42.7 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
        NSString *currentContent;
70
        NSString *currentElement;
71
    ASIPithosObject *currentObject;
72
}
73

    
74
@property (assign) NSUInteger objectRequestType;
75
@property (retain) NSString *containerName;
76
@property (retain) NSString *objectName;
77
@property (retain) NSString *currentElement;
78
@property (retain) NSString *currentContent;
79
@property (retain) ASIPithosObject *currentObject;
80

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

    
102
- (NSString *)eTag;
103
- (NSUInteger)contentLength;
104
- (NSString *)contentType;
105
- (NSDate *)lastModified;
106
- (NSString *)contentEncoding;
107
- (NSString *)contentDisposition;
108
- (NSString *)version;
109
- (NSDate *)versionTimestamp;
110
- (NSString *)modifiedBy;
111
- (NSString *)manifest;
112
- (NSString *)sharing;
113
- (NSString *)sharedBy;
114
- (NSString *)publicURI;
115
- (NSDictionary *)metadata;
116

    
117
- (ASIPithosObject *)object;
118

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

    
152
- (NSData *)data;
153

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

    
175
- (NSUInteger)blockSize;
176
- (NSString *)blockHash;
177
- (NSArray *)hashes;
178
- (NSUInteger)bytes;
179

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

    
191
- (NSArray *)versions;
192

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

    
478
// POST storageURL/container/object?[update=] (update metadata)
479
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName update:(BOOL)update;
480
// POST storageURL/container/object?[update=] (update metadata) [If-Match]
481
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
482
                                            update:(BOOL)update 
483
                                           ifMatch:(NSString *)matchETag;
484
// POST storageURL/container/object?[update=] (update metadata) [If-None-Match]
485
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
486
                                            update:(BOOL)update 
487
                                       ifNoneMatch:(NSString *)matchETag;
488
// POST storageURL/container/object?[update=] (update metadata)
489
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
490
                                   contentEncoding:(NSString *)contentEncoding 
491
                                contentDisposition:(NSString *)contentDisposition 
492
                                          manifest:(NSString *)manifest 
493
                                           sharing:(NSString *)sharing 
494
                                          isPublic:(NSUInteger)isPublic 
495
                                          metadata:(NSDictionary *)metadata 
496
                                            update:(BOOL)update;
497
// POST storageURL/container/object?[update=] (update metadata) [If-Match]
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
                                           ifMatch:(NSString *)matchETag;
507
// POST storageURL/container/object?[update=] (update metadata) [If-None-Match]
508
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
509
                                   contentEncoding:(NSString *)contentEncoding 
510
                                contentDisposition:(NSString *)contentDisposition 
511
                                          manifest:(NSString *)manifest 
512
                                           sharing:(NSString *)sharing 
513
                                          isPublic:(NSUInteger)isPublic 
514
                                          metadata:(NSDictionary *)metadata 
515
                                            update:(BOOL)update 
516
                                       ifNoneMatch:(NSString *)matchETag;
517

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

    
653
// DELETE storageURL/container/object
654
+ (id)deleteContainerRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
655
// DELETE storageURL/container/object?[until=untilTimestamp]
656
+ (id)deleteContainerRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName until:(NSDate *)untilTimestamp;
657

    
658
@end