File Coverage

blib/lib/Paws/S3.pm
Criterion Covered Total %
statement 120 357 33.6
branch 8 20 40.0
condition 2 6 33.3
subroutine 26 85 30.5
pod 79 83 95.1
total 235 551 42.6


line stmt bran cond sub pod time code
1             package Paws::S3;
2             warn "Paws::S3 is not stable / supported / entirely developed";
3 1     1   4918 use Moose;
  1     7   5  
  1         12  
  7         4733  
  7         16  
  7         49  
4 69     69 0 321 sub service { 's3' }
5 0     0 0 0 sub version { '2006-03-01' }
6 0     0 0 0 sub flattened_arrays { 1 }
7             has max_attempts => (is => 'ro', isa => 'Int', default => 5);
8             has retry => (is => 'ro', isa => 'HashRef', default => sub {
9             { base => 'rand', type => 'exponential', growth_factor => 2 }
10             });
11             has retriables => (is => 'ro', isa => 'ArrayRef', default => sub { [
12             sub { defined $_[0]->http_status and $_[0]->http_status == 400 and $_[0]->code eq 'BadDigest' },
13             sub { defined $_[0]->http_status and $_[0]->http_status == 400 and $_[0]->code eq 'RequestTimeout' },
14             ] });
15              
16             with 'Paws::API::Caller', 'Paws::API::EndpointResolver', 'Paws::Net::S3Signature', 'Paws::Net::RestXmlCaller', 'Paws::Net::RestXMLResponse';
17              
18             has '+region_rules' => (default => sub {
19             my $regioninfo;
20             $regioninfo = [
21             {
22             constraints => [
23             [
24             'region',
25             'oneOf',
26             [
27             'us-east-1',
28             undef
29             ]
30             ]
31             ],
32             properties => {
33             credentialScope => {
34             region => 'us-east-1'
35             }
36             },
37             uri => '{scheme}://s3.amazonaws.com'
38             },
39             {
40             constraints => [
41             [
42             'region',
43             'startsWith',
44             'cn-'
45             ]
46             ],
47             properties => {
48             signatureVersion => 's3v4'
49             },
50             uri => '{scheme}://{service}.{region}.amazonaws.com.cn'
51             },
52             {
53             constraints => [
54             [
55             'region',
56             'oneOf',
57             [
58             'us-east-1',
59             'ap-northeast-1',
60             'sa-east-1',
61             'ap-southeast-1',
62             'ap-southeast-2',
63             'us-west-2',
64             'us-west-1',
65             'eu-west-1',
66             'us-gov-west-1',
67             'fips-us-gov-west-1'
68             ]
69             ]
70             ],
71             uri => '{scheme}://{service}-{region}.amazonaws.com'
72             },
73             {
74             constraints => [
75             [
76             'region',
77             'notEquals',
78             undef
79             ]
80             ],
81             properties => {
82             signatureVersion => 's3v4'
83             },
84             uri => '{scheme}://{service}.{region}.amazonaws.com'
85             }
86             ];
87              
88             return $regioninfo;
89             });
90              
91            
92             sub AbortMultipartUpload {
93 1     1 1 501 my $self = shift;
94 1         8 my $call_object = $self->new_with_coercions('Paws::S3::AbortMultipartUpload', @_);
95 1         1103 return $self->caller->do_call($self, $call_object);
96             }
97             sub CompleteMultipartUpload {
98 1     1 1 586 my $self = shift;
99 1         7 my $call_object = $self->new_with_coercions('Paws::S3::CompleteMultipartUpload', @_);
100 1         1195 return $self->caller->do_call($self, $call_object);
101             }
102             sub CopyObject {
103 2     2 1 2836 my $self = shift;
104 2         15 my $call_object = $self->new_with_coercions('Paws::S3::CopyObject', @_);
105 2         8461 return $self->caller->do_call($self, $call_object);
106             }
107             sub CreateBucket {
108 3     3 1 1517 my $self = shift;
109 3         19 my $call_object = $self->new_with_coercions('Paws::S3::CreateBucket', @_);
110 3         3649 return $self->caller->do_call($self, $call_object);
111             }
112             sub CreateMultipartUpload {
113 2     2 1 1999 my $self = shift;
114 2         11 my $call_object = $self->new_with_coercions('Paws::S3::CreateMultipartUpload', @_);
115 2         5980 return $self->caller->do_call($self, $call_object);
116             }
117             sub DeleteBucket {
118 1     1 1 251 my $self = shift;
119 1         5 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucket', @_);
120 1         431 return $self->caller->do_call($self, $call_object);
121             }
122             sub DeleteBucketAnalyticsConfiguration {
123 0     0 1 0 my $self = shift;
124 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketAnalyticsConfiguration', @_);
125 0         0 return $self->caller->do_call($self, $call_object);
126             }
127             sub DeleteBucketCors {
128 0     0 1 0 my $self = shift;
129 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketCors', @_);
130 0         0 return $self->caller->do_call($self, $call_object);
131             }
132             sub DeleteBucketInventoryConfiguration {
133 0     0 1 0 my $self = shift;
134 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketInventoryConfiguration', @_);
135 0         0 return $self->caller->do_call($self, $call_object);
136             }
137             sub DeleteBucketLifecycle {
138 1     1 1 5 my $self = shift;
139 1         9 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketLifecycle', @_);
140 1         469 return $self->caller->do_call($self, $call_object);
141             }
142             sub DeleteBucketMetricsConfiguration {
143 0     0 1 0 my $self = shift;
144 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketMetricsConfiguration', @_);
145 0         0 return $self->caller->do_call($self, $call_object);
146             }
147             sub DeleteBucketPolicy {
148 0     0 1 0 my $self = shift;
149 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketPolicy', @_);
150 0         0 return $self->caller->do_call($self, $call_object);
151             }
152             sub DeleteBucketReplication {
153 0     0 1 0 my $self = shift;
154 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketReplication', @_);
155 0         0 return $self->caller->do_call($self, $call_object);
156             }
157             sub DeleteBucketTagging {
158 0     0 1 0 my $self = shift;
159 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketTagging', @_);
160 0         0 return $self->caller->do_call($self, $call_object);
161             }
162             sub DeleteBucketWebsite {
163 0     0 1 0 my $self = shift;
164 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteBucketWebsite', @_);
165 0         0 return $self->caller->do_call($self, $call_object);
166             }
167             sub DeleteObject {
168 1     1 1 445 my $self = shift;
169 1         6 my $call_object = $self->new_with_coercions('Paws::S3::DeleteObject', @_);
170 1         1006 return $self->caller->do_call($self, $call_object);
171             }
172             sub DeleteObjects {
173 0     0 1 0 my $self = shift;
174 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteObjects', @_);
175 0         0 return $self->caller->do_call($self, $call_object);
176             }
177             sub DeleteObjectTagging {
178 0     0 1 0 my $self = shift;
179 0         0 my $call_object = $self->new_with_coercions('Paws::S3::DeleteObjectTagging', @_);
180 0         0 return $self->caller->do_call($self, $call_object);
181             }
182             sub GetBucketAccelerateConfiguration {
183 0     0 1 0 my $self = shift;
184 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketAccelerateConfiguration', @_);
185 0         0 return $self->caller->do_call($self, $call_object);
186             }
187             sub GetBucketAcl {
188 1     1 1 252 my $self = shift;
189 1         6 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketAcl', @_);
190 1         689 return $self->caller->do_call($self, $call_object);
191             }
192             sub GetBucketAnalyticsConfiguration {
193 0     0 1 0 my $self = shift;
194 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketAnalyticsConfiguration', @_);
195 0         0 return $self->caller->do_call($self, $call_object);
196             }
197             sub GetBucketCors {
198 0     0 1 0 my $self = shift;
199 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketCors', @_);
200 0         0 return $self->caller->do_call($self, $call_object);
201             }
202             sub GetBucketInventoryConfiguration {
203 0     0 1 0 my $self = shift;
204 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketInventoryConfiguration', @_);
205 0         0 return $self->caller->do_call($self, $call_object);
206             }
207             sub GetBucketLifecycle {
208 0     0 1 0 my $self = shift;
209 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketLifecycle', @_);
210 0         0 return $self->caller->do_call($self, $call_object);
211             }
212             sub GetBucketLifecycleConfiguration {
213 0     0 1 0 my $self = shift;
214 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketLifecycleConfiguration', @_);
215 0         0 return $self->caller->do_call($self, $call_object);
216             }
217             sub GetBucketLocation {
218 1     1 1 315 my $self = shift;
219 1         6 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketLocation', @_);
220 1         464 return $self->caller->do_call($self, $call_object);
221             }
222             sub GetBucketLogging {
223 1     1 1 287 my $self = shift;
224 1         7 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketLogging', @_);
225 1         457 return $self->caller->do_call($self, $call_object);
226             }
227             sub GetBucketMetricsConfiguration {
228 0     0 1 0 my $self = shift;
229 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketMetricsConfiguration', @_);
230 0         0 return $self->caller->do_call($self, $call_object);
231             }
232             sub GetBucketNotification {
233 0     0 1 0 my $self = shift;
234 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketNotification', @_);
235 0         0 return $self->caller->do_call($self, $call_object);
236             }
237             sub GetBucketNotificationConfiguration {
238 0     0 1 0 my $self = shift;
239 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketNotificationConfiguration', @_);
240 0         0 return $self->caller->do_call($self, $call_object);
241             }
242             sub GetBucketPolicy {
243 1     1 1 290 my $self = shift;
244 1         7 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketPolicy', @_);
245 1         467 return $self->caller->do_call($self, $call_object);
246             }
247             sub GetBucketReplication {
248 0     0 1 0 my $self = shift;
249 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketReplication', @_);
250 0         0 return $self->caller->do_call($self, $call_object);
251             }
252             sub GetBucketRequestPayment {
253 0     0 1 0 my $self = shift;
254 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketRequestPayment', @_);
255 0         0 return $self->caller->do_call($self, $call_object);
256             }
257             sub GetBucketTagging {
258 0     0 1 0 my $self = shift;
259 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketTagging', @_);
260 0         0 return $self->caller->do_call($self, $call_object);
261             }
262             sub GetBucketVersioning {
263 0     0 1 0 my $self = shift;
264 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketVersioning', @_);
265 0         0 return $self->caller->do_call($self, $call_object);
266             }
267             sub GetBucketWebsite {
268 0     0 1 0 my $self = shift;
269 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetBucketWebsite', @_);
270 0         0 return $self->caller->do_call($self, $call_object);
271             }
272             sub GetObject {
273 3     3 1 1810 my $self = shift;
274 3         16 my $call_object = $self->new_with_coercions('Paws::S3::GetObject', @_);
275 3         7667 return $self->caller->do_call($self, $call_object);
276             }
277             sub GetObjectAcl {
278 0     0 1 0 my $self = shift;
279 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetObjectAcl', @_);
280 0         0 return $self->caller->do_call($self, $call_object);
281             }
282             sub GetObjectTagging {
283 0     0 1 0 my $self = shift;
284 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetObjectTagging', @_);
285 0         0 return $self->caller->do_call($self, $call_object);
286             }
287             sub GetObjectTorrent {
288 0     0 1 0 my $self = shift;
289 0         0 my $call_object = $self->new_with_coercions('Paws::S3::GetObjectTorrent', @_);
290 0         0 return $self->caller->do_call($self, $call_object);
291             }
292             sub HeadBucket {
293 0     0 1 0 my $self = shift;
294 0         0 my $call_object = $self->new_with_coercions('Paws::S3::HeadBucket', @_);
295 0         0 return $self->caller->do_call($self, $call_object);
296             }
297             sub HeadObject {
298 0     0 1 0 my $self = shift;
299 0         0 my $call_object = $self->new_with_coercions('Paws::S3::HeadObject', @_);
300 0         0 return $self->caller->do_call($self, $call_object);
301             }
302             sub ListBucketAnalyticsConfigurations {
303 0     0 1 0 my $self = shift;
304 0         0 my $call_object = $self->new_with_coercions('Paws::S3::ListBucketAnalyticsConfigurations', @_);
305 0         0 return $self->caller->do_call($self, $call_object);
306             }
307             sub ListBucketInventoryConfigurations {
308 0     0 1 0 my $self = shift;
309 0         0 my $call_object = $self->new_with_coercions('Paws::S3::ListBucketInventoryConfigurations', @_);
310 0         0 return $self->caller->do_call($self, $call_object);
311             }
312             sub ListBucketMetricsConfigurations {
313 0     0 1 0 my $self = shift;
314 0         0 my $call_object = $self->new_with_coercions('Paws::S3::ListBucketMetricsConfigurations', @_);
315 0         0 return $self->caller->do_call($self, $call_object);
316             }
317             sub ListBuckets {
318 3     3 1 152 my $self = shift;
319 3         18 my $call_object = $self->new_with_coercions('Paws::S3::ListBuckets', @_);
320 3         709 return $self->caller->do_call($self, $call_object);
321             }
322             sub ListMultipartUploads {
323 2     2 1 872 my $self = shift;
324 2         14 my $call_object = $self->new_with_coercions('Paws::S3::ListMultipartUploads', @_);
325 2         2112 return $self->caller->do_call($self, $call_object);
326             }
327             sub ListObjects {
328 21     21 1 1034 my $self = shift;
329 21         121 my $call_object = $self->new_with_coercions('Paws::S3::ListObjects', @_);
330 21         29292 return $self->caller->do_call($self, $call_object);
331             }
332             sub ListObjectsV2 {
333 19     19 1 903 my $self = shift;
334 19         125 my $call_object = $self->new_with_coercions('Paws::S3::ListObjectsV2', @_);
335 19         32659 return $self->caller->do_call($self, $call_object);
336             }
337             sub ListObjectVersions {
338 1     1 1 443 my $self = shift;
339 1         6 my $call_object = $self->new_with_coercions('Paws::S3::ListObjectVersions', @_);
340 1         1059 return $self->caller->do_call($self, $call_object);
341             }
342             sub ListParts {
343 1     1 1 553 my $self = shift;
344 1         6 my $call_object = $self->new_with_coercions('Paws::S3::ListParts', @_);
345 1         1333 return $self->caller->do_call($self, $call_object);
346             }
347             sub PutBucketAccelerateConfiguration {
348 0     0 1 0 my $self = shift;
349 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketAccelerateConfiguration', @_);
350 0         0 return $self->caller->do_call($self, $call_object);
351             }
352             sub PutBucketAcl {
353 0     0 1 0 my $self = shift;
354 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketAcl', @_);
355 0         0 return $self->caller->do_call($self, $call_object);
356             }
357             sub PutBucketAnalyticsConfiguration {
358 0     0 1 0 my $self = shift;
359 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketAnalyticsConfiguration', @_);
360 0         0 return $self->caller->do_call($self, $call_object);
361             }
362             sub PutBucketCors {
363 0     0 1 0 my $self = shift;
364 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketCors', @_);
365 0         0 return $self->caller->do_call($self, $call_object);
366             }
367             sub PutBucketInventoryConfiguration {
368 0     0 1 0 my $self = shift;
369 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketInventoryConfiguration', @_);
370 0         0 return $self->caller->do_call($self, $call_object);
371             }
372             sub PutBucketLifecycle {
373 0     0 1 0 my $self = shift;
374 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketLifecycle', @_);
375 0         0 return $self->caller->do_call($self, $call_object);
376             }
377             sub PutBucketLifecycleConfiguration {
378 0     0 1 0 my $self = shift;
379 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketLifecycleConfiguration', @_);
380 0         0 return $self->caller->do_call($self, $call_object);
381             }
382             sub PutBucketLogging {
383 0     0 1 0 my $self = shift;
384 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketLogging', @_);
385 0         0 return $self->caller->do_call($self, $call_object);
386             }
387             sub PutBucketMetricsConfiguration {
388 0     0 1 0 my $self = shift;
389 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketMetricsConfiguration', @_);
390 0         0 return $self->caller->do_call($self, $call_object);
391             }
392             sub PutBucketNotification {
393 0     0 1 0 my $self = shift;
394 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketNotification', @_);
395 0         0 return $self->caller->do_call($self, $call_object);
396             }
397             sub PutBucketNotificationConfiguration {
398 0     0 1 0 my $self = shift;
399 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketNotificationConfiguration', @_);
400 0         0 return $self->caller->do_call($self, $call_object);
401             }
402             sub PutBucketPolicy {
403 0     0 1 0 my $self = shift;
404 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketPolicy', @_);
405 0         0 return $self->caller->do_call($self, $call_object);
406             }
407             sub PutBucketReplication {
408 0     0 1 0 my $self = shift;
409 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketReplication', @_);
410 0         0 return $self->caller->do_call($self, $call_object);
411             }
412             sub PutBucketRequestPayment {
413 0     0 1 0 my $self = shift;
414 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketRequestPayment', @_);
415 0         0 return $self->caller->do_call($self, $call_object);
416             }
417             sub PutBucketTagging {
418 0     0 1 0 my $self = shift;
419 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketTagging', @_);
420 0         0 return $self->caller->do_call($self, $call_object);
421             }
422             sub PutBucketVersioning {
423 0     0 1 0 my $self = shift;
424 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketVersioning', @_);
425 0         0 return $self->caller->do_call($self, $call_object);
426             }
427             sub PutBucketWebsite {
428 0     0 1 0 my $self = shift;
429 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutBucketWebsite', @_);
430 0         0 return $self->caller->do_call($self, $call_object);
431             }
432             sub PutObject {
433 6     6 1 4238 my $self = shift;
434 6         47 my $call_object = $self->new_with_coercions('Paws::S3::PutObject', @_);
435 6         21208 return $self->caller->do_call($self, $call_object);
436             }
437             sub PutObjectAcl {
438 0     0 1 0 my $self = shift;
439 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutObjectAcl', @_);
440 0         0 return $self->caller->do_call($self, $call_object);
441             }
442             sub PutObjectTagging {
443 0     0 1 0 my $self = shift;
444 0         0 my $call_object = $self->new_with_coercions('Paws::S3::PutObjectTagging', @_);
445 0         0 return $self->caller->do_call($self, $call_object);
446             }
447             sub RestoreObject {
448 0     0 1 0 my $self = shift;
449 0         0 my $call_object = $self->new_with_coercions('Paws::S3::RestoreObject', @_);
450 0         0 return $self->caller->do_call($self, $call_object);
451             }
452             sub UploadPart {
453 1     1 1 905 my $self = shift;
454 1         8 my $call_object = $self->new_with_coercions('Paws::S3::UploadPart', @_);
455 1         2117 return $self->caller->do_call($self, $call_object);
456             }
457             sub UploadPartCopy {
458 0     0 1 0 my $self = shift;
459 0         0 my $call_object = $self->new_with_coercions('Paws::S3::UploadPartCopy', @_);
460 0         0 return $self->caller->do_call($self, $call_object);
461             }
462            
463             sub ListAllMultipartUploads {
464 0     0 1 0 my $self = shift;
465              
466 0 0       0 my $callback = shift @_ if (ref($_[0]) eq 'CODE');
467 0         0 my $result = $self->ListMultipartUploads(@_);
468 0         0 my $next_result = $result;
469              
470 0 0       0 if (not defined $callback) {
471 0         0 while ($next_result->IsTruncated) {
472 0         0 $next_result = $self->ListMultipartUploads(@_, KeyMarker => $next_result->NextKeyMarker, UploadIdMarker => $next_result->NextUploadIdMarker);
473 0         0 push @{ $result->Uploads }, @{ $next_result->Uploads };
  0         0  
  0         0  
474 0         0 push @{ $result->CommonPrefixes }, @{ $next_result->CommonPrefixes };
  0         0  
  0         0  
475             }
476 0         0 return $result;
477             } else {
478 0         0 while ($result->IsTruncated) {
479 0         0 $callback->($_ => 'Uploads') foreach (@{ $result->Uploads });
  0         0  
480 0         0 $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  0         0  
481 0         0 $result = $self->ListMultipartUploads(@_, KeyMarker => $result->NextKeyMarker, UploadIdMarker => $result->NextUploadIdMarker);
482             }
483 0         0 $callback->($_ => 'Uploads') foreach (@{ $result->Uploads });
  0         0  
484 0         0 $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  0         0  
485             }
486              
487             return undef
488 0         0 }
489             sub ListAllObjects {
490 4     4 1 39 my $self = shift;
491              
492 4 100       28 my $callback = shift @_ if (ref($_[0]) eq 'CODE');
493 4         20 my $result = $self->ListObjects(@_);
494 4         507 my $next_result = $result;
495              
496 4 100       16 if (not defined $callback) {
497 2         53 while ($next_result->IsTruncated) {
498 4   33     95 $next_result = $self->ListObjects(@_, Marker => $result->NextMarker || ( (defined $result->Contents->[-1]) ? $result->Contents->[-1]->Key : undef ));
499 4         706 push @{ $result->Contents }, @{ $next_result->Contents };
  4         102  
  4         85  
500 4         9 push @{ $result->CommonPrefixes }, @{ $next_result->CommonPrefixes };
  4         103  
  4         91  
501             }
502 2         8 return $result;
503             } else {
504 2         56 while ($result->IsTruncated) {
505 4         9 $callback->($_ => 'Contents') foreach (@{ $result->Contents });
  4         93  
506 4         9 $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  4         100  
507 4   33     95 $result = $self->ListObjects(@_, Marker => $result->NextMarker || ( (defined $result->Contents->[-1]) ? $result->Contents->[-1]->Key : undef ));
508             }
509 2         5 $callback->($_ => 'Contents') foreach (@{ $result->Contents });
  2         49  
510 2         4 $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  2         50  
511             }
512              
513             return undef
514 2         8 }
515             sub ListAllObjectsV2 {
516 4     4 1 38 my $self = shift;
517              
518 4 100       17 my $callback = shift @_ if (ref($_[0]) eq 'CODE');
519 4         19 my $result = $self->ListObjectsV2(@_);
520 4         506 my $next_result = $result;
521              
522 4 100       14 if (not defined $callback) {
523 2         57 while ($next_result->IsTruncated) {
524 4         104 $next_result = $self->ListObjectsV2(@_, ContinuationToken => $next_result->NextContinuationToken);
525 4         723 push @{ $result->Contents }, @{ $next_result->Contents };
  4         105  
  4         88  
526 4         10 push @{ $result->CommonPrefixes }, @{ $next_result->CommonPrefixes };
  4         95  
  4         137  
527             }
528 2         8 return $result;
529             } else {
530 2         57 while ($result->IsTruncated) {
531 4         9 $callback->($_ => 'Contents') foreach (@{ $result->Contents });
  4         108  
532 4         11 $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  4         131  
533 4         139 $result = $self->ListObjectsV2(@_, ContinuationToken => $result->NextContinuationToken);
534             }
535 2         5 $callback->($_ => 'Contents') foreach (@{ $result->Contents });
  2         49  
536 2         4 $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  2         49  
537             }
538              
539             return undef
540 2         8 }
541             sub ListAllObjectVersions {
542 0     0 1   my $self = shift;
543              
544 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
545 0           my $result = $self->ListObjectVersions(@_);
546 0           my $next_result = $result;
547              
548 0 0         if (not defined $callback) {
549 0           while ($next_result->IsTruncated) {
550 0           $next_result = $self->ListObjectVersions(@_, KeyMarker => $next_result->NextKeyMarker, VersionIdMarker => $next_result->NextVersionIdMarker);
551 0           push @{ $result->Versions }, @{ $next_result->Versions };
  0            
  0            
552 0           push @{ $result->DeleteMarkers }, @{ $next_result->DeleteMarkers };
  0            
  0            
553 0           push @{ $result->CommonPrefixes }, @{ $next_result->CommonPrefixes };
  0            
  0            
554             }
555 0           return $result;
556             } else {
557 0           while ($result->IsTruncated) {
558 0           $callback->($_ => 'Versions') foreach (@{ $result->Versions });
  0            
559 0           $callback->($_ => 'DeleteMarkers') foreach (@{ $result->DeleteMarkers });
  0            
560 0           $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  0            
561 0           $result = $self->ListObjectVersions(@_, KeyMarker => $result->NextKeyMarker, VersionIdMarker => $result->NextVersionIdMarker);
562             }
563 0           $callback->($_ => 'Versions') foreach (@{ $result->Versions });
  0            
564 0           $callback->($_ => 'DeleteMarkers') foreach (@{ $result->DeleteMarkers });
  0            
565 0           $callback->($_ => 'CommonPrefixes') foreach (@{ $result->CommonPrefixes });
  0            
566             }
567              
568             return undef
569 0           }
570             sub ListAllParts {
571 0     0 1   my $self = shift;
572              
573 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
574 0           my $result = $self->ListParts(@_);
575 0           my $next_result = $result;
576              
577 0 0         if (not defined $callback) {
578 0           while ($next_result->IsTruncated) {
579 0           $next_result = $self->ListParts(@_, PartNumberMarker => $next_result->NextPartNumberMarker);
580 0           push @{ $result->Parts }, @{ $next_result->Parts };
  0            
  0            
581             }
582 0           return $result;
583             } else {
584 0           while ($result->IsTruncated) {
585 0           $callback->($_ => 'Parts') foreach (@{ $result->Parts });
  0            
586 0           $result = $self->ListParts(@_, PartNumberMarker => $result->NextPartNumberMarker);
587             }
588 0           $callback->($_ => 'Parts') foreach (@{ $result->Parts });
  0            
589             }
590              
591             return undef
592 0           }
593              
594              
595 0     0 0   sub operations { qw/AbortMultipartUpload CompleteMultipartUpload CopyObject CreateBucket CreateMultipartUpload DeleteBucket DeleteBucketAnalyticsConfiguration DeleteBucketCors DeleteBucketInventoryConfiguration DeleteBucketLifecycle DeleteBucketMetricsConfiguration DeleteBucketPolicy DeleteBucketReplication DeleteBucketTagging DeleteBucketWebsite DeleteObject DeleteObjects DeleteObjectTagging GetBucketAccelerateConfiguration GetBucketAcl GetBucketAnalyticsConfiguration GetBucketCors GetBucketInventoryConfiguration GetBucketLifecycle GetBucketLifecycleConfiguration GetBucketLocation GetBucketLogging GetBucketMetricsConfiguration GetBucketNotification GetBucketNotificationConfiguration GetBucketPolicy GetBucketReplication GetBucketRequestPayment GetBucketTagging GetBucketVersioning GetBucketWebsite GetObject GetObjectAcl GetObjectTagging GetObjectTorrent HeadBucket HeadObject ListBucketAnalyticsConfigurations ListBucketInventoryConfigurations ListBucketMetricsConfigurations ListBuckets ListMultipartUploads ListObjects ListObjectsV2 ListObjectVersions ListParts PutBucketAccelerateConfiguration PutBucketAcl PutBucketAnalyticsConfiguration PutBucketCors PutBucketInventoryConfiguration PutBucketLifecycle PutBucketLifecycleConfiguration PutBucketLogging PutBucketMetricsConfiguration PutBucketNotification PutBucketNotificationConfiguration PutBucketPolicy PutBucketReplication PutBucketRequestPayment PutBucketTagging PutBucketVersioning PutBucketWebsite PutObject PutObjectAcl PutObjectTagging RestoreObject UploadPart UploadPartCopy / }
596              
597             1;
598              
599             ### main pod documentation begin ###
600              
601             =head1 NAME
602              
603             Paws::S3 - Perl Interface to AWS Amazon Simple Storage Service
604              
605             =head1 SYNOPSIS
606              
607             use Paws;
608              
609             my $obj = Paws->service('S3');
610             my $res = $obj->Method(
611             Arg1 => $val1,
612             Arg2 => [ 'V1', 'V2' ],
613             # if Arg3 is an object, the HashRef will be used as arguments to the constructor
614             # of the arguments type
615             Arg3 => { Att1 => 'Val1' },
616             # if Arg4 is an array of objects, the HashRefs will be passed as arguments to
617             # the constructor of the arguments type
618             Arg4 => [ { Att1 => 'Val1' }, { Att1 => 'Val2' } ],
619             );
620              
621             =head1 DESCRIPTION
622              
623             Amazon Simple Storage Service
624              
625             Amazon Simple Storage Service is storage for the Internet. It is
626             designed to make web-scale computing easier for developers.
627              
628             Amazon S3 has a simple web services interface that you can use to store
629             and retrieve any amount of data, at any time, from anywhere on the web.
630             It gives any developer access to the same highly scalable, reliable,
631             fast, inexpensive data storage infrastructure that Amazon uses to run
632             its own global network of web sites. The service aims to maximize
633             benefits of scale and to pass those benefits on to developers.
634              
635             =head1 METHODS
636              
637             =head2 AbortMultipartUpload(Bucket => Str, Key => Str, UploadId => Str, [RequestPayer => Str])
638              
639             Each argument is described in detail in: L<Paws::S3::AbortMultipartUpload>
640              
641             Returns: a L<Paws::S3::AbortMultipartUploadOutput> instance
642              
643             Aborts a multipart upload.
644              
645             To verify that all parts have been removed, so you don't get charged
646             for the part storage, you should call the List Parts operation and
647             ensure the parts list is empty.
648              
649              
650             =head2 CompleteMultipartUpload(Bucket => Str, Key => Str, UploadId => Str, [MultipartUpload => L<Paws::S3::CompletedMultipartUpload>, RequestPayer => Str])
651              
652             Each argument is described in detail in: L<Paws::S3::CompleteMultipartUpload>
653              
654             Returns: a L<Paws::S3::CompleteMultipartUploadOutput> instance
655              
656             Completes a multipart upload by assembling previously uploaded parts.
657              
658              
659             =head2 CopyObject(Bucket => Str, CopySource => Str, Key => Str, [ACL => Str, CacheControl => Str, ContentDisposition => Str, ContentEncoding => Str, ContentLanguage => Str, ContentType => Str, CopySourceIfMatch => Str, CopySourceIfModifiedSince => Str, CopySourceIfNoneMatch => Str, CopySourceIfUnmodifiedSince => Str, CopySourceSSECustomerAlgorithm => Str, CopySourceSSECustomerKey => Str, CopySourceSSECustomerKeyMD5 => Str, Expires => Str, GrantFullControl => Str, GrantRead => Str, GrantReadACP => Str, GrantWriteACP => Str, Metadata => L<Paws::S3::Metadata>, MetadataDirective => Str, RequestPayer => Str, ServerSideEncryption => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str, SSEKMSKeyId => Str, StorageClass => Str, Tagging => Str, TaggingDirective => Str, WebsiteRedirectLocation => Str])
660              
661             Each argument is described in detail in: L<Paws::S3::CopyObject>
662              
663             Returns: a L<Paws::S3::CopyObjectOutput> instance
664              
665             Creates a copy of an object that is already stored in Amazon S3.
666              
667              
668             =head2 CreateBucket(Bucket => Str, [ACL => Str, CreateBucketConfiguration => L<Paws::S3::CreateBucketConfiguration>, GrantFullControl => Str, GrantRead => Str, GrantReadACP => Str, GrantWrite => Str, GrantWriteACP => Str])
669              
670             Each argument is described in detail in: L<Paws::S3::CreateBucket>
671              
672             Returns: a L<Paws::S3::CreateBucketOutput> instance
673              
674             Creates a new bucket.
675              
676              
677             =head2 CreateMultipartUpload(Bucket => Str, Key => Str, [ACL => Str, CacheControl => Str, ContentDisposition => Str, ContentEncoding => Str, ContentLanguage => Str, ContentType => Str, Expires => Str, GrantFullControl => Str, GrantRead => Str, GrantReadACP => Str, GrantWriteACP => Str, Metadata => L<Paws::S3::Metadata>, RequestPayer => Str, ServerSideEncryption => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str, SSEKMSKeyId => Str, StorageClass => Str, Tagging => Str, WebsiteRedirectLocation => Str])
678              
679             Each argument is described in detail in: L<Paws::S3::CreateMultipartUpload>
680              
681             Returns: a L<Paws::S3::CreateMultipartUploadOutput> instance
682              
683             Initiates a multipart upload and returns an upload ID.
684              
685             B<Note:> After you initiate multipart upload and upload one or more
686             parts, you must either complete or abort multipart upload in order to
687             stop getting charged for storage of the uploaded parts. Only after you
688             either complete or abort multipart upload, Amazon S3 frees up the parts
689             storage and stops charging you for the parts storage.
690              
691              
692             =head2 DeleteBucket(Bucket => Str)
693              
694             Each argument is described in detail in: L<Paws::S3::DeleteBucket>
695              
696             Returns: nothing
697              
698             Deletes the bucket. All objects (including all object versions and
699             Delete Markers) in the bucket must be deleted before the bucket itself
700             can be deleted.
701              
702              
703             =head2 DeleteBucketAnalyticsConfiguration(Bucket => Str, Id => Str)
704              
705             Each argument is described in detail in: L<Paws::S3::DeleteBucketAnalyticsConfiguration>
706              
707             Returns: nothing
708              
709             Deletes an analytics configuration for the bucket (specified by the
710             analytics configuration ID).
711              
712              
713             =head2 DeleteBucketCors(Bucket => Str)
714              
715             Each argument is described in detail in: L<Paws::S3::DeleteBucketCors>
716              
717             Returns: nothing
718              
719             Deletes the cors configuration information set for the bucket.
720              
721              
722             =head2 DeleteBucketInventoryConfiguration(Bucket => Str, Id => Str)
723              
724             Each argument is described in detail in: L<Paws::S3::DeleteBucketInventoryConfiguration>
725              
726             Returns: nothing
727              
728             Deletes an inventory configuration (identified by the inventory ID)
729             from the bucket.
730              
731              
732             =head2 DeleteBucketLifecycle(Bucket => Str)
733              
734             Each argument is described in detail in: L<Paws::S3::DeleteBucketLifecycle>
735              
736             Returns: nothing
737              
738             Deletes the lifecycle configuration from the bucket.
739              
740              
741             =head2 DeleteBucketMetricsConfiguration(Bucket => Str, Id => Str)
742              
743             Each argument is described in detail in: L<Paws::S3::DeleteBucketMetricsConfiguration>
744              
745             Returns: nothing
746              
747             Deletes a metrics configuration (specified by the metrics configuration
748             ID) from the bucket.
749              
750              
751             =head2 DeleteBucketPolicy(Bucket => Str)
752              
753             Each argument is described in detail in: L<Paws::S3::DeleteBucketPolicy>
754              
755             Returns: nothing
756              
757             Deletes the policy from the bucket.
758              
759              
760             =head2 DeleteBucketReplication(Bucket => Str)
761              
762             Each argument is described in detail in: L<Paws::S3::DeleteBucketReplication>
763              
764             Returns: nothing
765              
766             Deletes the replication configuration from the bucket.
767              
768              
769             =head2 DeleteBucketTagging(Bucket => Str)
770              
771             Each argument is described in detail in: L<Paws::S3::DeleteBucketTagging>
772              
773             Returns: nothing
774              
775             Deletes the tags from the bucket.
776              
777              
778             =head2 DeleteBucketWebsite(Bucket => Str)
779              
780             Each argument is described in detail in: L<Paws::S3::DeleteBucketWebsite>
781              
782             Returns: nothing
783              
784             This operation removes the website configuration from the bucket.
785              
786              
787             =head2 DeleteObject(Bucket => Str, Key => Str, [MFA => Str, RequestPayer => Str, VersionId => Str])
788              
789             Each argument is described in detail in: L<Paws::S3::DeleteObject>
790              
791             Returns: a L<Paws::S3::DeleteObjectOutput> instance
792              
793             Removes the null version (if there is one) of an object and inserts a
794             delete marker, which becomes the latest version of the object. If there
795             isn't a null version, Amazon S3 does not remove any objects.
796              
797              
798             =head2 DeleteObjects(Bucket => Str, Delete => L<Paws::S3::Delete>, [MFA => Str, RequestPayer => Str])
799              
800             Each argument is described in detail in: L<Paws::S3::DeleteObjects>
801              
802             Returns: a L<Paws::S3::DeleteObjectsOutput> instance
803              
804             This operation enables you to delete multiple objects from a bucket
805             using a single HTTP request. You may specify up to 1000 keys.
806              
807              
808             =head2 DeleteObjectTagging(Bucket => Str, Key => Str, [VersionId => Str])
809              
810             Each argument is described in detail in: L<Paws::S3::DeleteObjectTagging>
811              
812             Returns: a L<Paws::S3::DeleteObjectTaggingOutput> instance
813              
814             Removes the tag-set from an existing object.
815              
816              
817             =head2 GetBucketAccelerateConfiguration(Bucket => Str)
818              
819             Each argument is described in detail in: L<Paws::S3::GetBucketAccelerateConfiguration>
820              
821             Returns: a L<Paws::S3::GetBucketAccelerateConfigurationOutput> instance
822              
823             Returns the accelerate configuration of a bucket.
824              
825              
826             =head2 GetBucketAcl(Bucket => Str)
827              
828             Each argument is described in detail in: L<Paws::S3::GetBucketAcl>
829              
830             Returns: a L<Paws::S3::GetBucketAclOutput> instance
831              
832             Gets the access control policy for the bucket.
833              
834              
835             =head2 GetBucketAnalyticsConfiguration(Bucket => Str, Id => Str)
836              
837             Each argument is described in detail in: L<Paws::S3::GetBucketAnalyticsConfiguration>
838              
839             Returns: a L<Paws::S3::GetBucketAnalyticsConfigurationOutput> instance
840              
841             Gets an analytics configuration for the bucket (specified by the
842             analytics configuration ID).
843              
844              
845             =head2 GetBucketCors(Bucket => Str)
846              
847             Each argument is described in detail in: L<Paws::S3::GetBucketCors>
848              
849             Returns: a L<Paws::S3::GetBucketCorsOutput> instance
850              
851             Returns the cors configuration for the bucket.
852              
853              
854             =head2 GetBucketInventoryConfiguration(Bucket => Str, Id => Str)
855              
856             Each argument is described in detail in: L<Paws::S3::GetBucketInventoryConfiguration>
857              
858             Returns: a L<Paws::S3::GetBucketInventoryConfigurationOutput> instance
859              
860             Returns an inventory configuration (identified by the inventory ID)
861             from the bucket.
862              
863              
864             =head2 GetBucketLifecycle(Bucket => Str)
865              
866             Each argument is described in detail in: L<Paws::S3::GetBucketLifecycle>
867              
868             Returns: a L<Paws::S3::GetBucketLifecycleOutput> instance
869              
870             Deprecated, see the GetBucketLifecycleConfiguration operation.
871              
872              
873             =head2 GetBucketLifecycleConfiguration(Bucket => Str)
874              
875             Each argument is described in detail in: L<Paws::S3::GetBucketLifecycleConfiguration>
876              
877             Returns: a L<Paws::S3::GetBucketLifecycleConfigurationOutput> instance
878              
879             Returns the lifecycle configuration information set on the bucket.
880              
881              
882             =head2 GetBucketLocation(Bucket => Str)
883              
884             Each argument is described in detail in: L<Paws::S3::GetBucketLocation>
885              
886             Returns: a L<Paws::S3::GetBucketLocationOutput> instance
887              
888             Returns the region the bucket resides in.
889              
890              
891             =head2 GetBucketLogging(Bucket => Str)
892              
893             Each argument is described in detail in: L<Paws::S3::GetBucketLogging>
894              
895             Returns: a L<Paws::S3::GetBucketLoggingOutput> instance
896              
897             Returns the logging status of a bucket and the permissions users have
898             to view and modify that status. To use GET, you must be the bucket
899             owner.
900              
901              
902             =head2 GetBucketMetricsConfiguration(Bucket => Str, Id => Str)
903              
904             Each argument is described in detail in: L<Paws::S3::GetBucketMetricsConfiguration>
905              
906             Returns: a L<Paws::S3::GetBucketMetricsConfigurationOutput> instance
907              
908             Gets a metrics configuration (specified by the metrics configuration
909             ID) from the bucket.
910              
911              
912             =head2 GetBucketNotification(Bucket => Str)
913              
914             Each argument is described in detail in: L<Paws::S3::GetBucketNotification>
915              
916             Returns: a L<Paws::S3::NotificationConfigurationDeprecated> instance
917              
918             Deprecated, see the GetBucketNotificationConfiguration operation.
919              
920              
921             =head2 GetBucketNotificationConfiguration(Bucket => Str)
922              
923             Each argument is described in detail in: L<Paws::S3::GetBucketNotificationConfiguration>
924              
925             Returns: a L<Paws::S3::NotificationConfiguration> instance
926              
927             Returns the notification configuration of a bucket.
928              
929              
930             =head2 GetBucketPolicy(Bucket => Str)
931              
932             Each argument is described in detail in: L<Paws::S3::GetBucketPolicy>
933              
934             Returns: a L<Paws::S3::GetBucketPolicyOutput> instance
935              
936             Returns the policy of a specified bucket.
937              
938              
939             =head2 GetBucketReplication(Bucket => Str)
940              
941             Each argument is described in detail in: L<Paws::S3::GetBucketReplication>
942              
943             Returns: a L<Paws::S3::GetBucketReplicationOutput> instance
944              
945             Returns the replication configuration of a bucket.
946              
947              
948             =head2 GetBucketRequestPayment(Bucket => Str)
949              
950             Each argument is described in detail in: L<Paws::S3::GetBucketRequestPayment>
951              
952             Returns: a L<Paws::S3::GetBucketRequestPaymentOutput> instance
953              
954             Returns the request payment configuration of a bucket.
955              
956              
957             =head2 GetBucketTagging(Bucket => Str)
958              
959             Each argument is described in detail in: L<Paws::S3::GetBucketTagging>
960              
961             Returns: a L<Paws::S3::GetBucketTaggingOutput> instance
962              
963             Returns the tag set associated with the bucket.
964              
965              
966             =head2 GetBucketVersioning(Bucket => Str)
967              
968             Each argument is described in detail in: L<Paws::S3::GetBucketVersioning>
969              
970             Returns: a L<Paws::S3::GetBucketVersioningOutput> instance
971              
972             Returns the versioning state of a bucket.
973              
974              
975             =head2 GetBucketWebsite(Bucket => Str)
976              
977             Each argument is described in detail in: L<Paws::S3::GetBucketWebsite>
978              
979             Returns: a L<Paws::S3::GetBucketWebsiteOutput> instance
980              
981             Returns the website configuration for a bucket.
982              
983              
984             =head2 GetObject(Bucket => Str, Key => Str, [IfMatch => Str, IfModifiedSince => Str, IfNoneMatch => Str, IfUnmodifiedSince => Str, PartNumber => Int, Range => Str, RequestPayer => Str, ResponseCacheControl => Str, ResponseContentDisposition => Str, ResponseContentEncoding => Str, ResponseContentLanguage => Str, ResponseContentType => Str, ResponseExpires => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str, VersionId => Str])
985              
986             Each argument is described in detail in: L<Paws::S3::GetObject>
987              
988             Returns: a L<Paws::S3::GetObjectOutput> instance
989              
990             Retrieves objects from Amazon S3.
991              
992              
993             =head2 GetObjectAcl(Bucket => Str, Key => Str, [RequestPayer => Str, VersionId => Str])
994              
995             Each argument is described in detail in: L<Paws::S3::GetObjectAcl>
996              
997             Returns: a L<Paws::S3::GetObjectAclOutput> instance
998              
999             Returns the access control list (ACL) of an object.
1000              
1001              
1002             =head2 GetObjectTagging(Bucket => Str, Key => Str, [VersionId => Str])
1003              
1004             Each argument is described in detail in: L<Paws::S3::GetObjectTagging>
1005              
1006             Returns: a L<Paws::S3::GetObjectTaggingOutput> instance
1007              
1008             Returns the tag-set of an object.
1009              
1010              
1011             =head2 GetObjectTorrent(Bucket => Str, Key => Str, [RequestPayer => Str])
1012              
1013             Each argument is described in detail in: L<Paws::S3::GetObjectTorrent>
1014              
1015             Returns: a L<Paws::S3::GetObjectTorrentOutput> instance
1016              
1017             Return torrent files from a bucket.
1018              
1019              
1020             =head2 HeadBucket(Bucket => Str)
1021              
1022             Each argument is described in detail in: L<Paws::S3::HeadBucket>
1023              
1024             Returns: nothing
1025              
1026             This operation is useful to determine if a bucket exists and you have
1027             permission to access it.
1028              
1029              
1030             =head2 HeadObject(Bucket => Str, Key => Str, [IfMatch => Str, IfModifiedSince => Str, IfNoneMatch => Str, IfUnmodifiedSince => Str, PartNumber => Int, Range => Str, RequestPayer => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str, VersionId => Str])
1031              
1032             Each argument is described in detail in: L<Paws::S3::HeadObject>
1033              
1034             Returns: a L<Paws::S3::HeadObjectOutput> instance
1035              
1036             The HEAD operation retrieves metadata from an object without returning
1037             the object itself. This operation is useful if you're only interested
1038             in an object's metadata. To use HEAD, you must have READ access to the
1039             object.
1040              
1041              
1042             =head2 ListBucketAnalyticsConfigurations(Bucket => Str, [ContinuationToken => Str])
1043              
1044             Each argument is described in detail in: L<Paws::S3::ListBucketAnalyticsConfigurations>
1045              
1046             Returns: a L<Paws::S3::ListBucketAnalyticsConfigurationsOutput> instance
1047              
1048             Lists the analytics configurations for the bucket.
1049              
1050              
1051             =head2 ListBucketInventoryConfigurations(Bucket => Str, [ContinuationToken => Str])
1052              
1053             Each argument is described in detail in: L<Paws::S3::ListBucketInventoryConfigurations>
1054              
1055             Returns: a L<Paws::S3::ListBucketInventoryConfigurationsOutput> instance
1056              
1057             Returns a list of inventory configurations for the bucket.
1058              
1059              
1060             =head2 ListBucketMetricsConfigurations(Bucket => Str, [ContinuationToken => Str])
1061              
1062             Each argument is described in detail in: L<Paws::S3::ListBucketMetricsConfigurations>
1063              
1064             Returns: a L<Paws::S3::ListBucketMetricsConfigurationsOutput> instance
1065              
1066             Lists the metrics configurations for the bucket.
1067              
1068              
1069             =head2 ListBuckets( => )
1070              
1071             Each argument is described in detail in: L<Paws::S3::ListBuckets>
1072              
1073             Returns: a L<Paws::S3::ListBucketsOutput> instance
1074              
1075             Returns a list of all buckets owned by the authenticated sender of the
1076             request.
1077              
1078              
1079             =head2 ListMultipartUploads(Bucket => Str, [Delimiter => Str, EncodingType => Str, KeyMarker => Str, MaxUploads => Int, Prefix => Str, UploadIdMarker => Str])
1080              
1081             Each argument is described in detail in: L<Paws::S3::ListMultipartUploads>
1082              
1083             Returns: a L<Paws::S3::ListMultipartUploadsOutput> instance
1084              
1085             This operation lists in-progress multipart uploads.
1086              
1087              
1088             =head2 ListObjects(Bucket => Str, [Delimiter => Str, EncodingType => Str, Marker => Str, MaxKeys => Int, Prefix => Str, RequestPayer => Str])
1089              
1090             Each argument is described in detail in: L<Paws::S3::ListObjects>
1091              
1092             Returns: a L<Paws::S3::ListObjectsOutput> instance
1093              
1094             Returns some or all (up to 1000) of the objects in a bucket. You can
1095             use the request parameters as selection criteria to return a subset of
1096             the objects in a bucket.
1097              
1098              
1099             =head2 ListObjectsV2(Bucket => Str, [ContinuationToken => Str, Delimiter => Str, EncodingType => Str, FetchOwner => Bool, MaxKeys => Int, Prefix => Str, RequestPayer => Str, StartAfter => Str])
1100              
1101             Each argument is described in detail in: L<Paws::S3::ListObjectsV2>
1102              
1103             Returns: a L<Paws::S3::ListObjectsV2Output> instance
1104              
1105             Returns some or all (up to 1000) of the objects in a bucket. You can
1106             use the request parameters as selection criteria to return a subset of
1107             the objects in a bucket. Note: ListObjectsV2 is the revised List
1108             Objects API and we recommend you use this revised API for new
1109             application development.
1110              
1111              
1112             =head2 ListObjectVersions(Bucket => Str, [Delimiter => Str, EncodingType => Str, KeyMarker => Str, MaxKeys => Int, Prefix => Str, VersionIdMarker => Str])
1113              
1114             Each argument is described in detail in: L<Paws::S3::ListObjectVersions>
1115              
1116             Returns: a L<Paws::S3::ListObjectVersionsOutput> instance
1117              
1118             Returns metadata about all of the versions of objects in a bucket.
1119              
1120              
1121             =head2 ListParts(Bucket => Str, Key => Str, UploadId => Str, [MaxParts => Int, PartNumberMarker => Int, RequestPayer => Str])
1122              
1123             Each argument is described in detail in: L<Paws::S3::ListParts>
1124              
1125             Returns: a L<Paws::S3::ListPartsOutput> instance
1126              
1127             Lists the parts that have been uploaded for a specific multipart
1128             upload.
1129              
1130              
1131             =head2 PutBucketAccelerateConfiguration(AccelerateConfiguration => L<Paws::S3::AccelerateConfiguration>, Bucket => Str)
1132              
1133             Each argument is described in detail in: L<Paws::S3::PutBucketAccelerateConfiguration>
1134              
1135             Returns: nothing
1136              
1137             Sets the accelerate configuration of an existing bucket.
1138              
1139              
1140             =head2 PutBucketAcl(Bucket => Str, [AccessControlPolicy => L<Paws::S3::AccessControlPolicy>, ACL => Str, ContentMD5 => Str, GrantFullControl => Str, GrantRead => Str, GrantReadACP => Str, GrantWrite => Str, GrantWriteACP => Str])
1141              
1142             Each argument is described in detail in: L<Paws::S3::PutBucketAcl>
1143              
1144             Returns: nothing
1145              
1146             Sets the permissions on a bucket using access control lists (ACL).
1147              
1148              
1149             =head2 PutBucketAnalyticsConfiguration(AnalyticsConfiguration => L<Paws::S3::AnalyticsConfiguration>, Bucket => Str, Id => Str)
1150              
1151             Each argument is described in detail in: L<Paws::S3::PutBucketAnalyticsConfiguration>
1152              
1153             Returns: nothing
1154              
1155             Sets an analytics configuration for the bucket (specified by the
1156             analytics configuration ID).
1157              
1158              
1159             =head2 PutBucketCors(Bucket => Str, CORSConfiguration => L<Paws::S3::CORSConfiguration>, [ContentMD5 => Str])
1160              
1161             Each argument is described in detail in: L<Paws::S3::PutBucketCors>
1162              
1163             Returns: nothing
1164              
1165             Sets the cors configuration for a bucket.
1166              
1167              
1168             =head2 PutBucketInventoryConfiguration(Bucket => Str, Id => Str, InventoryConfiguration => L<Paws::S3::InventoryConfiguration>)
1169              
1170             Each argument is described in detail in: L<Paws::S3::PutBucketInventoryConfiguration>
1171              
1172             Returns: nothing
1173              
1174             Adds an inventory configuration (identified by the inventory ID) from
1175             the bucket.
1176              
1177              
1178             =head2 PutBucketLifecycle(Bucket => Str, [ContentMD5 => Str, LifecycleConfiguration => L<Paws::S3::LifecycleConfiguration>])
1179              
1180             Each argument is described in detail in: L<Paws::S3::PutBucketLifecycle>
1181              
1182             Returns: nothing
1183              
1184             Deprecated, see the PutBucketLifecycleConfiguration operation.
1185              
1186              
1187             =head2 PutBucketLifecycleConfiguration(Bucket => Str, [LifecycleConfiguration => L<Paws::S3::BucketLifecycleConfiguration>])
1188              
1189             Each argument is described in detail in: L<Paws::S3::PutBucketLifecycleConfiguration>
1190              
1191             Returns: nothing
1192              
1193             Sets lifecycle configuration for your bucket. If a lifecycle
1194             configuration exists, it replaces it.
1195              
1196              
1197             =head2 PutBucketLogging(Bucket => Str, BucketLoggingStatus => L<Paws::S3::BucketLoggingStatus>, [ContentMD5 => Str])
1198              
1199             Each argument is described in detail in: L<Paws::S3::PutBucketLogging>
1200              
1201             Returns: nothing
1202              
1203             Set the logging parameters for a bucket and to specify permissions for
1204             who can view and modify the logging parameters. To set the logging
1205             status of a bucket, you must be the bucket owner.
1206              
1207              
1208             =head2 PutBucketMetricsConfiguration(Bucket => Str, Id => Str, MetricsConfiguration => L<Paws::S3::MetricsConfiguration>)
1209              
1210             Each argument is described in detail in: L<Paws::S3::PutBucketMetricsConfiguration>
1211              
1212             Returns: nothing
1213              
1214             Sets a metrics configuration (specified by the metrics configuration
1215             ID) for the bucket.
1216              
1217              
1218             =head2 PutBucketNotification(Bucket => Str, NotificationConfiguration => L<Paws::S3::NotificationConfigurationDeprecated>, [ContentMD5 => Str])
1219              
1220             Each argument is described in detail in: L<Paws::S3::PutBucketNotification>
1221              
1222             Returns: nothing
1223              
1224             Deprecated, see the PutBucketNotificationConfiguraiton operation.
1225              
1226              
1227             =head2 PutBucketNotificationConfiguration(Bucket => Str, NotificationConfiguration => L<Paws::S3::NotificationConfiguration>)
1228              
1229             Each argument is described in detail in: L<Paws::S3::PutBucketNotificationConfiguration>
1230              
1231             Returns: nothing
1232              
1233             Enables notifications of specified events for a bucket.
1234              
1235              
1236             =head2 PutBucketPolicy(Bucket => Str, Policy => Str, [ContentMD5 => Str])
1237              
1238             Each argument is described in detail in: L<Paws::S3::PutBucketPolicy>
1239              
1240             Returns: nothing
1241              
1242             Replaces a policy on a bucket. If the bucket already has a policy, the
1243             one in this request completely replaces it.
1244              
1245              
1246             =head2 PutBucketReplication(Bucket => Str, ReplicationConfiguration => L<Paws::S3::ReplicationConfiguration>, [ContentMD5 => Str])
1247              
1248             Each argument is described in detail in: L<Paws::S3::PutBucketReplication>
1249              
1250             Returns: nothing
1251              
1252             Creates a new replication configuration (or replaces an existing one,
1253             if present).
1254              
1255              
1256             =head2 PutBucketRequestPayment(Bucket => Str, RequestPaymentConfiguration => L<Paws::S3::RequestPaymentConfiguration>, [ContentMD5 => Str])
1257              
1258             Each argument is described in detail in: L<Paws::S3::PutBucketRequestPayment>
1259              
1260             Returns: nothing
1261              
1262             Sets the request payment configuration for a bucket. By default, the
1263             bucket owner pays for downloads from the bucket. This configuration
1264             parameter enables the bucket owner (only) to specify that the person
1265             requesting the download will be charged for the download. Documentation
1266             on requester pays buckets can be found at
1267             http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
1268              
1269              
1270             =head2 PutBucketTagging(Bucket => Str, Tagging => L<Paws::S3::Tagging>, [ContentMD5 => Str])
1271              
1272             Each argument is described in detail in: L<Paws::S3::PutBucketTagging>
1273              
1274             Returns: nothing
1275              
1276             Sets the tags for a bucket.
1277              
1278              
1279             =head2 PutBucketVersioning(Bucket => Str, VersioningConfiguration => L<Paws::S3::VersioningConfiguration>, [ContentMD5 => Str, MFA => Str])
1280              
1281             Each argument is described in detail in: L<Paws::S3::PutBucketVersioning>
1282              
1283             Returns: nothing
1284              
1285             Sets the versioning state of an existing bucket. To set the versioning
1286             state, you must be the bucket owner.
1287              
1288              
1289             =head2 PutBucketWebsite(Bucket => Str, WebsiteConfiguration => L<Paws::S3::WebsiteConfiguration>, [ContentMD5 => Str])
1290              
1291             Each argument is described in detail in: L<Paws::S3::PutBucketWebsite>
1292              
1293             Returns: nothing
1294              
1295             Set the website configuration for a bucket.
1296              
1297              
1298             =head2 PutObject(Bucket => Str, Key => Str, [ACL => Str, Body => Str, CacheControl => Str, ContentDisposition => Str, ContentEncoding => Str, ContentLanguage => Str, ContentLength => Int, ContentMD5 => Str, ContentType => Str, Expires => Str, GrantFullControl => Str, GrantRead => Str, GrantReadACP => Str, GrantWriteACP => Str, Metadata => L<Paws::S3::Metadata>, RequestPayer => Str, ServerSideEncryption => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str, SSEKMSKeyId => Str, StorageClass => Str, Tagging => Str, WebsiteRedirectLocation => Str])
1299              
1300             Each argument is described in detail in: L<Paws::S3::PutObject>
1301              
1302             Returns: a L<Paws::S3::PutObjectOutput> instance
1303              
1304             Adds an object to a bucket.
1305              
1306              
1307             =head2 PutObjectAcl(Bucket => Str, Key => Str, [AccessControlPolicy => L<Paws::S3::AccessControlPolicy>, ACL => Str, ContentMD5 => Str, GrantFullControl => Str, GrantRead => Str, GrantReadACP => Str, GrantWrite => Str, GrantWriteACP => Str, RequestPayer => Str, VersionId => Str])
1308              
1309             Each argument is described in detail in: L<Paws::S3::PutObjectAcl>
1310              
1311             Returns: a L<Paws::S3::PutObjectAclOutput> instance
1312              
1313             uses the acl subresource to set the access control list (ACL)
1314             permissions for an object that already exists in a bucket
1315              
1316              
1317             =head2 PutObjectTagging(Bucket => Str, Key => Str, Tagging => L<Paws::S3::Tagging>, [ContentMD5 => Str, VersionId => Str])
1318              
1319             Each argument is described in detail in: L<Paws::S3::PutObjectTagging>
1320              
1321             Returns: a L<Paws::S3::PutObjectTaggingOutput> instance
1322              
1323             Sets the supplied tag-set to an object that already exists in a bucket
1324              
1325              
1326             =head2 RestoreObject(Bucket => Str, Key => Str, [RequestPayer => Str, RestoreRequest => L<Paws::S3::RestoreRequest>, VersionId => Str])
1327              
1328             Each argument is described in detail in: L<Paws::S3::RestoreObject>
1329              
1330             Returns: a L<Paws::S3::RestoreObjectOutput> instance
1331              
1332             Restores an archived copy of an object back into Amazon S3
1333              
1334              
1335             =head2 UploadPart(Bucket => Str, Key => Str, PartNumber => Int, UploadId => Str, [Body => Str, ContentLength => Int, ContentMD5 => Str, RequestPayer => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str])
1336              
1337             Each argument is described in detail in: L<Paws::S3::UploadPart>
1338              
1339             Returns: a L<Paws::S3::UploadPartOutput> instance
1340              
1341             Uploads a part in a multipart upload.
1342              
1343             B<Note:> After you initiate multipart upload and upload one or more
1344             parts, you must either complete or abort multipart upload in order to
1345             stop getting charged for storage of the uploaded parts. Only after you
1346             either complete or abort multipart upload, Amazon S3 frees up the parts
1347             storage and stops charging you for the parts storage.
1348              
1349              
1350             =head2 UploadPartCopy(Bucket => Str, CopySource => Str, Key => Str, PartNumber => Int, UploadId => Str, [CopySourceIfMatch => Str, CopySourceIfModifiedSince => Str, CopySourceIfNoneMatch => Str, CopySourceIfUnmodifiedSince => Str, CopySourceRange => Str, CopySourceSSECustomerAlgorithm => Str, CopySourceSSECustomerKey => Str, CopySourceSSECustomerKeyMD5 => Str, RequestPayer => Str, SSECustomerAlgorithm => Str, SSECustomerKey => Str, SSECustomerKeyMD5 => Str])
1351              
1352             Each argument is described in detail in: L<Paws::S3::UploadPartCopy>
1353              
1354             Returns: a L<Paws::S3::UploadPartCopyOutput> instance
1355              
1356             Uploads a part by copying data from an existing object as data source.
1357              
1358              
1359              
1360              
1361             =head1 PAGINATORS
1362              
1363             Paginator methods are helpers that repetively call methods that return partial results
1364              
1365             =head2 ListAllMultipartUploads(sub { },Bucket => Str, [Delimiter => Str, EncodingType => Str, KeyMarker => Str, MaxUploads => Int, Prefix => Str, UploadIdMarker => Str])
1366              
1367             =head2 ListAllMultipartUploads(Bucket => Str, [Delimiter => Str, EncodingType => Str, KeyMarker => Str, MaxUploads => Int, Prefix => Str, UploadIdMarker => Str])
1368              
1369              
1370             If passed a sub as first parameter, it will call the sub for each element found in :
1371              
1372             - Uploads, passing the object as the first parameter, and the string 'Uploads' as the second parameter
1373              
1374             - CommonPrefixes, passing the object as the first parameter, and the string 'CommonPrefixes' as the second parameter
1375              
1376             If not, it will return a a L<Paws::S3::ListMultipartUploadsOutput> instance with all the C<param>s; andC<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
1377              
1378              
1379             =head2 ListAllObjects(sub { },Bucket => Str, [Delimiter => Str, EncodingType => Str, Marker => Str, MaxKeys => Int, Prefix => Str, RequestPayer => Str])
1380              
1381             =head2 ListAllObjects(Bucket => Str, [Delimiter => Str, EncodingType => Str, Marker => Str, MaxKeys => Int, Prefix => Str, RequestPayer => Str])
1382              
1383              
1384             If passed a sub as first parameter, it will call the sub for each element found in :
1385              
1386             - Contents, passing the object as the first parameter, and the string 'Contents' as the second parameter
1387              
1388             - CommonPrefixes, passing the object as the first parameter, and the string 'CommonPrefixes' as the second parameter
1389              
1390             If not, it will return a a L<Paws::S3::ListObjectsOutput> instance with all the C<param>s; andC<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
1391              
1392              
1393             =head2 ListAllObjectsV2(sub { },Bucket => Str, [ContinuationToken => Str, Delimiter => Str, EncodingType => Str, FetchOwner => Bool, MaxKeys => Int, Prefix => Str, RequestPayer => Str, StartAfter => Str])
1394              
1395             =head2 ListAllObjectsV2(Bucket => Str, [ContinuationToken => Str, Delimiter => Str, EncodingType => Str, FetchOwner => Bool, MaxKeys => Int, Prefix => Str, RequestPayer => Str, StartAfter => Str])
1396              
1397              
1398             If passed a sub as first parameter, it will call the sub for each element found in :
1399              
1400             - Contents, passing the object as the first parameter, and the string 'Contents' as the second parameter
1401              
1402             - CommonPrefixes, passing the object as the first parameter, and the string 'CommonPrefixes' as the second parameter
1403              
1404             If not, it will return a a L<Paws::S3::ListObjectsV2Output> instance with all the C<param>s; andC<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
1405              
1406              
1407             =head2 ListAllObjectVersions(sub { },Bucket => Str, [Delimiter => Str, EncodingType => Str, KeyMarker => Str, MaxKeys => Int, Prefix => Str, VersionIdMarker => Str])
1408              
1409             =head2 ListAllObjectVersions(Bucket => Str, [Delimiter => Str, EncodingType => Str, KeyMarker => Str, MaxKeys => Int, Prefix => Str, VersionIdMarker => Str])
1410              
1411              
1412             If passed a sub as first parameter, it will call the sub for each element found in :
1413              
1414             - Versions, passing the object as the first parameter, and the string 'Versions' as the second parameter
1415              
1416             - DeleteMarkers, passing the object as the first parameter, and the string 'DeleteMarkers' as the second parameter
1417              
1418             - CommonPrefixes, passing the object as the first parameter, and the string 'CommonPrefixes' as the second parameter
1419              
1420             If not, it will return a a L<Paws::S3::ListObjectVersionsOutput> instance with all the C<param>s; andC<param>s; andC<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
1421              
1422              
1423             =head2 ListAllParts(sub { },Bucket => Str, Key => Str, UploadId => Str, [MaxParts => Int, PartNumberMarker => Int, RequestPayer => Str])
1424              
1425             =head2 ListAllParts(Bucket => Str, Key => Str, UploadId => Str, [MaxParts => Int, PartNumberMarker => Int, RequestPayer => Str])
1426              
1427              
1428             If passed a sub as first parameter, it will call the sub for each element found in :
1429              
1430             - Parts, passing the object as the first parameter, and the string 'Parts' as the second parameter
1431              
1432             If not, it will return a a L<Paws::S3::ListPartsOutput> instance with all the C<param>s; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.
1433              
1434              
1435              
1436              
1437              
1438             =head1 SEE ALSO
1439              
1440             This service class forms part of L<Paws>
1441              
1442             =head1 BUGS and CONTRIBUTIONS
1443              
1444             The source code is located here: https://github.com/pplu/aws-sdk-perl
1445              
1446             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
1447              
1448             =cut
1449