Class: AWS::EC2::NetworkInterface
- Inherits:
-
Resource
- Object
- Core::Resource
- Resource
- AWS::EC2::NetworkInterface
- Includes:
- TaggedItem
- Defined in:
- lib/aws/ec2/network_interface.rb,
lib/aws/ec2/network_interface/attachment.rb
Overview
Represents a network interface in EC2.
Defined Under Namespace
Classes: Attachment
Instance Attribute Summary collapse
-
#association ⇒ Hash?
readonly
Returns a hash of details about the association between this network interface and an elastic ip address.
-
#availability_zone_name ⇒ String
readonly
The current value of availability_zone_name.
-
#description ⇒ String
The current value of description.
-
#mac_address ⇒ String
readonly
The current value of mac_address.
- #network_interface_id ⇒ String (also: #id) readonly
-
#owner_id ⇒ String
readonly
The current value of owner_id.
-
#private_dns_name ⇒ String
readonly
The current value of private_dns_name.
-
#private_ip_address ⇒ String
readonly
The current value of private_ip_address.
-
#requester_managed ⇒ Boolean
(also: #requester_managed?)
The current value of requester_managed.
-
#source_dest_check ⇒ Boolean
(also: #source_dest_check?)
The current value of source_dest_check.
-
#status ⇒ Symbol
readonly
The current value of status.
-
#subnet_id ⇒ String
readonly
The current value of subnet_id.
-
#vpc_id ⇒ String
readonly
The current value of vpc_id.
Attributes included from Core::Model
Instance Method Summary collapse
- #attach(instance, options = {}) ⇒ nil
- #attachment ⇒ Attachment?
- #availability_zone ⇒ AvailabilityZone
-
#delete ⇒ nil
Deletes this network interface.
-
#detach(options = {}) ⇒ nil
Detaches this network interface.
- #elastic_ip ⇒ ElasticIp?
-
#exists? ⇒ Boolean
Returns true if this network interface exists.
-
#initialize(network_interface_id, options = {}) ⇒ NetworkInterface
constructor
A new instance of NetworkInterface.
-
#instance ⇒ Instance?
Returns the instance this network interface is attached to.
- #security_groups ⇒ Array<SecurityGroup>
- #set_security_groups(*groups) ⇒ nil (also: #security_groups=)
-
#subnet ⇒ Subnet
Returns the Subnet this network interface belongs to.
-
#vpc ⇒ VPC
Returns the VPC this network interface belongs to.
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
Methods included from Core::Model
#client, #config_prefix, #inspect
Constructor Details
#initialize(network_interface_id, options = {}) ⇒ NetworkInterface
Returns a new instance of NetworkInterface.
51 52 53 54 |
# File 'lib/aws/ec2/network_interface.rb', line 51 def initialize network_interface_id, = {} @network_interface_id = network_interface_id super end |
Instance Attribute Details
#association ⇒ Hash? (readonly)
Returns a hash of details about the association between this network interface and an elastic ip address.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def association @association end |
#availability_zone_name ⇒ String (readonly)
Returns the current value of availability_zone_name.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def availability_zone_name @availability_zone_name end |
#description ⇒ String
Returns the current value of description.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def description @description end |
#mac_address ⇒ String (readonly)
Returns the current value of mac_address.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def mac_address @mac_address end |
#network_interface_id ⇒ String (readonly) Also known as: id
57 58 59 |
# File 'lib/aws/ec2/network_interface.rb', line 57 def network_interface_id @network_interface_id end |
#owner_id ⇒ String (readonly)
Returns the current value of owner_id.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def owner_id @owner_id end |
#private_dns_name ⇒ String (readonly)
Returns the current value of private_dns_name.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def private_dns_name @private_dns_name end |
#private_ip_address ⇒ String (readonly)
Returns the current value of private_ip_address.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def private_ip_address @private_ip_address end |
#requester_managed ⇒ Boolean Also known as: requester_managed?
Returns the current value of requester_managed.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def requester_managed @requester_managed end |
#source_dest_check ⇒ Boolean Also known as: source_dest_check?
Returns the current value of source_dest_check.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def source_dest_check @source_dest_check end |
#status ⇒ Symbol (readonly)
Returns the current value of status.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def status @status end |
#subnet_id ⇒ String (readonly)
Returns the current value of subnet_id.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def subnet_id @subnet_id end |
#vpc_id ⇒ String (readonly)
Returns the current value of vpc_id.
47 48 49 |
# File 'lib/aws/ec2/network_interface.rb', line 47 def vpc_id @vpc_id end |
Instance Method Details
#attach(instance, options = {}) ⇒ nil
180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/aws/ec2/network_interface.rb', line 180 def attach instance, = {} instance_id = instance.is_a?(Instance) ? instance.instance_id : instance client_opts = {} client_opts[:network_interface_id] = network_interface_id client_opts[:instance_id] = instance_id client_opts[:device_index] = [:device_index] || 1 client.attach_network_interface(client_opts) nil end |
#attachment ⇒ Attachment?
164 165 166 167 168 |
# File 'lib/aws/ec2/network_interface.rb', line 164 def if details = Attachment.new(self, details) end end |
#availability_zone ⇒ AvailabilityZone
129 130 131 |
# File 'lib/aws/ec2/network_interface.rb', line 129 def availability_zone AvailabilityZone.new(availability_zone_name, :config => config) end |
#delete ⇒ nil
Deletes this network interface.
209 210 211 212 213 214 |
# File 'lib/aws/ec2/network_interface.rb', line 209 def delete client_opts = {} client_opts[:network_interface_id] = network_interface_id client.delete_network_interface(client_opts) nil end |
#detach(options = {}) ⇒ nil
Detaches this network interface.
199 200 201 202 203 204 205 |
# File 'lib/aws/ec2/network_interface.rb', line 199 def detach = {} if = self. .detach() else raise 'unable to detach network interface, no attachment present' end end |
#elastic_ip ⇒ ElasticIp?
121 122 123 124 125 126 |
# File 'lib/aws/ec2/network_interface.rb', line 121 def elastic_ip if association = self.association opts = association.merge(:config => config) ElasticIp.new(association[:public_ip], opts) end end |
#exists? ⇒ Boolean
Returns true if this network interface exists.
217 218 219 220 221 222 223 224 |
# File 'lib/aws/ec2/network_interface.rb', line 217 def exists? begin get_resource true rescue Errors::InvalidNetworkInterfaceID::NotFound false end end |
#instance ⇒ Instance?
Returns the instance this network interface is attached to. If it has not been attached, then nil is returned.
157 158 159 160 161 |
# File 'lib/aws/ec2/network_interface.rb', line 157 def instance if = self. .instance end end |
#security_groups ⇒ Array<SecurityGroup>
134 135 136 137 138 |
# File 'lib/aws/ec2/network_interface.rb', line 134 def security_groups groups.collect do |g| SecurityGroup.new(g.group_id, :name => g.group_name, :config => config) end end |
#set_security_groups(*groups) ⇒ nil Also known as: security_groups=
146 147 148 149 150 151 |
# File 'lib/aws/ec2/network_interface.rb', line 146 def set_security_groups *groups self.groups = [groups].flatten.collect do |g| g.is_a?(SecurityGroup) ? g.security_group_id : g end nil end |