class AWS::EC2::VolumeCollection
Represents a collection of Amazon EBS volumes. Typically you should get an instance of this class by calling {EC2#volumes}.
@example Create an empty 15GiB volume
ec2.volumes.create(:size => 15, :availability_zone => "us-west-2a")
@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 }
Public Instance Methods
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](docs.aws.amazon.com/AWSEC2/latest/UserGuide/index.html?using-ebs.html).
@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}.
@option options [String] :iops
@option options [String] :volume_type
@option options [Boolean] :encrypted (false)
When true, the volume will be encrypted. For more information, refer to [Amazon EBS Encryption](http://http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
@return [Volume]
# File lib/aws/ec2/volume_collection.rb, line 85 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 [Volume] Yields each volume in the collection. @return [nil]
# File lib/aws/ec2/volume_collection.rb, line 36 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
Protected Instance Methods
@api private
# File lib/aws/ec2/volume_collection.rb, line 95 def member_class Volume end