Class: AWS::EC2::Image

Inherits:
Resource
  • Object
show all
Includes:
HasPermissions, TaggedItem
Defined in:
lib/aws/ec2/image.rb

Overview

Represents an Amazon Machine Image (AMI).

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HasPermissions

#permissions, #private?, #public=, #public?

Methods included from TaggedItem

#add_tag, #clear_tags, #tags

Instance Attribute Details

#architectureSymbol (readonly)

The architecture of the image (e.g. :i386).

Returns:

  • (Symbol)

    the current value of architecture



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def architecture
  @architecture
end

#block_device_mappingsHash (readonly)

A hash of block device mappings for the image. In each entry, the key is the device name (e.g. “/dev/sda1”) and the value is an object with the following methods that return information about the block device:

snapshot_id

The ID of the snapshot that will be used to create this device (may be nil).

volume_size

The size of the volume, in GiBs.

delete_on_termination

True if the Amazon EBS volume is deleted on instance termination.

Returns:

  • (Hash)

    the current value of block_device_mappings



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def block_device_mappings
  @block_device_mappings
end

#descriptionString

A description of the image.

Returns:

  • (String)

    the current value of description



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def description
  @description
end

#hypervisorSymbol (readonly)

The image’s hypervisor type. Possible values:

  • :ovm

  • :xen

Returns:

  • (Symbol)

    the current value of hypervisor



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def hypervisor
  @hypervisor
end

#idObject (readonly)

The ID of the AMI.



115
116
117
# File 'lib/aws/ec2/image.rb', line 115

def id
  @id
end

#kernel_idString (readonly)

The kernel ID associated with the image, if any. Only applicable for machine images.

Returns:

  • (String)

    the current value of kernel_id



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def kernel_id
  @kernel_id
end

#locationString (readonly)

The location of the AMI.

Returns:

  • (String)

    the current value of location



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def location
  @location
end

#nameString (readonly)

The name of the AMI that was provided during image creation.

Returns:

  • (String)

    the current value of name



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def name
  @name
end

#owner_aliasString (readonly)

The AWS account alias (e.g., “amazon”) or AWS account ID that owns the AMI.

Returns:

  • (String)

    the current value of owner_alias



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def owner_alias
  @owner_alias
end

#owner_idString (readonly)

AWS account ID of the image owner.

Returns:

  • (String)

    the current value of owner_id



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def owner_id
  @owner_id
end

#platformString (readonly)

Value is windows for Windows AMIs; otherwise blank.

Returns:

  • (String)

    the current value of platform



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def platform
  @platform
end

#ramdisk_idString (readonly)

The RAM disk ID associated with the image, if any. Only applicable for machine images.

Returns:

  • (String)

    the current value of ramdisk_id



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def ramdisk_id
  @ramdisk_id
end

#root_device_nameString (readonly)

The root device name (e.g., “/dev/sda1”, or “xvda”).

Returns:

  • (String)

    the current value of root_device_name



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def root_device_name
  @root_device_name
end

#root_device_typeSymbol (readonly)

The root device type used by the AMI. Possible values:

  • :ebs

  • :instance_store

Returns:

  • (Symbol)

    the current value of root_device_type



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def root_device_type
  @root_device_type
end

#stateSymbol (readonly)

Current state of the AMI. If the state is :available, the image is successfully registered and available for launching. Valid values:

  • :available

  • :pending

  • :failed

Returns:

  • (Symbol)

    the current value of state



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def state
  @state
end

#state_reasonObject (readonly)

The reason for the image’s most recent state change. The return value is an object with the following methods:

code

Reason code for the state change.

message

A textual description of the state change.

Returns:

  • (Object)

    the current value of state_reason



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def state_reason
  @state_reason
end

#typeSymbol (readonly)

The type of image. Valid values:

  • :machine

  • :kernel

  • :ramdisk

Returns:

  • (Symbol)

    the current value of type



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def type
  @type
end

#virtualization_typeSymbol (readonly)

The type of virtualization of the AMI. Possible values:

  • :paravirtual

  • :hvm

Returns:

  • (Symbol)

    the current value of virtualization_type



108
109
110
# File 'lib/aws/ec2/image.rb', line 108

def virtualization_type
  @virtualization_type
end

Instance Method Details

#deregisterObject Also known as: delete

Deregisters this AMI. Once deregistered, the AMI cannot be used to launch new instances.



125
126
127
# File 'lib/aws/ec2/image.rb', line 125

def deregister
  client.deregister_image(:image_id => id)
end

#exists?Boolean

the DescribeImages action).

Returns:

  • (Boolean)

    true if the AMI exists (is returned by



164
165
166
167
168
169
# File 'lib/aws/ec2/image.rb', line 164

def exists?
  resp = client.describe_images(:filters =>
                                [{ :name => "image-id",
                                   :values => [id] }]) and
    !resp.images_set.empty?
end

#kernelImage

Returns The kernel associated with the image, if any. Only applicable for machine images.

Returns:

  • (Image)

    The kernel associated with the image, if any. Only applicable for machine images.



198
199
200
201
202
# File 'lib/aws/ec2/image.rb', line 198

def kernel
  if id = kernel_id
    Image.new(id, :config => config)
  end
end

#ramdiskImage

Returns The RAM disk associated with the image, if any. Only applicable for machine images.

Returns:

  • (Image)

    The RAM disk associated with the image, if any. Only applicable for machine images.



208
209
210
211
212
# File 'lib/aws/ec2/image.rb', line 208

def ramdisk
  if id = ramdisk_id
    Image.new(id, :config => config)
  end
end

#run_instance(opts = {}) ⇒ Instance

Runs a single instance of this image.

Parameters:

Returns:

  • (Instance)

    An object representing the new instance.



137
138
139
140
# File 'lib/aws/ec2/image.rb', line 137

def run_instance(opts = {})
  InstanceCollection.new(:config => config).
    create(opts.merge(:image => self))
end

#run_instances(count, opts = {}) ⇒ Array

Runs multiple instances of this image.

Parameters:

  • count

    How many instances to request. You can specify this either as an integer or as a Range, to indicate the minimum and maximum number of instances to run. Note that for a new account you can request at most 20 instances at a time.

  • opts (Hash) (defaults to: {})

    Additional options for running the instance. See AWS::EC2::InstanceCollection#create for a full list of supported options.

Returns:

  • (Array)

    An array containing an AWS::EC2::Instance object for each instance that was run.



156
157
158
159
160
# File 'lib/aws/ec2/image.rb', line 156

def run_instances(count, opts = {})
  InstanceCollection.new(:config => config).
    create(opts.merge(:image => self,
                      :count => count))
end