Represents a collection of Amazon EBS volumes. Typically you should get an instance of this class by calling {AWS::EC2#volumes}.
@example Create an empty 15GiB volume
ec2.volumes.create(:size => 15, :availability_zone => "us-east-1a")
@example Get a volume by ID
volume = ec2.volumes["vol-123"] volume.exists?
@example Get a map of volume IDs to volume status
ec2.volumes.inject({}) { |m, v| m[v.id] = v.status; m } # => { "vol-12345678" => :available, "vol-87654321" => :in_use }
Creates a new Amazon EBS volume that any Amazon EC2 instance in the same Availability Zone can attach to. For more information about Amazon EBS, go to the Amazon Elastic Compute Cloud User Guide.
@return [Volume] An object representing the new volume.
@param [Hash] options Options for creating the volume.
+:availability_zone+ and one of +:size+, +:snapshot+, or +:snapshot_id+ is required.
@option options [Integer] :size The size of the volume, in
GiBs. Valid values: 1 - 1024. If +:snapshot+ or +:snapshot_id+ is specified, this defaults to the size of the specified snapshot.
@option options [Snapshot] :snapshot The snapshot from which to
create the new volume.
@option options [String] :snapshot_id The ID of the snapshot
from which to create the new volume.
@option options [String, AvailabilityZone] :availability_zone
The Availability Zone in which to create the new volume. To get a list of the availability zones you can use, see {EC2#availability_zones}.
@return [Volume]
# File lib/aws/ec2/volume_collection.rb, line 78 def create options = {} if snapshot = options.delete(:snapshot) options[:snapshot_id] = snapshot.id end resp = client.create_volume(options) Volume.new_from(:create_volume, resp, resp.volume_id, :config => config) end
@yield [Instance] Yields each volume in the collection. @return [nil]
# File lib/aws/ec2/volume_collection.rb, line 37 def each(&block) resp = filtered_request(:describe_volumes) resp.volume_set.each do |v| volume = Volume.new_from(:describe_volumes, v, v.volume_id, :config => config) yield(volume) end nil end
@private
# File lib/aws/ec2/volume_collection.rb, line 88 def member_class Volume end