Class: AWS::EC2::VPC

Inherits:
Resource show all
Includes:
TaggedItem
Defined in:
lib/aws/ec2/vpc.rb

Instance Attribute Summary collapse

Attributes included from Core::Model

#config

Instance Method Summary collapse

Methods included from TaggedItem

#add_tag, #cached_tags, #clear_tags, #tagging_resource_type, #tags

Methods inherited from Core::Resource

attribute_providers, attribute_providers_for, attributes, #attributes_from_response, define_attribute_type, #eql?, #inspect, new_from

Methods included from Core::Cacheable

included, #retrieve_attribute

Methods included from Core::Model

#client, #config_prefix, #inspect

Constructor Details

#initialize(vpc_id, options = {}) ⇒ VPC

Returns a new instance of VPC.


25
26
27
28
# File 'lib/aws/ec2/vpc.rb', line 25

def initialize vpc_id, options = {}
  @vpc_id = vpc_id
  super
end

Instance Attribute Details

#cidr_blockString (readonly)

Returns the current value of cidr_block.

Returns:

  • (String)

    the current value of cidr_block


21
22
23
# File 'lib/aws/ec2/vpc.rb', line 21

def cidr_block
  @cidr_block
end

#dhcp_options_idString (readonly)

Returns the current value of dhcp_options_id.

Returns:

  • (String)

    the current value of dhcp_options_id


21
22
23
# File 'lib/aws/ec2/vpc.rb', line 21

def dhcp_options_id
  @dhcp_options_id
end

#instance_tenancySymbol (readonly)

Returns the current value of instance_tenancy.

Returns:

  • (Symbol)

    the current value of instance_tenancy


21
22
23
# File 'lib/aws/ec2/vpc.rb', line 21

def instance_tenancy
  @instance_tenancy
end

#stateSymbol (readonly)

Returns the current value of state.

Returns:

  • (Symbol)

    the current value of state


21
22
23
# File 'lib/aws/ec2/vpc.rb', line 21

def state
  @state
end

#vpc_idString (readonly) Also known as: id

Returns:

  • (String)

31
32
33
# File 'lib/aws/ec2/vpc.rb', line 31

def vpc_id
  @vpc_id
end

Instance Method Details

#deletenil

Deletes the current VPC. The VPC must be empty before it can be deleted.

Returns:

  • (nil)

54
55
56
57
# File 'lib/aws/ec2/vpc.rb', line 54

def delete
  client.delete_vpc(:vpc_id => vpc_id)
  nil
end

#dhcp_optionsDHCPOptions

Returns the dhcp options associated with this VPC.

Returns:

  • (DHCPOptions)

    Returns the dhcp options associated with this VPC.


141
142
143
# File 'lib/aws/ec2/vpc.rb', line 141

def dhcp_options
  DHCPOptions.new(dhcp_options_id, :config => config)
end

#dhcp_options=(dhcp_options) ⇒ Object

Associates the given dhcp options with this VPC.

vpc.dhcp_optinos = ec2.dhcp_options['dopt-a1234abc']

You can also specify the string 'default' to use Amazon's default dhcp options.

vpc.dhcp_optinos = 'default'

Parameters:


157
158
159
160
161
162
# File 'lib/aws/ec2/vpc.rb', line 157

def dhcp_options= dhcp_options
  unless dhcp_options.is_a?(DHCPOptions) 
    dhcp_options = DHCPOptions.new(dhcp_options, :config => config)
  end
  dhcp_options.associate(self)
end

#instancesInstanceCollection

Returns a filtered collection of instances that are in this VPC.

Returns:

  • (InstanceCollection)

    Returns a filtered collection of instances that are in this VPC.


61
62
63
# File 'lib/aws/ec2/vpc.rb', line 61

def instances
  InstanceCollection.new(:config => config).filter('vpc-id', vpc_id)
end

#internet_gatewayInternetGateway?

Returns the internet gateway attached to this VPC. If no internet gateway has been attached, then nil is returned.

Returns:

  • (InternetGateway, nil)

    Returns the internet gateway attached to this VPC. If no internet gateway has been attached, then nil is returned.


98
99
100
101
# File 'lib/aws/ec2/vpc.rb', line 98

def internet_gateway
  gateways = InternetGatewayCollection.new(:config => config)
  gateways.filter('attachment.vpc-id', vpc_id).first
end

#internet_gateway=(internet_gateway) ⇒ Object

Attaches the given internet gateway to this VPC. If there is already an internet gateway attached, it will be detached from this VPC first. If you pass nil, this will leave the current VPC without an attached internet gateway.

vpc.internet_gateway = gateway_1
vpc.internet_gateway = gateway_2 # detaches gateway_1 first
vpc.internet_gateway = nil # detaches gateway_2

Parameters:


115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/aws/ec2/vpc.rb', line 115

def internet_gateway= internet_gateway

  # remove currently attached internet gateway
  gateway = self.internet_gateway
  gateway.detach(self) if gateway

  if internet_gateway
    unless internet_gateway.is_a?(InternetGateway)
      internet_gateway = InternetGateway.new(internet_gateway, 
        :config => config)
    end
    internet_gateway.attach(self)
  end
  
end

#network_aclsNetworkACLCollection

Returns a filtered collection of network ACLs that are in this VPC.

Returns:


79
80
81
# File 'lib/aws/ec2/vpc.rb', line 79

def network_acls
  NetworkACLCollection.new(:config => config).filter('vpc-id', vpc_id)
end

#network_interfacesNetworkInterfaceCollection

Returns a filtered collection of network interfaces that are in this VPC.

Returns:


91
92
93
# File 'lib/aws/ec2/vpc.rb', line 91

def network_interfaces
  NetworkInterfaceCollection.new(:config => config).filter('vpc-id', id)
end

#route_tablesRouteTableCollection

Returns a filtered collection of route tables that are in this VPC.

Returns:


85
86
87
# File 'lib/aws/ec2/vpc.rb', line 85

def route_tables
  RouteTableCollection.new(:config => config).filter('vpc-id', vpc_id)
end

#security_groupsSecurityGroupCollection

Returns a filtered collection of security groups that are in this VPC.

Returns:


67
68
69
# File 'lib/aws/ec2/vpc.rb', line 67

def security_groups
  SecurityGroupCollection.new(:config => config).filter('vpc-id', vpc_id)
end

#subnetsSubnetCollection

Returns a filtered collection of subnets that are in this VPC.

Returns:

  • (SubnetCollection)

    Returns a filtered collection of subnets that are in this VPC.


73
74
75
# File 'lib/aws/ec2/vpc.rb', line 73

def subnets
  SubnetCollection.new(:config => config).filter('vpc-id', vpc_id)
end

#vpn_gatewayVPNGateway?

Returns the vpn gateway attached to this VPC. If no vpn gateway has been attached, then nil is returned.

Returns:

  • (VPNGateway, nil)

    Returns the vpn gateway attached to this VPC. If no vpn gateway has been attached, then nil is returned.


134
135
136
137
# File 'lib/aws/ec2/vpc.rb', line 134

def vpn_gateway
  gateways = VPNGatewayCollection.new(:config => config)
  gateways.filter('attachment.vpc-id', vpc_id).first
end