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

@api private

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](docs.amazonwebservices.com/AWSEC2/latest/UserGuide/creating-an-ami.html).

@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

@api private

[Validate]