Class: AWS::EC2::VPCCollection

Inherits:
Collection show all
Includes:
Core::Collection::Simple, TaggedCollection
Defined in:
lib/aws/ec2/vpc_collection.rb

Instance Method Summary collapse

Methods included from Core::Collection

#each, #each_batch, #enum, #first, #in_groups_of, #page

Methods included from TaggedCollection

#tagged, #tagged_values

Methods included from FilteredCollection

#filter, #initialize

Instance Method Details

#[](vpc_id) ⇒ Object



56
57
58
# File 'lib/aws/ec2/vpc_collection.rb', line 56

def [] vpc_id
  VPC.new(vpc_id, :config => config)
end

#create(cidr_block, options = {}) ⇒ VPC

Creates a VPC with the CIDR block you specify. The smallest VPC you can create uses a /28 netmask (16 IP addresses), and the largest uses a /16 netmask (65,536 IP addresses).

vpc = ec2.vpcs.create('10.0.0.0/16')

Parameters:

  • cidr_block (String)

    The CIDR block you want the VPC to cover (e.g., 10.0.0.0/16).

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

Options Hash (options):

  • :instance_tenancy (Boolean) — default: :default

    The allowed tenancy of instances launched into the VPC. A value of :default means instances can be launched with any tenancy; a value of :dedicated means all instances launched into the VPC will be launched with dedicated tenancy regardless of the tenancy assigned to the instance at launch.

Returns:



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/aws/ec2/vpc_collection.rb', line 41

def create cidr_block, options = {}
  
  tenancy = options.key?(:instance_tenancy) ?
    options[:instance_tenancy].to_s : 'default'

  client_opts = {}
  client_opts[:cidr_block] = cidr_block
  client_opts[:instance_tenancy] = tenancy

  resp = client.create_vpc(client_opts)

  VPC.new_from(:create_vpc, resp.vpc, resp.vpc.vpc_id, :config => config)

end