Class: AWS::EC2::PermissionCollection
- Inherits:
-
Object
- Object
- AWS::EC2::PermissionCollection
- Includes:
- Core::Model, Enumerable
- Defined in:
- lib/aws/ec2/permission_collection.rb
Overview
Instance Attribute Summary
Attributes included from Core::Model
Instance Method Summary collapse
-
#add(*users) ⇒ nil
Adds permissions for specific users to launch this AMI.
- #each {|user_id| ... } ⇒ Object
-
#empty? ⇒ Boolean
True if the collection is empty.
-
#initialize(resource, opts = {}) ⇒ PermissionCollection
constructor
A new instance of PermissionCollection.
-
#private? ⇒ Boolean
True if the resource is private (i.e. not public).
-
#public=(value) ⇒ nil
Sets whether the resource is public or not.
-
#public? ⇒ Boolean
True if the resource is public.
-
#remove(*users) ⇒ nil
Removes permissions for specific users to launch this AMI.
-
#reset ⇒ nil
Resets the launch permissions to their default state.
-
#size ⇒ Integer
The number of users that have explicit permissions to launch this AMI.
Methods included from Core::Model
#client, #config_prefix, #inspect
Constructor Details
#initialize(resource, opts = {}) ⇒ PermissionCollection
28 29 30 31 |
# File 'lib/aws/ec2/permission_collection.rb', line 28 def initialize(resource, opts = {}) @resource = resource super(opts) end |
Instance Method Details
#add(*users) ⇒ nil
Adds permissions for specific users to launch this AMI.
90 91 92 |
# File 'lib/aws/ec2/permission_collection.rb', line 90 def add(*users) modify(:add, *users) end |
#each {|user_id| ... } ⇒ Object
35 36 37 38 39 40 41 42 43 |
# File 'lib/aws/ec2/permission_collection.rb', line 35 def each(&block) resp = client.send(describe_call, describe_params) resp.send().each do || if [:user_id] user_id = [:user_id] yield(user_id) end end end |
#empty? ⇒ Boolean
52 53 54 |
# File 'lib/aws/ec2/permission_collection.rb', line 52 def empty? size == 0 end |
#private? ⇒ Boolean
66 67 68 |
# File 'lib/aws/ec2/permission_collection.rb', line 66 def private? !public? end |
#public=(value) ⇒ nil
Sets whether the resource is public or not. This has no effect on the explicit AWS account IDs that may already have permissions to use the resource.
77 78 79 80 81 82 83 |
# File 'lib/aws/ec2/permission_collection.rb', line 77 def public= value params = value ? { :add => [{ :group => "all" }] } : { :remove => [{ :group => "all" }] } client.send(modify_call, modify_params(params)) nil end |
#public? ⇒ Boolean
57 58 59 60 61 62 |
# File 'lib/aws/ec2/permission_collection.rb', line 57 def public? resp = client.send(describe_call, describe_params) resp.send().any? do || [:group] and [:group] == "all" end end |
#remove(*users) ⇒ nil
Removes permissions for specific users to launch this AMI.
98 99 100 |
# File 'lib/aws/ec2/permission_collection.rb', line 98 def remove(*users) modify(:remove, *users) end |
#reset ⇒ nil
Resets the launch permissions to their default state.
104 105 106 |
# File 'lib/aws/ec2/permission_collection.rb', line 104 def reset client.send(reset_call, reset_params) end |
#size ⇒ Integer
47 48 49 |
# File 'lib/aws/ec2/permission_collection.rb', line 47 def size inject(0) { |sum, i| sum + 1 } end |