aws-sdk-glacier 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,524 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module Glacier
10
+ class Vault
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(account_id, name, options = {})
15
+ # @param [String] account_id
16
+ # @param [String] name
17
+ # @option options [Client] :client
18
+ # @overload def initialize(options = {})
19
+ # @option options [required, String] :account_id
20
+ # @option options [required, String] :name
21
+ # @option options [Client] :client
22
+ def initialize(*args)
23
+ options = Hash === args.last ? args.pop.dup : {}
24
+ @account_id = extract_account_id(args, options)
25
+ @name = extract_name(args, options)
26
+ @data = options.delete(:data)
27
+ @client = options.delete(:client) || Client.new(options)
28
+ end
29
+
30
+ # @!group Read-Only Attributes
31
+
32
+ # @return [String]
33
+ def account_id
34
+ @account_id
35
+ end
36
+
37
+ # @return [String]
38
+ def name
39
+ @name
40
+ end
41
+ alias :vault_name :name
42
+
43
+ # The Amazon Resource Name (ARN) of the vault.
44
+ # @return [String]
45
+ def vault_arn
46
+ data.vault_arn
47
+ end
48
+
49
+ # The Universal Coordinated Time (UTC) date when the vault was created.
50
+ # This value should be a string in the ISO 8601 date format, for example
51
+ # `2012-03-20T17:03:43.221Z`.
52
+ # @return [Time]
53
+ def creation_date
54
+ data.creation_date
55
+ end
56
+
57
+ # The Universal Coordinated Time (UTC) date when Amazon Glacier
58
+ # completed the last vault inventory. This value should be a string in
59
+ # the ISO 8601 date format, for example `2012-03-20T17:03:43.221Z`.
60
+ # @return [Time]
61
+ def last_inventory_date
62
+ data.last_inventory_date
63
+ end
64
+
65
+ # The number of archives in the vault as of the last inventory date.
66
+ # This field will return `null` if an inventory has not yet run on the
67
+ # vault, for example if you just created the vault.
68
+ # @return [Integer]
69
+ def number_of_archives
70
+ data.number_of_archives
71
+ end
72
+
73
+ # Total size, in bytes, of the archives in the vault as of the last
74
+ # inventory date. This field will return null if an inventory has not
75
+ # yet run on the vault, for example if you just created the vault.
76
+ # @return [Integer]
77
+ def size_in_bytes
78
+ data.size_in_bytes
79
+ end
80
+
81
+ # @!endgroup
82
+
83
+ # @return [Client]
84
+ def client
85
+ @client
86
+ end
87
+
88
+ # Loads, or reloads {#data} for the current {Vault}.
89
+ # Returns `self` making it possible to chain methods.
90
+ #
91
+ # vault.reload.data
92
+ #
93
+ # @return [self]
94
+ def load
95
+ resp = @client.describe_vault(
96
+ vault_name: @name,
97
+ account_id: @account_id
98
+ )
99
+ @data = resp.data
100
+ self
101
+ end
102
+ alias :reload :load
103
+
104
+ # @return [Types::DescribeVaultOutput]
105
+ # Returns the data for this {Vault}. Calls
106
+ # {Client#describe_vault} if {#data_loaded?} is `false`.
107
+ def data
108
+ load unless @data
109
+ @data
110
+ end
111
+
112
+ # @return [Boolean]
113
+ # Returns `true` if this resource is loaded. Accessing attributes or
114
+ # {#data} on an unloaded resource will trigger a call to {#load}.
115
+ def data_loaded?
116
+ !!@data
117
+ end
118
+
119
+ # @!group Actions
120
+
121
+ # @example Request syntax with placeholder values
122
+ #
123
+ # vault.create()
124
+ # @param [Hash] options ({})
125
+ # @return [Types::CreateVaultOutput]
126
+ def create(options = {})
127
+ options = options.merge(
128
+ vault_name: @name,
129
+ account_id: @account_id
130
+ )
131
+ resp = @client.create_vault(options)
132
+ resp.data
133
+ end
134
+
135
+ # @example Request syntax with placeholder values
136
+ #
137
+ # vault.delete()
138
+ # @param [Hash] options ({})
139
+ # @return [EmptyStructure]
140
+ def delete(options = {})
141
+ options = options.merge(
142
+ vault_name: @name,
143
+ account_id: @account_id
144
+ )
145
+ resp = @client.delete_vault(options)
146
+ resp.data
147
+ end
148
+
149
+ # @example Request syntax with placeholder values
150
+ #
151
+ # job = vault.initiate_inventory_retrieval()
152
+ # @param [Hash] options ({})
153
+ # @return [Job]
154
+ def initiate_inventory_retrieval(options = {})
155
+ options = Aws::Util.deep_merge(options,
156
+ vault_name: @name,
157
+ account_id: @account_id,
158
+ job_parameters: {
159
+ type: "inventory-retrieval"
160
+ }
161
+ )
162
+ resp = @client.initiate_job(options)
163
+ Job.new(
164
+ id: resp.data.job_id,
165
+ account_id: @account_id,
166
+ vault_name: @name,
167
+ client: @client
168
+ )
169
+ end
170
+
171
+ # @example Request syntax with placeholder values
172
+ #
173
+ # multipartupload = vault.initiate_multipart_upload({
174
+ # archive_description: "string",
175
+ # part_size: 1,
176
+ # })
177
+ # @param [Hash] options ({})
178
+ # @option options [String] :archive_description
179
+ # The archive description that you are uploading in parts.
180
+ #
181
+ # The part size must be a megabyte (1024 KB) multiplied by a power of 2,
182
+ # for example 1048576 (1 MB), 2097152 (2 MB), 4194304 (4 MB), 8388608 (8
183
+ # MB), and so on. The minimum allowable part size is 1 MB, and the
184
+ # maximum is 4 GB (4096 MB).
185
+ # @option options [Integer] :part_size
186
+ # The size of each part except the last, in bytes. The last part can be
187
+ # smaller than this part size.
188
+ # @return [MultipartUpload]
189
+ def initiate_multipart_upload(options = {})
190
+ options = options.merge(
191
+ vault_name: @name,
192
+ account_id: @account_id
193
+ )
194
+ resp = @client.initiate_multipart_upload(options)
195
+ MultipartUpload.new(
196
+ id: resp.data.upload_id,
197
+ account_id: @account_id,
198
+ vault_name: @name,
199
+ client: @client
200
+ )
201
+ end
202
+
203
+ # @example Request syntax with placeholder values
204
+ #
205
+ # archive = vault.upload_archive({
206
+ # archive_description: "string",
207
+ # checksum: "string",
208
+ # body: "data",
209
+ # })
210
+ # @param [Hash] options ({})
211
+ # @option options [String] :archive_description
212
+ # The optional description of the archive you are uploading.
213
+ # @option options [String] :checksum
214
+ # The SHA256 tree hash of the data being uploaded.
215
+ # @option options [String, IO] :body
216
+ # The data to upload.
217
+ # @return [Archive]
218
+ def upload_archive(options = {})
219
+ options = options.merge(
220
+ vault_name: @name,
221
+ account_id: @account_id
222
+ )
223
+ resp = @client.upload_archive(options)
224
+ Archive.new(
225
+ id: resp.data.archive_id,
226
+ account_id: @account_id,
227
+ vault_name: @name,
228
+ client: @client
229
+ )
230
+ end
231
+
232
+ # @!group Associations
233
+
234
+ # @return [Account]
235
+ def account
236
+ Account.new(
237
+ id: @account_id,
238
+ client: @client
239
+ )
240
+ end
241
+
242
+ # @param [String] id
243
+ # @return [Archive]
244
+ def archive(id)
245
+ Archive.new(
246
+ account_id: @account_id,
247
+ vault_name: @name,
248
+ id: id,
249
+ client: @client
250
+ )
251
+ end
252
+
253
+ # @example Request syntax with placeholder values
254
+ #
255
+ # completedjobs = vault.completed_jobs({
256
+ # statuscode: "string",
257
+ # })
258
+ # @param [Hash] options ({})
259
+ # @option options [String] :statuscode
260
+ # The type of job status to return. You can specify the following
261
+ # values: `InProgress`, `Succeeded`, or `Failed`.
262
+ # @return [Job::Collection]
263
+ def completed_jobs(options = {})
264
+ batches = Enumerator.new do |y|
265
+ options = options.merge(
266
+ account_id: @account_id,
267
+ vault_name: @name,
268
+ completed: "true"
269
+ )
270
+ resp = @client.list_jobs(options)
271
+ resp.each_page do |page|
272
+ batch = []
273
+ page.data.job_list.each do |j|
274
+ batch << Job.new(
275
+ account_id: @account_id,
276
+ vault_name: @name,
277
+ id: j.job_id,
278
+ data: j,
279
+ client: @client
280
+ )
281
+ end
282
+ y.yield(batch)
283
+ end
284
+ end
285
+ Job::Collection.new(batches)
286
+ end
287
+
288
+ # @example Request syntax with placeholder values
289
+ #
290
+ # failedjobs = vault.failed_jobs({
291
+ # completed: "string",
292
+ # })
293
+ # @param [Hash] options ({})
294
+ # @option options [String] :completed
295
+ # The state of the jobs to return. You can specify `true` or `false`.
296
+ # @return [Job::Collection]
297
+ def failed_jobs(options = {})
298
+ batches = Enumerator.new do |y|
299
+ options = options.merge(
300
+ account_id: @account_id,
301
+ vault_name: @name,
302
+ statuscode: "Failed"
303
+ )
304
+ resp = @client.list_jobs(options)
305
+ resp.each_page do |page|
306
+ batch = []
307
+ page.data.job_list.each do |j|
308
+ batch << Job.new(
309
+ account_id: @account_id,
310
+ vault_name: @name,
311
+ id: j.job_id,
312
+ data: j,
313
+ client: @client
314
+ )
315
+ end
316
+ y.yield(batch)
317
+ end
318
+ end
319
+ Job::Collection.new(batches)
320
+ end
321
+
322
+ # @param [String] id
323
+ # @return [Job]
324
+ def job(id)
325
+ Job.new(
326
+ account_id: @account_id,
327
+ vault_name: @name,
328
+ id: id,
329
+ client: @client
330
+ )
331
+ end
332
+
333
+ # @example Request syntax with placeholder values
334
+ #
335
+ # jobs = vault.jobs({
336
+ # statuscode: "string",
337
+ # completed: "string",
338
+ # })
339
+ # @param [Hash] options ({})
340
+ # @option options [String] :statuscode
341
+ # The type of job status to return. You can specify the following
342
+ # values: `InProgress`, `Succeeded`, or `Failed`.
343
+ # @option options [String] :completed
344
+ # The state of the jobs to return. You can specify `true` or `false`.
345
+ # @return [Job::Collection]
346
+ def jobs(options = {})
347
+ batches = Enumerator.new do |y|
348
+ options = options.merge(
349
+ account_id: @account_id,
350
+ vault_name: @name
351
+ )
352
+ resp = @client.list_jobs(options)
353
+ resp.each_page do |page|
354
+ batch = []
355
+ page.data.job_list.each do |j|
356
+ batch << Job.new(
357
+ account_id: @account_id,
358
+ vault_name: @name,
359
+ id: j.job_id,
360
+ data: j,
361
+ client: @client
362
+ )
363
+ end
364
+ y.yield(batch)
365
+ end
366
+ end
367
+ Job::Collection.new(batches)
368
+ end
369
+
370
+ # @example Request syntax with placeholder values
371
+ #
372
+ # jobsinprogress = vault.jobs_in_progress({
373
+ # completed: "string",
374
+ # })
375
+ # @param [Hash] options ({})
376
+ # @option options [String] :completed
377
+ # The state of the jobs to return. You can specify `true` or `false`.
378
+ # @return [Job::Collection]
379
+ def jobs_in_progress(options = {})
380
+ batches = Enumerator.new do |y|
381
+ options = options.merge(
382
+ account_id: @account_id,
383
+ vault_name: @name,
384
+ statuscode: "InProgress"
385
+ )
386
+ resp = @client.list_jobs(options)
387
+ resp.each_page do |page|
388
+ batch = []
389
+ page.data.job_list.each do |j|
390
+ batch << Job.new(
391
+ account_id: @account_id,
392
+ vault_name: @name,
393
+ id: j.job_id,
394
+ data: j,
395
+ client: @client
396
+ )
397
+ end
398
+ y.yield(batch)
399
+ end
400
+ end
401
+ Job::Collection.new(batches)
402
+ end
403
+
404
+ # @example Request syntax with placeholder values
405
+ #
406
+ # multipartuplaods = vault.multipart_uplaods()
407
+ # @param [Hash] options ({})
408
+ # @return [MultipartUpload::Collection]
409
+ def multipart_uplaods(options = {})
410
+ batches = Enumerator.new do |y|
411
+ options = options.merge(
412
+ vault_name: @name,
413
+ account_id: @account_id
414
+ )
415
+ resp = @client.list_multipart_uploads(options)
416
+ resp.each_page do |page|
417
+ batch = []
418
+ page.data.uploads_list.each do |u|
419
+ batch << MultipartUpload.new(
420
+ account_id: @account_id,
421
+ vault_name: @name,
422
+ id: u.multipart_upload_id,
423
+ data: u,
424
+ client: @client
425
+ )
426
+ end
427
+ y.yield(batch)
428
+ end
429
+ end
430
+ MultipartUpload::Collection.new(batches)
431
+ end
432
+
433
+ # @param [String] id
434
+ # @return [MultipartUpload]
435
+ def multipart_upload(id)
436
+ MultipartUpload.new(
437
+ account_id: @account_id,
438
+ vault_name: @name,
439
+ id: id,
440
+ client: @client
441
+ )
442
+ end
443
+
444
+ # @return [Notification]
445
+ def notification
446
+ Notification.new(
447
+ account_id: @account_id,
448
+ vault_name: @name,
449
+ client: @client
450
+ )
451
+ end
452
+
453
+ # @example Request syntax with placeholder values
454
+ #
455
+ # succeededjobs = vault.succeeded_jobs({
456
+ # completed: "string",
457
+ # })
458
+ # @param [Hash] options ({})
459
+ # @option options [String] :completed
460
+ # The state of the jobs to return. You can specify `true` or `false`.
461
+ # @return [Job::Collection]
462
+ def succeeded_jobs(options = {})
463
+ batches = Enumerator.new do |y|
464
+ options = options.merge(
465
+ account_id: @account_id,
466
+ vault_name: @name,
467
+ statuscode: "Succeeded"
468
+ )
469
+ resp = @client.list_jobs(options)
470
+ resp.each_page do |page|
471
+ batch = []
472
+ page.data.job_list.each do |j|
473
+ batch << Job.new(
474
+ account_id: @account_id,
475
+ vault_name: @name,
476
+ id: j.job_id,
477
+ data: j,
478
+ client: @client
479
+ )
480
+ end
481
+ y.yield(batch)
482
+ end
483
+ end
484
+ Job::Collection.new(batches)
485
+ end
486
+
487
+ # @deprecated
488
+ # @api private
489
+ def identifiers
490
+ {
491
+ account_id: @account_id,
492
+ name: @name
493
+ }
494
+ end
495
+ deprecated(:identifiers)
496
+
497
+ private
498
+
499
+ def extract_account_id(args, options)
500
+ value = args[0] || options.delete(:account_id)
501
+ case value
502
+ when String then value
503
+ when nil then raise ArgumentError, "missing required option :account_id"
504
+ else
505
+ msg = "expected :account_id to be a String, got #{value.class}"
506
+ raise ArgumentError, msg
507
+ end
508
+ end
509
+
510
+ def extract_name(args, options)
511
+ value = args[1] || options.delete(:name)
512
+ case value
513
+ when String then value
514
+ when nil then raise ArgumentError, "missing required option :name"
515
+ else
516
+ msg = "expected :name to be a String, got #{value.class}"
517
+ raise ArgumentError, msg
518
+ end
519
+ end
520
+
521
+ class Collection < Aws::Resources::Collection; end
522
+ end
523
+ end
524
+ end