Class AWS::EC2::ImageCollection
In: lib/aws/ec2/image_collection.rb
Parent: Collection

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")

Methods

Included Modules

TaggedCollection BlockDeviceMappings

Public Class methods

Public Instance methods

@return [Image] image_id The ID of the 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.

@param [Hash] options Options for creating the image.

  +:name+ is required, and you must also specify one of the
  following options:

  * +:instance_id+
  * +:image_location+
  * +:root_device_name+

@option options [String] :instance_id The ID of a running

  instance.  This instance will be rebooted unless
  +:no_reboot+ is set to +true+.

@option options [String] :description A description of the

  new image.

@option options [Boolean] :no_reboot By default this

  option is set to +false+, which means Amazon EC2
  attempts to cleanly shut down the instance before image
  creation and reboots the instance afterwards. When the
  option is set to +true+, Amazon EC2 does not shut down
  the instance before creating the image. When this option
  is used, file system integrity on the created image cannot
  be guaranteed.

  *Note*: This option is only valid when used with
  +:instance_id+.

@option options [String] :image_location Full path to your

  AMI manifest in Amazon S3 storage.  This must be of the
  form "bucket_name/key".

@option options [String] :architecture The architecture of

  the image.  Valid values:

  * +:i386+
  * +:x86_64+

  *Note*: This option is only valid with +:image_location+
  or +:root_device_name+

@option options [String] :kernel_id The ID of the kernel to

  select.

  *Note*: This option is only valid with +:image_location+
  or +:root_device_name+

@option options [Image] :kernel The kernel image to use.

  Equivalent to passing +:kernel_id+ with the ID of the
  image.

  *Note*: This option is only valid with +:image_location+
  or +:root_device_name+

@option options [String] :ramdisk_id The ID of the RAM disk

  to select. Some kernels require additional drivers at
  launch. Check the kernel requirements for information on
  whether you need to specify a RAM disk. To find kernel
  requirements, refer to the Resource Center and search for
  the kernel ID.

  *Note*: This option is only valid with +:image_location+
  or +:root_device_name+

@option options [Image] :ramdisk The ramdisk image to use.

  Equivalent to passing +:ramdisk_id+ with the ID of the
  image.

  *Note*: This option is only valid with +:image_location+
  or +:root_device_name+

@option options [String] :root_device_name The root device

  name (e.g., /dev/sda1, or xvda).

@option options [Hash] :block_device_mappings This must be a

  hash; the keys are device names to map, and the value for
  each entry determines how that device is mapped.  Valid
  values include:

  * A string, which is interpreted as a virtual device name.

  * A hash with any of the following options.  One of
    +:snapshot+, +:snapshot_id+ or +:volume_size+ is
    required.

    [:snapshot] A snapshot to use when creating the block
                device.

    [:snapshot_id] The ID of a snapshot to use when creating
                   the block device.

    [:volume_size] The size of volume to create, in gigabytes.

    [:delete_on_termination] Setting this to true causes EC2
                             to delete the volume when the
                             instance is terminated.

@return [Image]

@yield [image] Each image in the collection. @return [nil]

@return [ImageCollection] 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.

@param [Array of Strings] users The AWS account IDs by which

  the new collection should be filtered.

@return [ImageCollection] 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.

@param [Array of Strings] owners The AWS account IDs by

  which the new collection should be filtered.

Protected Instance methods

[Validate]