File Coverage

blib/lib/Paws/Glacier.pm
Criterion Covered Total %
statement 25 181 13.8
branch 0 16 0.0
condition n/a
subroutine 9 43 20.9
pod 37 41 90.2
total 71 281 25.2


line stmt bran cond sub pod time code
1             package Paws::Glacier;
2 1     1   15739 use Moose;
  1     3   4  
  1         11  
  3         2982  
  3         8  
  3         22  
3 15     15 0 52 sub service { 'glacier' }
4 0     0 0 0 sub version { '2012-06-01' }
5 0     0 0 0 sub flattened_arrays { 0 }
6             has max_attempts => (is => 'ro', isa => 'Int', default => 5);
7             has retry => (is => 'ro', isa => 'HashRef', default => sub {
8             { base => 'rand', type => 'exponential', growth_factor => 2 }
9             });
10             has retriables => (is => 'ro', isa => 'ArrayRef', default => sub { [
11             ] });
12              
13             with 'Paws::API::Caller', 'Paws::API::EndpointResolver', 'Paws::Net::V4Signature', 'Paws::Net::RestJsonCaller', 'Paws::Net::RestJsonResponse';
14              
15            
16             sub AbortMultipartUpload {
17 0     0 1 0 my $self = shift;
18 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::AbortMultipartUpload', @_);
19 0         0 return $self->caller->do_call($self, $call_object);
20             }
21             sub AbortVaultLock {
22 0     0 1 0 my $self = shift;
23 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::AbortVaultLock', @_);
24 0         0 return $self->caller->do_call($self, $call_object);
25             }
26             sub AddTagsToVault {
27 1     1 1 391 my $self = shift;
28 1         6 my $call_object = $self->new_with_coercions('Paws::Glacier::AddTagsToVault', @_);
29 1         849 return $self->caller->do_call($self, $call_object);
30             }
31             sub CompleteMultipartUpload {
32 0     0 1 0 my $self = shift;
33 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::CompleteMultipartUpload', @_);
34 0         0 return $self->caller->do_call($self, $call_object);
35             }
36             sub CompleteVaultLock {
37 0     0 1 0 my $self = shift;
38 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::CompleteVaultLock', @_);
39 0         0 return $self->caller->do_call($self, $call_object);
40             }
41             sub CreateVault {
42 1     1 1 351 my $self = shift;
43 1         6 my $call_object = $self->new_with_coercions('Paws::Glacier::CreateVault', @_);
44 1         944 return $self->caller->do_call($self, $call_object);
45             }
46             sub DeleteArchive {
47 0     0 1 0 my $self = shift;
48 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::DeleteArchive', @_);
49 0         0 return $self->caller->do_call($self, $call_object);
50             }
51             sub DeleteVault {
52 1     1 1 394 my $self = shift;
53 1         7 my $call_object = $self->new_with_coercions('Paws::Glacier::DeleteVault', @_);
54 1         726 return $self->caller->do_call($self, $call_object);
55             }
56             sub DeleteVaultAccessPolicy {
57 0     0 1 0 my $self = shift;
58 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::DeleteVaultAccessPolicy', @_);
59 0         0 return $self->caller->do_call($self, $call_object);
60             }
61             sub DeleteVaultNotifications {
62 0     0 1 0 my $self = shift;
63 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::DeleteVaultNotifications', @_);
64 0         0 return $self->caller->do_call($self, $call_object);
65             }
66             sub DescribeJob {
67 0     0 1 0 my $self = shift;
68 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::DescribeJob', @_);
69 0         0 return $self->caller->do_call($self, $call_object);
70             }
71             sub DescribeVault {
72 1     1 1 336 my $self = shift;
73 1         6 my $call_object = $self->new_with_coercions('Paws::Glacier::DescribeVault', @_);
74 1         687 return $self->caller->do_call($self, $call_object);
75             }
76             sub GetDataRetrievalPolicy {
77 0     0 1 0 my $self = shift;
78 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::GetDataRetrievalPolicy', @_);
79 0         0 return $self->caller->do_call($self, $call_object);
80             }
81             sub GetJobOutput {
82 0     0 1 0 my $self = shift;
83 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::GetJobOutput', @_);
84 0         0 return $self->caller->do_call($self, $call_object);
85             }
86             sub GetVaultAccessPolicy {
87 0     0 1 0 my $self = shift;
88 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::GetVaultAccessPolicy', @_);
89 0         0 return $self->caller->do_call($self, $call_object);
90             }
91             sub GetVaultLock {
92 0     0 1 0 my $self = shift;
93 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::GetVaultLock', @_);
94 0         0 return $self->caller->do_call($self, $call_object);
95             }
96             sub GetVaultNotifications {
97 0     0 1 0 my $self = shift;
98 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::GetVaultNotifications', @_);
99 0         0 return $self->caller->do_call($self, $call_object);
100             }
101             sub InitiateJob {
102 0     0 1 0 my $self = shift;
103 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::InitiateJob', @_);
104 0         0 return $self->caller->do_call($self, $call_object);
105             }
106             sub InitiateMultipartUpload {
107 0     0 1 0 my $self = shift;
108 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::InitiateMultipartUpload', @_);
109 0         0 return $self->caller->do_call($self, $call_object);
110             }
111             sub InitiateVaultLock {
112 0     0 1 0 my $self = shift;
113 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::InitiateVaultLock', @_);
114 0         0 return $self->caller->do_call($self, $call_object);
115             }
116             sub ListJobs {
117 0     0 1 0 my $self = shift;
118 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::ListJobs', @_);
119 0         0 return $self->caller->do_call($self, $call_object);
120             }
121             sub ListMultipartUploads {
122 0     0 1 0 my $self = shift;
123 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::ListMultipartUploads', @_);
124 0         0 return $self->caller->do_call($self, $call_object);
125             }
126             sub ListParts {
127 0     0 1 0 my $self = shift;
128 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::ListParts', @_);
129 0         0 return $self->caller->do_call($self, $call_object);
130             }
131             sub ListProvisionedCapacity {
132 0     0 1 0 my $self = shift;
133 0         0 my $call_object = $self->new_with_coercions('Paws::Glacier::ListProvisionedCapacity', @_);
134 0         0 return $self->caller->do_call($self, $call_object);
135             }
136             sub ListTagsForVault {
137 1     1 1 350 my $self = shift;
138 1         7 my $call_object = $self->new_with_coercions('Paws::Glacier::ListTagsForVault', @_);
139 1         707 return $self->caller->do_call($self, $call_object);
140             }
141             sub ListVaults {
142 3     3 1 318 my $self = shift;
143 3         18 my $call_object = $self->new_with_coercions('Paws::Glacier::ListVaults', @_);
144 3         1964 return $self->caller->do_call($self, $call_object);
145             }
146             sub PurchaseProvisionedCapacity {
147 0     0 1   my $self = shift;
148 0           my $call_object = $self->new_with_coercions('Paws::Glacier::PurchaseProvisionedCapacity', @_);
149 0           return $self->caller->do_call($self, $call_object);
150             }
151             sub RemoveTagsFromVault {
152 0     0 1   my $self = shift;
153 0           my $call_object = $self->new_with_coercions('Paws::Glacier::RemoveTagsFromVault', @_);
154 0           return $self->caller->do_call($self, $call_object);
155             }
156             sub SetDataRetrievalPolicy {
157 0     0 1   my $self = shift;
158 0           my $call_object = $self->new_with_coercions('Paws::Glacier::SetDataRetrievalPolicy', @_);
159 0           return $self->caller->do_call($self, $call_object);
160             }
161             sub SetVaultAccessPolicy {
162 0     0 1   my $self = shift;
163 0           my $call_object = $self->new_with_coercions('Paws::Glacier::SetVaultAccessPolicy', @_);
164 0           return $self->caller->do_call($self, $call_object);
165             }
166             sub SetVaultNotifications {
167 0     0 1   my $self = shift;
168 0           my $call_object = $self->new_with_coercions('Paws::Glacier::SetVaultNotifications', @_);
169 0           return $self->caller->do_call($self, $call_object);
170             }
171             sub UploadArchive {
172 0     0 1   my $self = shift;
173 0           my $call_object = $self->new_with_coercions('Paws::Glacier::UploadArchive', @_);
174 0           return $self->caller->do_call($self, $call_object);
175             }
176             sub UploadMultipartPart {
177 0     0 1   my $self = shift;
178 0           my $call_object = $self->new_with_coercions('Paws::Glacier::UploadMultipartPart', @_);
179 0           return $self->caller->do_call($self, $call_object);
180             }
181            
182             sub ListAllJobs {
183 0     0 1   my $self = shift;
184              
185 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
186 0           my $result = $self->ListJobs(@_);
187 0           my $next_result = $result;
188              
189 0 0         if (not defined $callback) {
190 0           while ($next_result->Marker) {
191 0           $next_result = $self->ListJobs(@_, marker => $next_result->Marker);
192 0           push @{ $result->JobList }, @{ $next_result->JobList };
  0            
  0            
193             }
194 0           return $result;
195             } else {
196 0           while ($result->Marker) {
197 0           $callback->($_ => 'JobList') foreach (@{ $result->JobList });
  0            
198 0           $result = $self->ListJobs(@_, marker => $result->Marker);
199             }
200 0           $callback->($_ => 'JobList') foreach (@{ $result->JobList });
  0            
201             }
202              
203             return undef
204 0           }
205             sub ListAllMultipartUploads {
206 0     0 1   my $self = shift;
207              
208 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
209 0           my $result = $self->ListMultipartUploads(@_);
210 0           my $next_result = $result;
211              
212 0 0         if (not defined $callback) {
213 0           while ($next_result->Marker) {
214 0           $next_result = $self->ListMultipartUploads(@_, marker => $next_result->Marker);
215 0           push @{ $result->UploadsList }, @{ $next_result->UploadsList };
  0            
  0            
216             }
217 0           return $result;
218             } else {
219 0           while ($result->Marker) {
220 0           $callback->($_ => 'UploadsList') foreach (@{ $result->UploadsList });
  0            
221 0           $result = $self->ListMultipartUploads(@_, marker => $result->Marker);
222             }
223 0           $callback->($_ => 'UploadsList') foreach (@{ $result->UploadsList });
  0            
224             }
225              
226             return undef
227 0           }
228             sub ListAllParts {
229 0     0 1   my $self = shift;
230              
231 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
232 0           my $result = $self->ListParts(@_);
233 0           my $next_result = $result;
234              
235 0 0         if (not defined $callback) {
236 0           while ($next_result->Marker) {
237 0           $next_result = $self->ListParts(@_, marker => $next_result->Marker);
238 0           push @{ $result->Parts }, @{ $next_result->Parts };
  0            
  0            
239             }
240 0           return $result;
241             } else {
242 0           while ($result->Marker) {
243 0           $callback->($_ => 'Parts') foreach (@{ $result->Parts });
  0            
244 0           $result = $self->ListParts(@_, marker => $result->Marker);
245             }
246 0           $callback->($_ => 'Parts') foreach (@{ $result->Parts });
  0            
247             }
248              
249             return undef
250 0           }
251             sub ListAllVaults {
252 0     0 1   my $self = shift;
253              
254 0 0         my $callback = shift @_ if (ref($_[0]) eq 'CODE');
255 0           my $result = $self->ListVaults(@_);
256 0           my $next_result = $result;
257              
258 0 0         if (not defined $callback) {
259 0           while ($next_result->Marker) {
260 0           $next_result = $self->ListVaults(@_, marker => $next_result->Marker);
261 0           push @{ $result->VaultList }, @{ $next_result->VaultList };
  0            
  0            
262             }
263 0           return $result;
264             } else {
265 0           while ($result->Marker) {
266 0           $callback->($_ => 'VaultList') foreach (@{ $result->VaultList });
  0            
267 0           $result = $self->ListVaults(@_, marker => $result->Marker);
268             }
269 0           $callback->($_ => 'VaultList') foreach (@{ $result->VaultList });
  0            
270             }
271              
272             return undef
273 0           }
274              
275              
276 0     0 0   sub operations { qw/AbortMultipartUpload AbortVaultLock AddTagsToVault CompleteMultipartUpload CompleteVaultLock CreateVault DeleteArchive DeleteVault DeleteVaultAccessPolicy DeleteVaultNotifications DescribeJob DescribeVault GetDataRetrievalPolicy GetJobOutput GetVaultAccessPolicy GetVaultLock GetVaultNotifications InitiateJob InitiateMultipartUpload InitiateVaultLock ListJobs ListMultipartUploads ListParts ListProvisionedCapacity ListTagsForVault ListVaults PurchaseProvisionedCapacity RemoveTagsFromVault SetDataRetrievalPolicy SetVaultAccessPolicy SetVaultNotifications UploadArchive UploadMultipartPart / }
277              
278             1;
279              
280             ### main pod documentation begin ###
281              
282             =head1 NAME
283              
284             Paws::Glacier - Perl Interface to AWS Amazon Glacier
285              
286             =head1 SYNOPSIS
287              
288             use Paws;
289              
290             my $obj = Paws->service('Glacier');
291             my $res = $obj->Method(
292             Arg1 => $val1,
293             Arg2 => [ 'V1', 'V2' ],
294             # if Arg3 is an object, the HashRef will be used as arguments to the constructor
295             # of the arguments type
296             Arg3 => { Att1 => 'Val1' },
297             # if Arg4 is an array of objects, the HashRefs will be passed as arguments to
298             # the constructor of the arguments type
299             Arg4 => [ { Att1 => 'Val1' }, { Att1 => 'Val2' } ],
300             );
301              
302             =head1 DESCRIPTION
303              
304             Amazon Glacier is a storage solution for "cold data."
305              
306             Amazon Glacier is an extremely low-cost storage service that provides
307             secure, durable, and easy-to-use storage for data backup and archival.
308             With Amazon Glacier, customers can store their data cost effectively
309             for months, years, or decades. Amazon Glacier also enables customers to
310             offload the administrative burdens of operating and scaling storage to
311             AWS, so they don't have to worry about capacity planning, hardware
312             provisioning, data replication, hardware failure and recovery, or
313             time-consuming hardware migrations.
314              
315             Amazon Glacier is a great storage choice when low storage cost is
316             paramount, your data is rarely retrieved, and retrieval latency of
317             several hours is acceptable. If your application requires fast or
318             frequent access to your data, consider using Amazon S3. For more
319             information, see Amazon Simple Storage Service (Amazon S3).
320              
321             You can store any kind of data in any format. There is no maximum limit
322             on the total amount of data you can store in Amazon Glacier.
323              
324             If you are a first-time user of Amazon Glacier, we recommend that you
325             begin by reading the following sections in the I<Amazon Glacier
326             Developer Guide>:
327              
328             =over
329              
330             =item *
331              
332             What is Amazon Glacier - This section of the Developer Guide describes
333             the underlying data model, the operations it supports, and the AWS SDKs
334             that you can use to interact with the service.
335              
336             =item *
337              
338             Getting Started with Amazon Glacier - The Getting Started section walks
339             you through the process of creating a vault, uploading archives,
340             creating jobs to download archives, retrieving the job output, and
341             deleting archives.
342              
343             =back
344              
345              
346             =head1 METHODS
347              
348             =head2 AbortMultipartUpload(AccountId => Str, UploadId => Str, VaultName => Str)
349              
350             Each argument is described in detail in: L<Paws::Glacier::AbortMultipartUpload>
351              
352             Returns: nothing
353              
354             This operation aborts a multipart upload identified by the upload ID.
355              
356             After the Abort Multipart Upload request succeeds, you cannot upload
357             any more parts to the multipart upload or complete the multipart
358             upload. Aborting a completed upload fails. However, aborting an
359             already-aborted upload will succeed, for a short time. For more
360             information about uploading a part and completing a multipart upload,
361             see UploadMultipartPart and CompleteMultipartUpload.
362              
363             This operation is idempotent.
364              
365             An AWS account has full permission to perform all operations (actions).
366             However, AWS Identity and Access Management (IAM) users don't have any
367             permissions by default. You must grant them explicit permission to
368             perform specific actions. For more information, see Access Control
369             Using AWS Identity and Access Management (IAM).
370              
371             For conceptual information and underlying REST API, see Working with
372             Archives in Amazon Glacier and Abort Multipart Upload in the I<Amazon
373             Glacier Developer Guide>.
374              
375              
376             =head2 AbortVaultLock(AccountId => Str, VaultName => Str)
377              
378             Each argument is described in detail in: L<Paws::Glacier::AbortVaultLock>
379              
380             Returns: nothing
381              
382             This operation aborts the vault locking process if the vault lock is
383             not in the C<Locked> state. If the vault lock is in the C<Locked> state
384             when this operation is requested, the operation returns an
385             C<AccessDeniedException> error. Aborting the vault locking process
386             removes the vault lock policy from the specified vault.
387              
388             A vault lock is put into the C<InProgress> state by calling
389             InitiateVaultLock. A vault lock is put into the C<Locked> state by
390             calling CompleteVaultLock. You can get the state of a vault lock by
391             calling GetVaultLock. For more information about the vault locking
392             process, see Amazon Glacier Vault Lock. For more information about
393             vault lock policies, see Amazon Glacier Access Control with Vault Lock
394             Policies.
395              
396             This operation is idempotent. You can successfully invoke this
397             operation multiple times, if the vault lock is in the C<InProgress>
398             state or if there is no policy associated with the vault.
399              
400              
401             =head2 AddTagsToVault(AccountId => Str, VaultName => Str, [Tags => L<Paws::Glacier::TagMap>])
402              
403             Each argument is described in detail in: L<Paws::Glacier::AddTagsToVault>
404              
405             Returns: nothing
406              
407             This operation adds the specified tags to a vault. Each tag is composed
408             of a key and a value. Each vault can have up to 10 tags. If your
409             request would cause the tag limit for the vault to be exceeded, the
410             operation throws the C<LimitExceededException> error. If a tag already
411             exists on the vault under a specified key, the existing key value will
412             be overwritten. For more information about tags, see Tagging Amazon
413             Glacier Resources.
414              
415              
416             =head2 CompleteMultipartUpload(AccountId => Str, UploadId => Str, VaultName => Str, [ArchiveSize => Str, Checksum => Str])
417              
418             Each argument is described in detail in: L<Paws::Glacier::CompleteMultipartUpload>
419              
420             Returns: a L<Paws::Glacier::ArchiveCreationOutput> instance
421              
422             You call this operation to inform Amazon Glacier that all the archive
423             parts have been uploaded and that Amazon Glacier can now assemble the
424             archive from the uploaded parts. After assembling and saving the
425             archive to the vault, Amazon Glacier returns the URI path of the newly
426             created archive resource. Using the URI path, you can then access the
427             archive. After you upload an archive, you should save the archive ID
428             returned to retrieve the archive at a later point. You can also get the
429             vault inventory to obtain a list of archive IDs in a vault. For more
430             information, see InitiateJob.
431              
432             In the request, you must include the computed SHA256 tree hash of the
433             entire archive you have uploaded. For information about computing a
434             SHA256 tree hash, see Computing Checksums. On the server side, Amazon
435             Glacier also constructs the SHA256 tree hash of the assembled archive.
436             If the values match, Amazon Glacier saves the archive to the vault;
437             otherwise, it returns an error, and the operation fails. The ListParts
438             operation returns a list of parts uploaded for a specific multipart
439             upload. It includes checksum information for each uploaded part that
440             can be used to debug a bad checksum issue.
441              
442             Additionally, Amazon Glacier also checks for any missing content ranges
443             when assembling the archive, if missing content ranges are found,
444             Amazon Glacier returns an error and the operation fails.
445              
446             Complete Multipart Upload is an idempotent operation. After your first
447             successful complete multipart upload, if you call the operation again
448             within a short period, the operation will succeed and return the same
449             archive ID. This is useful in the event you experience a network issue
450             that causes an aborted connection or receive a 500 server error, in
451             which case you can repeat your Complete Multipart Upload request and
452             get the same archive ID without creating duplicate archives. Note,
453             however, that after the multipart upload completes, you cannot call the
454             List Parts operation and the multipart upload will not appear in List
455             Multipart Uploads response, even if idempotent complete is possible.
456              
457             An AWS account has full permission to perform all operations (actions).
458             However, AWS Identity and Access Management (IAM) users don't have any
459             permissions by default. You must grant them explicit permission to
460             perform specific actions. For more information, see Access Control
461             Using AWS Identity and Access Management (IAM).
462              
463             For conceptual information and underlying REST API, see Uploading Large
464             Archives in Parts (Multipart Upload) and Complete Multipart Upload in
465             the I<Amazon Glacier Developer Guide>.
466              
467              
468             =head2 CompleteVaultLock(AccountId => Str, LockId => Str, VaultName => Str)
469              
470             Each argument is described in detail in: L<Paws::Glacier::CompleteVaultLock>
471              
472             Returns: nothing
473              
474             This operation completes the vault locking process by transitioning the
475             vault lock from the C<InProgress> state to the C<Locked> state, which
476             causes the vault lock policy to become unchangeable. A vault lock is
477             put into the C<InProgress> state by calling InitiateVaultLock. You can
478             obtain the state of the vault lock by calling GetVaultLock. For more
479             information about the vault locking process, Amazon Glacier Vault Lock.
480              
481             This operation is idempotent. This request is always successful if the
482             vault lock is in the C<Locked> state and the provided lock ID matches
483             the lock ID originally used to lock the vault.
484              
485             If an invalid lock ID is passed in the request when the vault lock is
486             in the C<Locked> state, the operation returns an
487             C<AccessDeniedException> error. If an invalid lock ID is passed in the
488             request when the vault lock is in the C<InProgress> state, the
489             operation throws an C<InvalidParameter> error.
490              
491              
492             =head2 CreateVault(AccountId => Str, VaultName => Str)
493              
494             Each argument is described in detail in: L<Paws::Glacier::CreateVault>
495              
496             Returns: a L<Paws::Glacier::CreateVaultOutput> instance
497              
498             This operation creates a new vault with the specified name. The name of
499             the vault must be unique within a region for an AWS account. You can
500             create up to 1,000 vaults per account. If you need to create more
501             vaults, contact Amazon Glacier.
502              
503             You must use the following guidelines when naming a vault.
504              
505             =over
506              
507             =item *
508              
509             Names can be between 1 and 255 characters long.
510              
511             =item *
512              
513             Allowed characters are a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen),
514             and '.' (period).
515              
516             =back
517              
518             This operation is idempotent.
519              
520             An AWS account has full permission to perform all operations (actions).
521             However, AWS Identity and Access Management (IAM) users don't have any
522             permissions by default. You must grant them explicit permission to
523             perform specific actions. For more information, see Access Control
524             Using AWS Identity and Access Management (IAM).
525              
526             For conceptual information and underlying REST API, see Creating a
527             Vault in Amazon Glacier and Create Vault in the I<Amazon Glacier
528             Developer Guide>.
529              
530              
531             =head2 DeleteArchive(AccountId => Str, ArchiveId => Str, VaultName => Str)
532              
533             Each argument is described in detail in: L<Paws::Glacier::DeleteArchive>
534              
535             Returns: nothing
536              
537             This operation deletes an archive from a vault. Subsequent requests to
538             initiate a retrieval of this archive will fail. Archive retrievals that
539             are in progress for this archive ID may or may not succeed according to
540             the following scenarios:
541              
542             =over
543              
544             =item *
545              
546             If the archive retrieval job is actively preparing the data for
547             download when Amazon Glacier receives the delete archive request, the
548             archival retrieval operation might fail.
549              
550             =item *
551              
552             If the archive retrieval job has successfully prepared the archive for
553             download when Amazon Glacier receives the delete archive request, you
554             will be able to download the output.
555              
556             =back
557              
558             This operation is idempotent. Attempting to delete an already-deleted
559             archive does not result in an error.
560              
561             An AWS account has full permission to perform all operations (actions).
562             However, AWS Identity and Access Management (IAM) users don't have any
563             permissions by default. You must grant them explicit permission to
564             perform specific actions. For more information, see Access Control
565             Using AWS Identity and Access Management (IAM).
566              
567             For conceptual information and underlying REST API, see Deleting an
568             Archive in Amazon Glacier and Delete Archive in the I<Amazon Glacier
569             Developer Guide>.
570              
571              
572             =head2 DeleteVault(AccountId => Str, VaultName => Str)
573              
574             Each argument is described in detail in: L<Paws::Glacier::DeleteVault>
575              
576             Returns: nothing
577              
578             This operation deletes a vault. Amazon Glacier will delete a vault only
579             if there are no archives in the vault as of the last inventory and
580             there have been no writes to the vault since the last inventory. If
581             either of these conditions is not satisfied, the vault deletion fails
582             (that is, the vault is not removed) and Amazon Glacier returns an
583             error. You can use DescribeVault to return the number of archives in a
584             vault, and you can use Initiate a Job (POST jobs) to initiate a new
585             inventory retrieval for a vault. The inventory contains the archive IDs
586             you use to delete archives using Delete Archive (DELETE archive).
587              
588             This operation is idempotent.
589              
590             An AWS account has full permission to perform all operations (actions).
591             However, AWS Identity and Access Management (IAM) users don't have any
592             permissions by default. You must grant them explicit permission to
593             perform specific actions. For more information, see Access Control
594             Using AWS Identity and Access Management (IAM).
595              
596             For conceptual information and underlying REST API, see Deleting a
597             Vault in Amazon Glacier and Delete Vault in the I<Amazon Glacier
598             Developer Guide>.
599              
600              
601             =head2 DeleteVaultAccessPolicy(AccountId => Str, VaultName => Str)
602              
603             Each argument is described in detail in: L<Paws::Glacier::DeleteVaultAccessPolicy>
604              
605             Returns: nothing
606              
607             This operation deletes the access policy associated with the specified
608             vault. The operation is eventually consistent; that is, it might take
609             some time for Amazon Glacier to completely remove the access policy,
610             and you might still see the effect of the policy for a short time after
611             you send the delete request.
612              
613             This operation is idempotent. You can invoke delete multiple times,
614             even if there is no policy associated with the vault. For more
615             information about vault access policies, see Amazon Glacier Access
616             Control with Vault Access Policies.
617              
618              
619             =head2 DeleteVaultNotifications(AccountId => Str, VaultName => Str)
620              
621             Each argument is described in detail in: L<Paws::Glacier::DeleteVaultNotifications>
622              
623             Returns: nothing
624              
625             This operation deletes the notification configuration set for a vault.
626             The operation is eventually consistent; that is, it might take some
627             time for Amazon Glacier to completely disable the notifications and you
628             might still receive some notifications for a short time after you send
629             the delete request.
630              
631             An AWS account has full permission to perform all operations (actions).
632             However, AWS Identity and Access Management (IAM) users don't have any
633             permissions by default. You must grant them explicit permission to
634             perform specific actions. For more information, see Access Control
635             Using AWS Identity and Access Management (IAM).
636              
637             For conceptual information and underlying REST API, see Configuring
638             Vault Notifications in Amazon Glacier and Delete Vault Notification
639             Configuration in the Amazon Glacier Developer Guide.
640              
641              
642             =head2 DescribeJob(AccountId => Str, JobId => Str, VaultName => Str)
643              
644             Each argument is described in detail in: L<Paws::Glacier::DescribeJob>
645              
646             Returns: a L<Paws::Glacier::GlacierJobDescription> instance
647              
648             This operation returns information about a job you previously
649             initiated, including the job initiation date, the user who initiated
650             the job, the job status code/message and the Amazon SNS topic to notify
651             after Amazon Glacier completes the job. For more information about
652             initiating a job, see InitiateJob.
653              
654             This operation enables you to check the status of your job. However, it
655             is strongly recommended that you set up an Amazon SNS topic and specify
656             it in your initiate job request so that Amazon Glacier can notify the
657             topic after it completes the job.
658              
659             A job ID will not expire for at least 24 hours after Amazon Glacier
660             completes the job.
661              
662             An AWS account has full permission to perform all operations (actions).
663             However, AWS Identity and Access Management (IAM) users don't have any
664             permissions by default. You must grant them explicit permission to
665             perform specific actions. For more information, see Access Control
666             Using AWS Identity and Access Management (IAM).
667              
668             For information about the underlying REST API, see Working with
669             Archives in Amazon Glacier in the I<Amazon Glacier Developer Guide>.
670              
671              
672             =head2 DescribeVault(AccountId => Str, VaultName => Str)
673              
674             Each argument is described in detail in: L<Paws::Glacier::DescribeVault>
675              
676             Returns: a L<Paws::Glacier::DescribeVaultOutput> instance
677              
678             This operation returns information about a vault, including the vault's
679             Amazon Resource Name (ARN), the date the vault was created, the number
680             of archives it contains, and the total size of all the archives in the
681             vault. The number of archives and their total size are as of the last
682             inventory generation. This means that if you add or remove an archive
683             from a vault, and then immediately use Describe Vault, the change in
684             contents will not be immediately reflected. If you want to retrieve the
685             latest inventory of the vault, use InitiateJob. Amazon Glacier
686             generates vault inventories approximately daily. For more information,
687             see Downloading a Vault Inventory in Amazon Glacier.
688              
689             An AWS account has full permission to perform all operations (actions).
690             However, AWS Identity and Access Management (IAM) users don't have any
691             permissions by default. You must grant them explicit permission to
692             perform specific actions. For more information, see Access Control
693             Using AWS Identity and Access Management (IAM).
694              
695             For conceptual information and underlying REST API, see Retrieving
696             Vault Metadata in Amazon Glacier and Describe Vault in the I<Amazon
697             Glacier Developer Guide>.
698              
699              
700             =head2 GetDataRetrievalPolicy(AccountId => Str)
701              
702             Each argument is described in detail in: L<Paws::Glacier::GetDataRetrievalPolicy>
703              
704             Returns: a L<Paws::Glacier::GetDataRetrievalPolicyOutput> instance
705              
706             This operation returns the current data retrieval policy for the
707             account and region specified in the GET request. For more information
708             about data retrieval policies, see Amazon Glacier Data Retrieval
709             Policies.
710              
711              
712             =head2 GetJobOutput(AccountId => Str, JobId => Str, VaultName => Str, [Range => Str])
713              
714             Each argument is described in detail in: L<Paws::Glacier::GetJobOutput>
715              
716             Returns: a L<Paws::Glacier::GetJobOutputOutput> instance
717              
718             This operation downloads the output of the job you initiated using
719             InitiateJob. Depending on the job type you specified when you initiated
720             the job, the output will be either the content of an archive or a vault
721             inventory.
722              
723             You can download all the job output or download a portion of the output
724             by specifying a byte range. In the case of an archive retrieval job,
725             depending on the byte range you specify, Amazon Glacier returns the
726             checksum for the portion of the data. You can compute the checksum on
727             the client and verify that the values match to ensure the portion you
728             downloaded is the correct data.
729              
730             A job ID will not expire for at least 24 hours after Amazon Glacier
731             completes the job. That a byte range. For both archive and inventory
732             retrieval jobs, you should verify the downloaded size against the size
733             returned in the headers from the B<Get Job Output> response.
734              
735             For archive retrieval jobs, you should also verify that the size is
736             what you expected. If you download a portion of the output, the
737             expected size is based on the range of bytes you specified. For
738             example, if you specify a range of C<bytes=0-1048575>, you should
739             verify your download size is 1,048,576 bytes. If you download an entire
740             archive, the expected size is the size of the archive when you uploaded
741             it to Amazon Glacier The expected size is also returned in the headers
742             from the B<Get Job Output> response.
743              
744             In the case of an archive retrieval job, depending on the byte range
745             you specify, Amazon Glacier returns the checksum for the portion of the
746             data. To ensure the portion you downloaded is the correct data, compute
747             the checksum on the client, verify that the values match, and verify
748             that the size is what you expected.
749              
750             A job ID does not expire for at least 24 hours after Amazon Glacier
751             completes the job. That is, you can download the job output within the
752             24 hours period after Amazon Glacier completes the job.
753              
754             An AWS account has full permission to perform all operations (actions).
755             However, AWS Identity and Access Management (IAM) users don't have any
756             permissions by default. You must grant them explicit permission to
757             perform specific actions. For more information, see Access Control
758             Using AWS Identity and Access Management (IAM).
759              
760             For conceptual information and the underlying REST API, see Downloading
761             a Vault Inventory, Downloading an Archive, and Get Job Output
762              
763              
764             =head2 GetVaultAccessPolicy(AccountId => Str, VaultName => Str)
765              
766             Each argument is described in detail in: L<Paws::Glacier::GetVaultAccessPolicy>
767              
768             Returns: a L<Paws::Glacier::GetVaultAccessPolicyOutput> instance
769              
770             This operation retrieves the C<access-policy> subresource set on the
771             vault; for more information on setting this subresource, see Set Vault
772             Access Policy (PUT access-policy). If there is no access policy set on
773             the vault, the operation returns a C<404 Not found> error. For more
774             information about vault access policies, see Amazon Glacier Access
775             Control with Vault Access Policies.
776              
777              
778             =head2 GetVaultLock(AccountId => Str, VaultName => Str)
779              
780             Each argument is described in detail in: L<Paws::Glacier::GetVaultLock>
781              
782             Returns: a L<Paws::Glacier::GetVaultLockOutput> instance
783              
784             This operation retrieves the following attributes from the
785             C<lock-policy> subresource set on the specified vault:
786              
787             =over
788              
789             =item *
790              
791             The vault lock policy set on the vault.
792              
793             =item *
794              
795             The state of the vault lock, which is either C<InProgess> or C<Locked>.
796              
797             =item *
798              
799             When the lock ID expires. The lock ID is used to complete the vault
800             locking process.
801              
802             =item *
803              
804             When the vault lock was initiated and put into the C<InProgress> state.
805              
806             =back
807              
808             A vault lock is put into the C<InProgress> state by calling
809             InitiateVaultLock. A vault lock is put into the C<Locked> state by
810             calling CompleteVaultLock. You can abort the vault locking process by
811             calling AbortVaultLock. For more information about the vault locking
812             process, Amazon Glacier Vault Lock.
813              
814             If there is no vault lock policy set on the vault, the operation
815             returns a C<404 Not found> error. For more information about vault lock
816             policies, Amazon Glacier Access Control with Vault Lock Policies.
817              
818              
819             =head2 GetVaultNotifications(AccountId => Str, VaultName => Str)
820              
821             Each argument is described in detail in: L<Paws::Glacier::GetVaultNotifications>
822              
823             Returns: a L<Paws::Glacier::GetVaultNotificationsOutput> instance
824              
825             This operation retrieves the C<notification-configuration> subresource
826             of the specified vault.
827              
828             For information about setting a notification configuration on a vault,
829             see SetVaultNotifications. If a notification configuration for a vault
830             is not set, the operation returns a C<404 Not Found> error. For more
831             information about vault notifications, see Configuring Vault
832             Notifications in Amazon Glacier.
833              
834             An AWS account has full permission to perform all operations (actions).
835             However, AWS Identity and Access Management (IAM) users don't have any
836             permissions by default. You must grant them explicit permission to
837             perform specific actions. For more information, see Access Control
838             Using AWS Identity and Access Management (IAM).
839              
840             For conceptual information and underlying REST API, see Configuring
841             Vault Notifications in Amazon Glacier and Get Vault Notification
842             Configuration in the I<Amazon Glacier Developer Guide>.
843              
844              
845             =head2 InitiateJob(AccountId => Str, VaultName => Str, [JobParameters => L<Paws::Glacier::JobParameters>])
846              
847             Each argument is described in detail in: L<Paws::Glacier::InitiateJob>
848              
849             Returns: a L<Paws::Glacier::InitiateJobOutput> instance
850              
851             This operation initiates a job of the specified type. In this release,
852             you can initiate a job to retrieve either an archive or a vault
853             inventory (a list of archives in a vault).
854              
855             Retrieving data from Amazon Glacier is a two-step process:
856              
857             =over
858              
859             =item 1.
860              
861             Initiate a retrieval job.
862              
863             A data retrieval policy can cause your initiate retrieval job request
864             to fail with a PolicyEnforcedException exception. For more information
865             about data retrieval policies, see Amazon Glacier Data Retrieval
866             Policies. For more information about the PolicyEnforcedException
867             exception, see Error Responses.
868              
869             =item 2.
870              
871             After the job completes, download the bytes.
872              
873             =back
874              
875             The retrieval request is executed asynchronously. When you initiate a
876             retrieval job, Amazon Glacier creates a job and returns a job ID in the
877             response. When Amazon Glacier completes the job, you can get the job
878             output (archive or inventory data). For information about getting job
879             output, see GetJobOutput operation.
880              
881             The job must complete before you can get its output. To determine when
882             a job is complete, you have the following options:
883              
884             =over
885              
886             =item *
887              
888             B<Use Amazon SNS Notification> You can specify an Amazon Simple
889             Notification Service (Amazon SNS) topic to which Amazon Glacier can
890             post a notification after the job is completed. You can specify an SNS
891             topic per job request. The notification is sent only after Amazon
892             Glacier completes the job. In addition to specifying an SNS topic per
893             job request, you can configure vault notifications for a vault so that
894             job notifications are always sent. For more information, see
895             SetVaultNotifications.
896              
897             =item *
898              
899             B<Get job details> You can make a DescribeJob request to obtain job
900             status information while a job is in progress. However, it is more
901             efficient to use an Amazon SNS notification to determine when a job is
902             complete.
903              
904             =back
905              
906             The information you get via notification is same that you get by
907             calling DescribeJob.
908              
909             If for a specific event, you add both the notification configuration on
910             the vault and also specify an SNS topic in your initiate job request,
911             Amazon Glacier sends both notifications. For more information, see
912             SetVaultNotifications.
913              
914             An AWS account has full permission to perform all operations (actions).
915             However, AWS Identity and Access Management (IAM) users don't have any
916             permissions by default. You must grant them explicit permission to
917             perform specific actions. For more information, see Access Control
918             Using AWS Identity and Access Management (IAM).
919              
920             B<About the Vault Inventory>
921              
922             Amazon Glacier prepares an inventory for each vault periodically, every
923             24 hours. When you initiate a job for a vault inventory, Amazon Glacier
924             returns the last inventory for the vault. The inventory data you get
925             might be up to a day or two days old. Also, the initiate inventory job
926             might take some time to complete before you can download the vault
927             inventory. So you do not want to retrieve a vault inventory for each
928             vault operation. However, in some scenarios, you might find the vault
929             inventory useful. For example, when you upload an archive, you can
930             provide an archive description but not an archive name. Amazon Glacier
931             provides you a unique archive ID, an opaque string of characters. So,
932             you might maintain your own database that maps archive names to their
933             corresponding Amazon Glacier assigned archive IDs. You might find the
934             vault inventory useful in the event you need to reconcile information
935             in your database with the actual vault inventory.
936              
937             B<Range Inventory Retrieval>
938              
939             You can limit the number of inventory items retrieved by filtering on
940             the archive creation date or by setting a limit.
941              
942             I<Filtering by Archive Creation Date>
943              
944             You can retrieve inventory items for archives created between
945             C<StartDate> and C<EndDate> by specifying values for these parameters
946             in the B<InitiateJob> request. Archives created on or after the
947             C<StartDate> and before the C<EndDate> will be returned. If you only
948             provide the C<StartDate> without the C<EndDate>, you will retrieve the
949             inventory for all archives created on or after the C<StartDate>. If you
950             only provide the C<EndDate> without the C<StartDate>, you will get back
951             the inventory for all archives created before the C<EndDate>.
952              
953             I<Limiting Inventory Items per Retrieval>
954              
955             You can limit the number of inventory items returned by setting the
956             C<Limit> parameter in the B<InitiateJob> request. The inventory job
957             output will contain inventory items up to the specified C<Limit>. If
958             there are more inventory items available, the result is paginated.
959             After a job is complete you can use the DescribeJob operation to get a
960             marker that you use in a subsequent B<InitiateJob> request. The marker
961             will indicate the starting point to retrieve the next set of inventory
962             items. You can page through your entire inventory by repeatedly making
963             B<InitiateJob> requests with the marker from the previous
964             B<DescribeJob> output, until you get a marker from B<DescribeJob> that
965             returns null, indicating that there are no more inventory items
966             available.
967              
968             You can use the C<Limit> parameter together with the date range
969             parameters.
970              
971             B<About Ranged Archive Retrieval>
972              
973             You can initiate an archive retrieval for the whole archive or a range
974             of the archive. In the case of ranged archive retrieval, you specify a
975             byte range to return or the whole archive. The range specified must be
976             megabyte (MB) aligned, that is the range start value must be divisible
977             by 1 MB and range end value plus 1 must be divisible by 1 MB or equal
978             the end of the archive. If the ranged archive retrieval is not megabyte
979             aligned, this operation returns a 400 response. Furthermore, to ensure
980             you get checksum values for data you download using Get Job Output API,
981             the range must be tree hash aligned.
982              
983             An AWS account has full permission to perform all operations (actions).
984             However, AWS Identity and Access Management (IAM) users don't have any
985             permissions by default. You must grant them explicit permission to
986             perform specific actions. For more information, see Access Control
987             Using AWS Identity and Access Management (IAM).
988              
989             For conceptual information and the underlying REST API, see Initiate a
990             Job and Downloading a Vault Inventory
991              
992             B<Expedited and Bulk Archive Retrievals>
993              
994             When retrieving an archive, you can specify one of the following
995             options in the C<Tier> field of the request body:
996              
997             =over
998              
999             =item *
1000              
1001             B<Standard> The default type of retrieval, which allows access to any
1002             of your archives within several hours. Standard retrievals typically
1003             complete within 3E<ndash>5 hours.
1004              
1005             =item *
1006              
1007             B<Bulk> Amazon GlacierE<rsquo>s lowest-cost retrieval option, which
1008             enables you to retrieve large amounts of data inexpensively in a day.
1009             Bulk retrieval requests typically complete within 5E<ndash>12 hours.
1010              
1011             =item *
1012              
1013             B<Expedited> Amazon GlacierE<rsquo>s option for the fastest retrievals.
1014             Archives requested using the expedited retrievals typically become
1015             accessible within 1E<ndash>5 minutes.
1016              
1017             =back
1018              
1019             For more information about expedited and bulk retrievals, see
1020             Retrieving Amazon Glacier Archives.
1021              
1022              
1023             =head2 InitiateMultipartUpload(AccountId => Str, VaultName => Str, [ArchiveDescription => Str, PartSize => Str])
1024              
1025             Each argument is described in detail in: L<Paws::Glacier::InitiateMultipartUpload>
1026              
1027             Returns: a L<Paws::Glacier::InitiateMultipartUploadOutput> instance
1028              
1029             This operation initiates a multipart upload. Amazon Glacier creates a
1030             multipart upload resource and returns its ID in the response. The
1031             multipart upload ID is used in subsequent requests to upload parts of
1032             an archive (see UploadMultipartPart).
1033              
1034             When you initiate a multipart upload, you specify the part size in
1035             number of bytes. The part size must be a megabyte (1024 KB) multiplied
1036             by a power of 2-for example, 1048576 (1 MB), 2097152 (2 MB), 4194304 (4
1037             MB), 8388608 (8 MB), and so on. The minimum allowable part size is 1
1038             MB, and the maximum is 4 GB.
1039              
1040             Every part you upload to this resource (see UploadMultipartPart),
1041             except the last one, must have the same size. The last one can be the
1042             same size or smaller. For example, suppose you want to upload a 16.2 MB
1043             file. If you initiate the multipart upload with a part size of 4 MB,
1044             you will upload four parts of 4 MB each and one part of 0.2 MB.
1045              
1046             You don't need to know the size of the archive when you start a
1047             multipart upload because Amazon Glacier does not require you to specify
1048             the overall archive size.
1049              
1050             After you complete the multipart upload, Amazon Glacier removes the
1051             multipart upload resource referenced by the ID. Amazon Glacier also
1052             removes the multipart upload resource if you cancel the multipart
1053             upload or it may be removed if there is no activity for a period of 24
1054             hours.
1055              
1056             An AWS account has full permission to perform all operations (actions).
1057             However, AWS Identity and Access Management (IAM) users don't have any
1058             permissions by default. You must grant them explicit permission to
1059             perform specific actions. For more information, see Access Control
1060             Using AWS Identity and Access Management (IAM).
1061              
1062             For conceptual information and underlying REST API, see Uploading Large
1063             Archives in Parts (Multipart Upload) and Initiate Multipart Upload in
1064             the I<Amazon Glacier Developer Guide>.
1065              
1066              
1067             =head2 InitiateVaultLock(AccountId => Str, VaultName => Str, [Policy => L<Paws::Glacier::VaultLockPolicy>])
1068              
1069             Each argument is described in detail in: L<Paws::Glacier::InitiateVaultLock>
1070              
1071             Returns: a L<Paws::Glacier::InitiateVaultLockOutput> instance
1072              
1073             This operation initiates the vault locking process by doing the
1074             following:
1075              
1076             =over
1077              
1078             =item *
1079              
1080             Installing a vault lock policy on the specified vault.
1081              
1082             =item *
1083              
1084             Setting the lock state of vault lock to C<InProgress>.
1085              
1086             =item *
1087              
1088             Returning a lock ID, which is used to complete the vault locking
1089             process.
1090              
1091             =back
1092              
1093             You can set one vault lock policy for each vault and this policy can be
1094             up to 20 KB in size. For more information about vault lock policies,
1095             see Amazon Glacier Access Control with Vault Lock Policies.
1096              
1097             You must complete the vault locking process within 24 hours after the
1098             vault lock enters the C<InProgress> state. After the 24 hour window
1099             ends, the lock ID expires, the vault automatically exits the
1100             C<InProgress> state, and the vault lock policy is removed from the
1101             vault. You call CompleteVaultLock to complete the vault locking process
1102             by setting the state of the vault lock to C<Locked>.
1103              
1104             After a vault lock is in the C<Locked> state, you cannot initiate a new
1105             vault lock for the vault.
1106              
1107             You can abort the vault locking process by calling AbortVaultLock. You
1108             can get the state of the vault lock by calling GetVaultLock. For more
1109             information about the vault locking process, Amazon Glacier Vault Lock.
1110              
1111             If this operation is called when the vault lock is in the C<InProgress>
1112             state, the operation returns an C<AccessDeniedException> error. When
1113             the vault lock is in the C<InProgress> state you must call
1114             AbortVaultLock before you can initiate a new vault lock policy.
1115              
1116              
1117             =head2 ListJobs(AccountId => Str, VaultName => Str, [Completed => Str, Limit => Str, Marker => Str, Statuscode => Str])
1118              
1119             Each argument is described in detail in: L<Paws::Glacier::ListJobs>
1120              
1121             Returns: a L<Paws::Glacier::ListJobsOutput> instance
1122              
1123             This operation lists jobs for a vault, including jobs that are
1124             in-progress and jobs that have recently finished.
1125              
1126             Amazon Glacier retains recently completed jobs for a period before
1127             deleting them; however, it eventually removes completed jobs. The
1128             output of completed jobs can be retrieved. Retaining completed jobs for
1129             a period of time after they have completed enables you to get a job
1130             output in the event you miss the job completion notification or your
1131             first attempt to download it fails. For example, suppose you start an
1132             archive retrieval job to download an archive. After the job completes,
1133             you start to download the archive but encounter a network error. In
1134             this scenario, you can retry and download the archive while the job
1135             exists.
1136              
1137             To retrieve an archive or retrieve a vault inventory from Amazon
1138             Glacier, you first initiate a job, and after the job completes, you
1139             download the data. For an archive retrieval, the output is the archive
1140             data. For an inventory retrieval, it is the inventory list. The List
1141             Job operation returns a list of these jobs sorted by job initiation
1142             time.
1143              
1144             The List Jobs operation supports pagination. You should always check
1145             the response C<Marker> field. If there are no more jobs to list, the
1146             C<Marker> field is set to C<null>. If there are more jobs to list, the
1147             C<Marker> field is set to a non-null value, which you can use to
1148             continue the pagination of the list. To return a list of jobs that
1149             begins at a specific job, set the marker request parameter to the
1150             C<Marker> value for that job that you obtained from a previous List
1151             Jobs request.
1152              
1153             You can set a maximum limit for the number of jobs returned in the
1154             response by specifying the C<limit> parameter in the request. The
1155             default limit is 1000. The number of jobs returned might be fewer than
1156             the limit, but the number of returned jobs never exceeds the limit.
1157              
1158             Additionally, you can filter the jobs list returned by specifying the
1159             optional C<statuscode> parameter or C<completed> parameter, or both.
1160             Using the C<statuscode> parameter, you can specify to return only jobs
1161             that match either the C<InProgress>, C<Succeeded>, or C<Failed> status.
1162             Using the C<completed> parameter, you can specify to return only jobs
1163             that were completed (C<true>) or jobs that were not completed
1164             (C<false>).
1165              
1166             For the underlying REST API, see List Jobs.
1167              
1168              
1169             =head2 ListMultipartUploads(AccountId => Str, VaultName => Str, [Limit => Str, Marker => Str])
1170              
1171             Each argument is described in detail in: L<Paws::Glacier::ListMultipartUploads>
1172              
1173             Returns: a L<Paws::Glacier::ListMultipartUploadsOutput> instance
1174              
1175             This operation lists in-progress multipart uploads for the specified
1176             vault. An in-progress multipart upload is a multipart upload that has
1177             been initiated by an InitiateMultipartUpload request, but has not yet
1178             been completed or aborted. The list returned in the List Multipart
1179             Upload response has no guaranteed order.
1180              
1181             The List Multipart Uploads operation supports pagination. By default,
1182             this operation returns up to 1,000 multipart uploads in the response.
1183             You should always check the response for a C<marker> at which to
1184             continue the list; if there are no more items the C<marker> is C<null>.
1185             To return a list of multipart uploads that begins at a specific upload,
1186             set the C<marker> request parameter to the value you obtained from a
1187             previous List Multipart Upload request. You can also limit the number
1188             of uploads returned in the response by specifying the C<limit>
1189             parameter in the request.
1190              
1191             Note the difference between this operation and listing parts
1192             (ListParts). The List Multipart Uploads operation lists all multipart
1193             uploads for a vault and does not require a multipart upload ID. The
1194             List Parts operation requires a multipart upload ID since parts are
1195             associated with a single upload.
1196              
1197             An AWS account has full permission to perform all operations (actions).
1198             However, AWS Identity and Access Management (IAM) users don't have any
1199             permissions by default. You must grant them explicit permission to
1200             perform specific actions. For more information, see Access Control
1201             Using AWS Identity and Access Management (IAM).
1202              
1203             For conceptual information and the underlying REST API, see Working
1204             with Archives in Amazon Glacier and List Multipart Uploads in the
1205             I<Amazon Glacier Developer Guide>.
1206              
1207              
1208             =head2 ListParts(AccountId => Str, UploadId => Str, VaultName => Str, [Limit => Str, Marker => Str])
1209              
1210             Each argument is described in detail in: L<Paws::Glacier::ListParts>
1211              
1212             Returns: a L<Paws::Glacier::ListPartsOutput> instance
1213              
1214             This operation lists the parts of an archive that have been uploaded in
1215             a specific multipart upload. You can make this request at any time
1216             during an in-progress multipart upload before you complete the upload
1217             (see CompleteMultipartUpload. List Parts returns an error for completed
1218             uploads. The list returned in the List Parts response is sorted by part
1219             range.
1220              
1221             The List Parts operation supports pagination. By default, this
1222             operation returns up to 1,000 uploaded parts in the response. You
1223             should always check the response for a C<marker> at which to continue
1224             the list; if there are no more items the C<marker> is C<null>. To
1225             return a list of parts that begins at a specific part, set the
1226             C<marker> request parameter to the value you obtained from a previous
1227             List Parts request. You can also limit the number of parts returned in
1228             the response by specifying the C<limit> parameter in the request.
1229              
1230             An AWS account has full permission to perform all operations (actions).
1231             However, AWS Identity and Access Management (IAM) users don't have any
1232             permissions by default. You must grant them explicit permission to
1233             perform specific actions. For more information, see Access Control
1234             Using AWS Identity and Access Management (IAM).
1235              
1236             For conceptual information and the underlying REST API, see Working
1237             with Archives in Amazon Glacier and List Parts in the I<Amazon Glacier
1238             Developer Guide>.
1239              
1240              
1241             =head2 ListProvisionedCapacity(AccountId => Str)
1242              
1243             Each argument is described in detail in: L<Paws::Glacier::ListProvisionedCapacity>
1244              
1245             Returns: a L<Paws::Glacier::ListProvisionedCapacityOutput> instance
1246              
1247             This operation lists the provisioned capacity for the specified AWS
1248             account.
1249              
1250              
1251             =head2 ListTagsForVault(AccountId => Str, VaultName => Str)
1252              
1253             Each argument is described in detail in: L<Paws::Glacier::ListTagsForVault>
1254              
1255             Returns: a L<Paws::Glacier::ListTagsForVaultOutput> instance
1256              
1257             This operation lists all the tags attached to a vault. The operation
1258             returns an empty map if there are no tags. For more information about
1259             tags, see Tagging Amazon Glacier Resources.
1260              
1261              
1262             =head2 ListVaults(AccountId => Str, [Limit => Str, Marker => Str])
1263              
1264             Each argument is described in detail in: L<Paws::Glacier::ListVaults>
1265              
1266             Returns: a L<Paws::Glacier::ListVaultsOutput> instance
1267              
1268             This operation lists all vaults owned by the calling user's account.
1269             The list returned in the response is ASCII-sorted by vault name.
1270              
1271             By default, this operation returns up to 1,000 items. If there are more
1272             vaults to list, the response C<marker> field contains the vault Amazon
1273             Resource Name (ARN) at which to continue the list with a new List
1274             Vaults request; otherwise, the C<marker> field is C<null>. To return a
1275             list of vaults that begins at a specific vault, set the C<marker>
1276             request parameter to the vault ARN you obtained from a previous List
1277             Vaults request. You can also limit the number of vaults returned in the
1278             response by specifying the C<limit> parameter in the request.
1279              
1280             An AWS account has full permission to perform all operations (actions).
1281             However, AWS Identity and Access Management (IAM) users don't have any
1282             permissions by default. You must grant them explicit permission to
1283             perform specific actions. For more information, see Access Control
1284             Using AWS Identity and Access Management (IAM).
1285              
1286             For conceptual information and underlying REST API, see Retrieving
1287             Vault Metadata in Amazon Glacier and List Vaults in the I<Amazon
1288             Glacier Developer Guide>.
1289              
1290              
1291             =head2 PurchaseProvisionedCapacity(AccountId => Str)
1292              
1293             Each argument is described in detail in: L<Paws::Glacier::PurchaseProvisionedCapacity>
1294              
1295             Returns: a L<Paws::Glacier::PurchaseProvisionedCapacityOutput> instance
1296              
1297             This operation purchases a provisioned capacity unit for an AWS
1298             account.
1299              
1300              
1301             =head2 RemoveTagsFromVault(AccountId => Str, VaultName => Str, [TagKeys => ArrayRef[Str|Undef]])
1302              
1303             Each argument is described in detail in: L<Paws::Glacier::RemoveTagsFromVault>
1304              
1305             Returns: nothing
1306              
1307             This operation removes one or more tags from the set of tags attached
1308             to a vault. For more information about tags, see Tagging Amazon Glacier
1309             Resources. This operation is idempotent. The operation will be
1310             successful, even if there are no tags attached to the vault.
1311              
1312              
1313             =head2 SetDataRetrievalPolicy(AccountId => Str, [Policy => L<Paws::Glacier::DataRetrievalPolicy>])
1314              
1315             Each argument is described in detail in: L<Paws::Glacier::SetDataRetrievalPolicy>
1316              
1317             Returns: nothing
1318              
1319             This operation sets and then enacts a data retrieval policy in the
1320             region specified in the PUT request. You can set one policy per region
1321             for an AWS account. The policy is enacted within a few minutes of a
1322             successful PUT operation.
1323              
1324             The set policy operation does not affect retrieval jobs that were in
1325             progress before the policy was enacted. For more information about data
1326             retrieval policies, see Amazon Glacier Data Retrieval Policies.
1327              
1328              
1329             =head2 SetVaultAccessPolicy(AccountId => Str, VaultName => Str, [Policy => L<Paws::Glacier::VaultAccessPolicy>])
1330              
1331             Each argument is described in detail in: L<Paws::Glacier::SetVaultAccessPolicy>
1332              
1333             Returns: nothing
1334              
1335             This operation configures an access policy for a vault and will
1336             overwrite an existing policy. To configure a vault access policy, send
1337             a PUT request to the C<access-policy> subresource of the vault. An
1338             access policy is specific to a vault and is also called a vault
1339             subresource. You can set one access policy per vault and the policy can
1340             be up to 20 KB in size. For more information about vault access
1341             policies, see Amazon Glacier Access Control with Vault Access Policies.
1342              
1343              
1344             =head2 SetVaultNotifications(AccountId => Str, VaultName => Str, [VaultNotificationConfig => L<Paws::Glacier::VaultNotificationConfig>])
1345              
1346             Each argument is described in detail in: L<Paws::Glacier::SetVaultNotifications>
1347              
1348             Returns: nothing
1349              
1350             This operation configures notifications that will be sent when specific
1351             events happen to a vault. By default, you don't get any notifications.
1352              
1353             To configure vault notifications, send a PUT request to the
1354             C<notification-configuration> subresource of the vault. The request
1355             should include a JSON document that provides an Amazon SNS topic and
1356             specific events for which you want Amazon Glacier to send notifications
1357             to the topic.
1358              
1359             Amazon SNS topics must grant permission to the vault to be allowed to
1360             publish notifications to the topic. You can configure a vault to
1361             publish a notification for the following vault events:
1362              
1363             =over
1364              
1365             =item *
1366              
1367             B<ArchiveRetrievalCompleted> This event occurs when a job that was
1368             initiated for an archive retrieval is completed (InitiateJob). The
1369             status of the completed job can be "Succeeded" or "Failed". The
1370             notification sent to the SNS topic is the same output as returned from
1371             DescribeJob.
1372              
1373             =item *
1374              
1375             B<InventoryRetrievalCompleted> This event occurs when a job that was
1376             initiated for an inventory retrieval is completed (InitiateJob). The
1377             status of the completed job can be "Succeeded" or "Failed". The
1378             notification sent to the SNS topic is the same output as returned from
1379             DescribeJob.
1380              
1381             =back
1382              
1383             An AWS account has full permission to perform all operations (actions).
1384             However, AWS Identity and Access Management (IAM) users don't have any
1385             permissions by default. You must grant them explicit permission to
1386             perform specific actions. For more information, see Access Control
1387             Using AWS Identity and Access Management (IAM).
1388              
1389             For conceptual information and underlying REST API, see Configuring
1390             Vault Notifications in Amazon Glacier and Set Vault Notification
1391             Configuration in the I<Amazon Glacier Developer Guide>.
1392              
1393              
1394             =head2 UploadArchive(AccountId => Str, VaultName => Str, [ArchiveDescription => Str, Body => Str, Checksum => Str])
1395              
1396             Each argument is described in detail in: L<Paws::Glacier::UploadArchive>
1397              
1398             Returns: a L<Paws::Glacier::ArchiveCreationOutput> instance
1399              
1400             This operation adds an archive to a vault. This is a synchronous
1401             operation, and for a successful upload, your data is durably persisted.
1402             Amazon Glacier returns the archive ID in the C<x-amz-archive-id> header
1403             of the response.
1404              
1405             You must use the archive ID to access your data in Amazon Glacier.
1406             After you upload an archive, you should save the archive ID returned so
1407             that you can retrieve or delete the archive later. Besides saving the
1408             archive ID, you can also index it and give it a friendly name to allow
1409             for better searching. You can also use the optional archive description
1410             field to specify how the archive is referred to in an external index of
1411             archives, such as you might create in Amazon DynamoDB. You can also get
1412             the vault inventory to obtain a list of archive IDs in a vault. For
1413             more information, see InitiateJob.
1414              
1415             You must provide a SHA256 tree hash of the data you are uploading. For
1416             information about computing a SHA256 tree hash, see Computing
1417             Checksums.
1418              
1419             You can optionally specify an archive description of up to 1,024
1420             printable ASCII characters. You can get the archive description when
1421             you either retrieve the archive or get the vault inventory. For more
1422             information, see InitiateJob. Amazon Glacier does not interpret the
1423             description in any way. An archive description does not need to be
1424             unique. You cannot use the description to retrieve or sort the archive
1425             list.
1426              
1427             Archives are immutable. After you upload an archive, you cannot edit
1428             the archive or its description.
1429              
1430             An AWS account has full permission to perform all operations (actions).
1431             However, AWS Identity and Access Management (IAM) users don't have any
1432             permissions by default. You must grant them explicit permission to
1433             perform specific actions. For more information, see Access Control
1434             Using AWS Identity and Access Management (IAM).
1435              
1436             For conceptual information and underlying REST API, see Uploading an
1437             Archive in Amazon Glacier and Upload Archive in the I<Amazon Glacier
1438             Developer Guide>.
1439              
1440              
1441             =head2 UploadMultipartPart(AccountId => Str, UploadId => Str, VaultName => Str, [Body => Str, Checksum => Str, Range => Str])
1442              
1443             Each argument is described in detail in: L<Paws::Glacier::UploadMultipartPart>
1444              
1445             Returns: a L<Paws::Glacier::UploadMultipartPartOutput> instance
1446              
1447             This operation uploads a part of an archive. You can upload archive
1448             parts in any order. You can also upload them in parallel. You can
1449             upload up to 10,000 parts for a multipart upload.
1450              
1451             Amazon Glacier rejects your upload part request if any of the following
1452             conditions is true:
1453              
1454             =over
1455              
1456             =item *
1457              
1458             B<SHA256 tree hash does not match>To ensure that part data is not
1459             corrupted in transmission, you compute a SHA256 tree hash of the part
1460             and include it in your request. Upon receiving the part data, Amazon
1461             Glacier also computes a SHA256 tree hash. If these hash values don't
1462             match, the operation fails. For information about computing a SHA256
1463             tree hash, see Computing Checksums.
1464              
1465             =item *
1466              
1467             B<Part size does not match>The size of each part except the last must
1468             match the size specified in the corresponding InitiateMultipartUpload
1469             request. The size of the last part must be the same size as, or smaller
1470             than, the specified size.
1471              
1472             If you upload a part whose size is smaller than the part size you
1473             specified in your initiate multipart upload request and that part is
1474             not the last part, then the upload part request will succeed. However,
1475             the subsequent Complete Multipart Upload request will fail.
1476              
1477             =item *
1478              
1479             B<Range does not align>The byte range value in the request does not
1480             align with the part size specified in the corresponding initiate
1481             request. For example, if you specify a part size of 4194304 bytes (4
1482             MB), then 0 to 4194303 bytes (4 MB - 1) and 4194304 (4 MB) to 8388607
1483             (8 MB - 1) are valid part ranges. However, if you set a range value of
1484             2 MB to 6 MB, the range does not align with the part size and the
1485             upload will fail.
1486              
1487             =back
1488              
1489             This operation is idempotent. If you upload the same part multiple
1490             times, the data included in the most recent request overwrites the
1491             previously uploaded data.
1492              
1493             An AWS account has full permission to perform all operations (actions).
1494             However, AWS Identity and Access Management (IAM) users don't have any
1495             permissions by default. You must grant them explicit permission to
1496             perform specific actions. For more information, see Access Control
1497             Using AWS Identity and Access Management (IAM).
1498              
1499             For conceptual information and underlying REST API, see Uploading Large
1500             Archives in Parts (Multipart Upload) and Upload Part in the I<Amazon
1501             Glacier Developer Guide>.
1502              
1503              
1504              
1505              
1506             =head1 PAGINATORS
1507              
1508             Paginator methods are helpers that repetively call methods that return partial results
1509              
1510             =head2 ListAllJobs(sub { },AccountId => Str, VaultName => Str, [Completed => Str, Limit => Str, Marker => Str, Statuscode => Str])
1511              
1512             =head2 ListAllJobs(AccountId => Str, VaultName => Str, [Completed => Str, Limit => Str, Marker => Str, Statuscode => Str])
1513              
1514              
1515             If passed a sub as first parameter, it will call the sub for each element found in :
1516              
1517             - JobList, passing the object as the first parameter, and the string 'JobList' as the second parameter
1518              
1519             If not, it will return a a L<Paws::Glacier::ListJobsOutput> 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.
1520              
1521              
1522             =head2 ListAllMultipartUploads(sub { },AccountId => Str, VaultName => Str, [Limit => Str, Marker => Str])
1523              
1524             =head2 ListAllMultipartUploads(AccountId => Str, VaultName => Str, [Limit => Str, Marker => Str])
1525              
1526              
1527             If passed a sub as first parameter, it will call the sub for each element found in :
1528              
1529             - UploadsList, passing the object as the first parameter, and the string 'UploadsList' as the second parameter
1530              
1531             If not, it will return a a L<Paws::Glacier::ListMultipartUploadsOutput> 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.
1532              
1533              
1534             =head2 ListAllParts(sub { },AccountId => Str, UploadId => Str, VaultName => Str, [Limit => Str, Marker => Str])
1535              
1536             =head2 ListAllParts(AccountId => Str, UploadId => Str, VaultName => Str, [Limit => Str, Marker => Str])
1537              
1538              
1539             If passed a sub as first parameter, it will call the sub for each element found in :
1540              
1541             - Parts, passing the object as the first parameter, and the string 'Parts' as the second parameter
1542              
1543             If not, it will return a a L<Paws::Glacier::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.
1544              
1545              
1546             =head2 ListAllVaults(sub { },AccountId => Str, [Limit => Str, Marker => Str])
1547              
1548             =head2 ListAllVaults(AccountId => Str, [Limit => Str, Marker => Str])
1549              
1550              
1551             If passed a sub as first parameter, it will call the sub for each element found in :
1552              
1553             - VaultList, passing the object as the first parameter, and the string 'VaultList' as the second parameter
1554              
1555             If not, it will return a a L<Paws::Glacier::ListVaultsOutput> 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.
1556              
1557              
1558              
1559              
1560              
1561             =head1 SEE ALSO
1562              
1563             This service class forms part of L<Paws>
1564              
1565             =head1 BUGS and CONTRIBUTIONS
1566              
1567             The source code is located here: https://github.com/pplu/aws-sdk-perl
1568              
1569             Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues
1570              
1571             =cut
1572