You are viewing documentation for version 1 of the AWS SDK for Ruby. Version 2 documentation can be found here.
Class: AWS::EC2::ImageCollection
- Inherits:
-
Collection
- Object
- Collection
- AWS::EC2::ImageCollection
- Includes:
- TaggedCollection
- Defined in:
- lib/aws/ec2/image_collection.rb
Overview
Represents a collection of EC2 images. You can use this to find out which images exist with the characteristics you are interested in:
ec2 = EC2.new
all_images = ec2.images
amazon_owned_images = all_images.with_owner('amazon')
my_images = all_images.with_owner('self')
tagged_amis = all_images.tagged('mytag')
tagged_amis.map(&:id) # => ["ami-123", ...]
You can also use it to create new images. For example:
ec2.images.create(:instance_id => "i-123", :name => "my-image")
Instance Method Summary collapse
-
#[](image_id) ⇒ Image
Image_id The ID of the image.
-
#create(options = {}) ⇒ Image
Creates an AMI.
-
#each(opts = {}) {|image| ... } ⇒ nil
-
#executable_by(*users) ⇒ ImageCollection
A new collection that only includes images for which the specified user ID has explicit launch permissions.
-
#with_owner(*owners) ⇒ ImageCollection
A new collection that only includes images owned by one or more of the specified AWS accounts.
Methods included from TaggedCollection
#tagged, #tagged_values, #with_tag
Methods included from FilteredCollection
Instance Method Details
#[](image_id) ⇒ Image
Returns image_id The ID of the image.
45 46 47 |
# File 'lib/aws/ec2/image_collection.rb', line 45 def [] image_id super end |
#create(options = {}) ⇒ Image
Creates an AMI. There are several ways to create an AMI using this method; for detailed information on each strategy see the EC2 Developer Guide.
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 |
# File 'lib/aws/ec2/image_collection.rb', line 181 def create = {} resp = case when [:instance_id] client.create_image() when [:image_location] || [:root_device_name] if kernel = .delete(:kernel) [:kernel_id] = kernel.id end if ramdisk = .delete(:ramdisk) [:ramdisk_id] = ramdisk.id end [:block_device_mappings] = translate_block_device_mappings([:block_device_mappings]) if [:block_device_mappings] client.register_image() else raise(ArgumentError, "expected instance_id, image_location, " + "or root_device_name") end Image.new(resp.image_id, :config => config) end |
#each(opts = {}) {|image| ... } ⇒ nil
75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/aws/ec2/image_collection.rb', line 75 def each(opts = {}, &block) opts[:owners] = @owners.map { |id| id.to_s } unless @owners.empty? opts[:executable_users] = @executable_users.map { |id| id.to_s } unless @executable_users.empty? response = filtered_request(:describe_images, opts) response.images_set.each do |i| image = Image.new_from(:describe_images, i, i.image_id, :config => config) yield(image) end nil end |
#executable_by(*users) ⇒ ImageCollection
Returns A new collection that only includes
images for which the specified user ID has explicit launch
permissions. The user ID can be an AWS account ID, :self
to return AMIs for which the sender of the request has
explicit launch permissions, or :all
to return AMIs with
public launch permissions.
69 70 71 |
# File 'lib/aws/ec2/image_collection.rb', line 69 def executable_by(*users) collection_with(:executable_users => @executable_users + users) end |
#with_owner(*owners) ⇒ ImageCollection
Returns A new collection that only includes
images owned by one or more of the specified AWS accounts.
The IDs :amazon
and :self
can be used to include AMIs
owned by Amazon or AMIs owned by you, respectively.
56 57 58 |
# File 'lib/aws/ec2/image_collection.rb', line 56 def with_owner(*owners) collection_with(:owners => @owners + owners) end |