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
Returns a new instance of 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
Returns True if the collection is empty.
52 53 54 |
# File 'lib/aws/ec2/permission_collection.rb', line 52 def empty? size == 0 end |
#private? ⇒ Boolean
Returns True if the resource is private (i.e. not public).
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
Returns True if the resource is public.
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
Returns The number of users that have explicit permissions to launch this AMI.
47 48 49 |
# File 'lib/aws/ec2/permission_collection.rb', line 47 def size inject(0) { |sum, i| sum + 1 } end |