Class: Aws::Glacier::Vault
- Inherits:
-
Object
- Object
- Aws::Glacier::Vault
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-glacier/vault.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
- #account_id ⇒ String
-
#creation_date ⇒ Time
The Universal Coordinated Time (UTC) date when the vault was created.
-
#last_inventory_date ⇒ Time
The Universal Coordinated Time (UTC) date when Amazon Glacier completed the last vault inventory.
- #name ⇒ String (also: #vault_name)
-
#number_of_archives ⇒ Integer
The number of archives in the vault as of the last inventory date.
-
#size_in_bytes ⇒ Integer
Total size, in bytes, of the archives in the vault as of the last inventory date.
-
#vault_arn ⇒ String
The Amazon Resource Name (ARN) of the vault.
Actions collapse
- #create(options = {}) ⇒ Types::CreateVaultOutput
- #delete(options = {}) ⇒ EmptyStructure
- #initiate_inventory_retrieval(options = {}) ⇒ Job
- #initiate_multipart_upload(options = {}) ⇒ MultipartUpload
- #upload_archive(options = {}) ⇒ Archive
Associations collapse
- #account ⇒ Account
- #archive(id) ⇒ Archive
- #completed_jobs(options = {}) ⇒ Job::Collection
- #failed_jobs(options = {}) ⇒ Job::Collection
- #identifiers ⇒ Object deprecated private Deprecated.
- #job(id) ⇒ Job
- #jobs(options = {}) ⇒ Job::Collection
- #jobs_in_progress(options = {}) ⇒ Job::Collection
- #multipart_uplaods(options = {}) ⇒ MultipartUpload::Collection
- #multipart_upload(id) ⇒ MultipartUpload
- #notification ⇒ Notification
- #succeeded_jobs(options = {}) ⇒ Job::Collection
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::DescribeVaultOutput
Returns the data for this Vault.
-
#data_loaded? ⇒ Boolean
Returns ‘true` if this resource is loaded.
-
#initialize(*args) ⇒ Vault
constructor
A new instance of Vault.
- #load ⇒ self (also: #reload)
-
#wait_until(options = {}, &block) ⇒ Resource
deprecated
Deprecated.
Use [Aws::Glacier::Client] #wait_until instead
Constructor Details
#initialize(account_id, name, options = {}) ⇒ Vault #initialize(options = {}) ⇒ Vault
Returns a new instance of Vault.
21 22 23 24 25 26 27 |
# File 'lib/aws-sdk-glacier/vault.rb', line 21 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @account_id = extract_account_id(args, ) @name = extract_name(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() end |
Instance Method Details
#account ⇒ Account
329 330 331 332 333 334 |
# File 'lib/aws-sdk-glacier/vault.rb', line 329 def account Account.new( id: @account_id, client: @client ) end |
#account_id ⇒ String
32 33 34 |
# File 'lib/aws-sdk-glacier/vault.rb', line 32 def account_id @account_id end |
#archive(id) ⇒ Archive
338 339 340 341 342 343 344 345 |
# File 'lib/aws-sdk-glacier/vault.rb', line 338 def archive(id) Archive.new( account_id: @account_id, vault_name: @name, id: id, client: @client ) end |
#completed_jobs(options = {}) ⇒ Job::Collection
357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 |
# File 'lib/aws-sdk-glacier/vault.rb', line 357 def completed_jobs( = {}) batches = Enumerator.new do |y| = .merge( account_id: @account_id, vault_name: @name, completed: "true" ) resp = @client.list_jobs() resp.each_page do |page| batch = [] page.data.job_list.each do |j| batch << Job.new( account_id: @account_id, vault_name: @name, id: j.job_id, data: j, client: @client ) end y.yield(batch) end end Job::Collection.new(batches) end |
#create(options = {}) ⇒ Types::CreateVaultOutput
220 221 222 223 224 225 226 227 |
# File 'lib/aws-sdk-glacier/vault.rb', line 220 def create( = {}) = .merge( vault_name: @name, account_id: @account_id ) resp = @client.create_vault() resp.data end |
#creation_date ⇒ Time
The Universal Coordinated Time (UTC) date when the vault was created. This value should be a string in the ISO 8601 date format, for example ‘2012-03-20T17:03:43.221Z`.
52 53 54 |
# File 'lib/aws-sdk-glacier/vault.rb', line 52 def creation_date data[:creation_date] end |
#data ⇒ Types::DescribeVaultOutput
Returns the data for this Aws::Glacier::Vault. Calls Client#describe_vault if #data_loaded? is ‘false`.
106 107 108 109 |
# File 'lib/aws-sdk-glacier/vault.rb', line 106 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
114 115 116 |
# File 'lib/aws-sdk-glacier/vault.rb', line 114 def data_loaded? !!@data end |
#delete(options = {}) ⇒ EmptyStructure
234 235 236 237 238 239 240 241 |
# File 'lib/aws-sdk-glacier/vault.rb', line 234 def delete( = {}) = .merge( vault_name: @name, account_id: @account_id ) resp = @client.delete_vault() resp.data end |
#failed_jobs(options = {}) ⇒ Job::Collection
391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 |
# File 'lib/aws-sdk-glacier/vault.rb', line 391 def failed_jobs( = {}) batches = Enumerator.new do |y| = .merge( account_id: @account_id, vault_name: @name, statuscode: "Failed" ) resp = @client.list_jobs() resp.each_page do |page| batch = [] page.data.job_list.each do |j| batch << Job.new( account_id: @account_id, vault_name: @name, id: j.job_id, data: j, client: @client ) end y.yield(batch) end end Job::Collection.new(batches) end |
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
583 584 585 586 587 588 |
# File 'lib/aws-sdk-glacier/vault.rb', line 583 def identifiers { account_id: @account_id, name: @name } end |
#initiate_inventory_retrieval(options = {}) ⇒ Job
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 |
# File 'lib/aws-sdk-glacier/vault.rb', line 248 def initiate_inventory_retrieval( = {}) = Aws::Util.deep_merge(, vault_name: @name, account_id: @account_id, job_parameters: { type: "inventory-retrieval" } ) resp = @client.initiate_job() Job.new( id: resp.data.job_id, account_id: @account_id, vault_name: @name, client: @client ) end |
#initiate_multipart_upload(options = {}) ⇒ MultipartUpload
283 284 285 286 287 288 289 290 291 292 293 294 295 |
# File 'lib/aws-sdk-glacier/vault.rb', line 283 def initiate_multipart_upload( = {}) = .merge( vault_name: @name, account_id: @account_id ) resp = @client.initiate_multipart_upload() MultipartUpload.new( id: resp.data.upload_id, account_id: @account_id, vault_name: @name, client: @client ) end |
#job(id) ⇒ Job
418 419 420 421 422 423 424 425 |
# File 'lib/aws-sdk-glacier/vault.rb', line 418 def job(id) Job.new( account_id: @account_id, vault_name: @name, id: id, client: @client ) end |
#jobs(options = {}) ⇒ Job::Collection
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 |
# File 'lib/aws-sdk-glacier/vault.rb', line 440 def jobs( = {}) batches = Enumerator.new do |y| = .merge( account_id: @account_id, vault_name: @name ) resp = @client.list_jobs() resp.each_page do |page| batch = [] page.data.job_list.each do |j| batch << Job.new( account_id: @account_id, vault_name: @name, id: j.job_id, data: j, client: @client ) end y.yield(batch) end end Job::Collection.new(batches) end |
#jobs_in_progress(options = {}) ⇒ Job::Collection
473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 |
# File 'lib/aws-sdk-glacier/vault.rb', line 473 def jobs_in_progress( = {}) batches = Enumerator.new do |y| = .merge( account_id: @account_id, vault_name: @name, statuscode: "InProgress" ) resp = @client.list_jobs() resp.each_page do |page| batch = [] page.data.job_list.each do |j| batch << Job.new( account_id: @account_id, vault_name: @name, id: j.job_id, data: j, client: @client ) end y.yield(batch) end end Job::Collection.new(batches) end |
#last_inventory_date ⇒ Time
The Universal Coordinated Time (UTC) date when Amazon Glacier completed the last vault inventory. This value should be a string in the ISO 8601 date format, for example ‘2012-03-20T17:03:43.221Z`.
60 61 62 |
# File 'lib/aws-sdk-glacier/vault.rb', line 60 def last_inventory_date data[:last_inventory_date] end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::Glacier::Vault. Returns ‘self` making it possible to chain methods.
vault.reload.data
93 94 95 96 97 98 99 100 |
# File 'lib/aws-sdk-glacier/vault.rb', line 93 def load resp = @client.describe_vault( vault_name: @name, account_id: @account_id ) @data = resp.data self end |
#multipart_uplaods(options = {}) ⇒ MultipartUpload::Collection
503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 |
# File 'lib/aws-sdk-glacier/vault.rb', line 503 def multipart_uplaods( = {}) batches = Enumerator.new do |y| = .merge( vault_name: @name, account_id: @account_id ) resp = @client.list_multipart_uploads() resp.each_page do |page| batch = [] page.data.uploads_list.each do |u| batch << MultipartUpload.new( account_id: @account_id, vault_name: @name, id: u.multipart_upload_id, data: u, client: @client ) end y.yield(batch) end end MultipartUpload::Collection.new(batches) end |
#multipart_upload(id) ⇒ MultipartUpload
529 530 531 532 533 534 535 536 |
# File 'lib/aws-sdk-glacier/vault.rb', line 529 def multipart_upload(id) MultipartUpload.new( account_id: @account_id, vault_name: @name, id: id, client: @client ) end |
#name ⇒ String Also known as: vault_name
37 38 39 |
# File 'lib/aws-sdk-glacier/vault.rb', line 37 def name @name end |
#notification ⇒ Notification
539 540 541 542 543 544 545 |
# File 'lib/aws-sdk-glacier/vault.rb', line 539 def notification Notification.new( account_id: @account_id, vault_name: @name, client: @client ) end |
#number_of_archives ⇒ Integer
The number of archives in the vault as of the last inventory date. This field will return ‘null` if an inventory has not yet run on the vault, for example if you just created the vault.
68 69 70 |
# File 'lib/aws-sdk-glacier/vault.rb', line 68 def number_of_archives data[:number_of_archives] end |
#size_in_bytes ⇒ Integer
Total size, in bytes, of the archives in the vault as of the last inventory date. This field will return null if an inventory has not yet run on the vault, for example if you just created the vault.
76 77 78 |
# File 'lib/aws-sdk-glacier/vault.rb', line 76 def size_in_bytes data[:size_in_bytes] end |
#succeeded_jobs(options = {}) ⇒ Job::Collection
556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 |
# File 'lib/aws-sdk-glacier/vault.rb', line 556 def succeeded_jobs( = {}) batches = Enumerator.new do |y| = .merge( account_id: @account_id, vault_name: @name, statuscode: "Succeeded" ) resp = @client.list_jobs() resp.each_page do |page| batch = [] page.data.job_list.each do |j| batch << Job.new( account_id: @account_id, vault_name: @name, id: j.job_id, data: j, client: @client ) end y.yield(batch) end end Job::Collection.new(batches) end |
#upload_archive(options = {}) ⇒ Archive
312 313 314 315 316 317 318 319 320 321 322 323 324 |
# File 'lib/aws-sdk-glacier/vault.rb', line 312 def upload_archive( = {}) = .merge( vault_name: @name, account_id: @account_id ) resp = @client.upload_archive() Archive.new( id: resp.data.archive_id, account_id: @account_id, vault_name: @name, client: @client ) end |
#vault_arn ⇒ String
The Amazon Resource Name (ARN) of the vault.
44 45 46 |
# File 'lib/aws-sdk-glacier/vault.rb', line 44 def vault_arn data[:vault_arn] end |
#wait_until(options = {}, &block) ⇒ Resource
Use [Aws::Glacier::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged
Waiter polls an API operation until a resource enters a desired state.
## Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
## Example
instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
## Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
## Callbacks
You can be notified before each polling attempt and before each delay. If you throw ‘:success` or `:failure` from these callbacks, it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
# disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
## Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
# File 'lib/aws-sdk-glacier/vault.rb', line 196 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Waiters::Waiter.new().wait({}) end |