File: vault.rb

package info (click to toggle)
ruby-fog-aws 3.18.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,140 kB
  • sloc: ruby: 73,328; javascript: 14; makefile: 9; sh: 4
file content (49 lines) | stat: -rw-r--r-- 1,486 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require 'fog/aws/models/glacier/archives'
require 'fog/aws/models/glacier/jobs'

module Fog
  module AWS
    class Glacier
      class Vault < Fog::Model
        identity  :id,                    :aliases => 'VaultName'
        attribute :created_at,            :aliases => 'CreationDate', :type => :time
        attribute :last_inventory_at,     :aliases => 'LastInventoryDate', :type => :time
        attribute :number_of_archives,    :aliases => 'NumberOfArchives', :type => :integer
        attribute :size_in_bytes,         :aliases => 'SizeInBytes', :type => :integer
        attribute :arn,                   :aliases => 'VaultARN'

        def ready?
          # Glacier requests are synchronous
          true
        end

        def archives
          @archives ||= Fog::AWS::Glacier::Archives.new(:vault => self, :service => service)
        end

        def jobs(filters={})
          Fog::AWS::Glacier::Jobs.new(:vault => self, :service => service, :filters => filters)
        end

        def set_notification_configuration(topic, events)
          service.set_vault_notification_configuration(id, topic, events)
        end

        def delete_notification_configuration
          service.delete_vault_notification_configuration(id)
        end

        def save
          requires :id
          service.create_vault(id)
          reload
        end

        def destroy
          requires :id
          service.delete_vault(id)
        end
      end
    end
  end
end