Statistics
| Branch: | Revision:

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

History | View | Annotate | Download (44.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]
137
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
138
                                 version:(NSString *)version 
139
                                   range:(NSString *)rangeString;
140
// GET storageURL/container/object?[version=version] [Range [If-Range]]
141
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
142
                                 version:(NSString *)version 
143
                                   range:(NSString *)rangeString 
144
                             ifRangeETag:(NSString *)rangeETag;
145
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
146
                                 version:(NSString *)version 
147
                                   range:(NSString *)rangeString 
148
                        ifRangeTimestamp:(NSDate *)rangeTimestamp;
149
// GET storageURL/container/object?[version=version] [Range] [If-Match]
150
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
151
                                 version:(NSString *)version 
152
                                   range:(NSString *)rangeString 
153
                                 ifMatch:(NSString *)matchETag;
154
// GET storageURL/container/object?[version=version] [Range] [If-None-Match]
155
+ (id)objectDataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
156
                                 version:(NSString *)version 
157
                                   range:(NSString *)rangeString 
158
                             ifNoneMatch:(NSString *)matchETag;
159

    
160
- (NSData *)data;
161

    
162
// GET storageURL/container/object?format=xml&hashmap=
163
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
164
// GET storageURL/container/object?format=xml&hashmap=[&version=version]
165
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName version:(NSString *)version;
166
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Match]
167
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
168
                                    version:(NSString *)version 
169
                                    ifMatch:(NSString *)matchETag;
170
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-NoneMatch]
171
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
172
                                    version:(NSString *)version 
173
                                ifNoneMatch:(NSString *)matchETag;
174
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Modified-Since]
175
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
176
                                    version:(NSString *)version 
177
                            ifModifiedSince:(NSDate *)sinceTimestamp;
178
// GET storageURL/container/object?format=xml&hashmap=[&version=version] [If-Unmodified-Since]
179
+ (id)objectHashmapRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
180
                                    version:(NSString *)version 
181
                          ifUnmodifiedSince:(NSDate *)sinceTimestamp;
182

    
183
- (NSUInteger)blockSize;
184
- (NSString *)blockHash;
185
- (NSArray *)hashes;
186
- (NSUInteger)bytes;
187

    
188
// GET storageURL/container/object?format=xml&version=list
189
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
190
// GET storageURL/container/object?format=xml&version=list [If-Match]
191
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifMatch:(NSString *)matchETag;
192
// GET storageURL/container/object?format=xml&version=list [If-None-Match]
193
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifNoneMatch:(NSString *)matchETag;
194
// GET storageURL/container/object?format=xml&version=list [If-Modified-Since]
195
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifModifiedSince:(NSDate *)sinceTimestamp;
196
// GET storageURL/container/object?format=xml&version=list [If-Unmodified-Since]
197
+ (id)objectVersionsRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName ifUnmodifiedSince:(NSDate *)sinceTimestamp;
198

    
199
- (NSArray *)versions;
200

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

    
498
// POST storageURL/container/object?[update=] (update metadata)
499
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName update:(BOOL)update;
500
// POST storageURL/container/object?[update=] (update metadata) [If-Match]
501
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
502
                                            update:(BOOL)update 
503
                                           ifMatch:(NSString *)matchETag;
504
// POST storageURL/container/object?[update=] (update metadata) [If-None-Match]
505
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
506
                                            update:(BOOL)update 
507
                                       ifNoneMatch:(NSString *)matchETag;
508
// POST storageURL/container/object?[update=] (update metadata)
509
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
510
                                   contentEncoding:(NSString *)contentEncoding 
511
                                contentDisposition:(NSString *)contentDisposition 
512
                                          manifest:(NSString *)manifest 
513
                                           sharing:(NSString *)sharing 
514
                                          isPublic:(NSUInteger)isPublic 
515
                                          metadata:(NSDictionary *)metadata 
516
                                            update:(BOOL)update;
517
// POST storageURL/container/object?[update=] (update metadata) [If-Match]
518
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
519
                                   contentEncoding:(NSString *)contentEncoding 
520
                                contentDisposition:(NSString *)contentDisposition 
521
                                          manifest:(NSString *)manifest 
522
                                           sharing:(NSString *)sharing 
523
                                          isPublic:(NSUInteger)isPublic 
524
                                          metadata:(NSDictionary *)metadata 
525
                                            update:(BOOL)update 
526
                                           ifMatch:(NSString *)matchETag;
527
// POST storageURL/container/object?[update=] (update metadata) [If-None-Match]
528
+ (id)updateObjectMetadataRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName 
529
                                   contentEncoding:(NSString *)contentEncoding 
530
                                contentDisposition:(NSString *)contentDisposition 
531
                                          manifest:(NSString *)manifest 
532
                                           sharing:(NSString *)sharing 
533
                                          isPublic:(NSUInteger)isPublic 
534
                                          metadata:(NSDictionary *)metadata 
535
                                            update:(BOOL)update 
536
                                       ifNoneMatch:(NSString *)matchETag;
537

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

    
676
// DELETE storageURL/container/object
677
+ (id)deleteObjectRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName;
678
// DELETE storageURL/container/object?[until=untilTimestamp]
679
+ (id)deleteObjectRequestWithContainerName:(NSString *)containerName objectName:(NSString *)objectName until:(NSDate *)untilTimestamp;
680

    
681
@end