Class: Aws::EC2::InternetGateway
- Inherits:
- 
      Object
      
        - Object
- Aws::EC2::InternetGateway
 
- Defined in:
- gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
- 
  
    
      #attachments  ⇒ Array<Types::InternetGatewayAttachment> 
    
    
  
  
  
  
  
  
  
  
  
    Any VPCs attached to the internet gateway. 
- 
  
    
      #id  ⇒ String 
    
    
      (also: #internet_gateway_id)
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #owner_id  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    The ID of the Amazon Web Services account that owns the internet gateway. 
- 
  
    
      #tags  ⇒ Array<Types::Tag> 
    
    
  
  
  
  
  
  
  
  
  
    Any tags assigned to the internet gateway. 
Actions collapse
- 
  
    
      #attach_to_vpc(options = {})  ⇒ EmptyStructure 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #create_tags(options = {})  ⇒ Tag::Collection 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #delete(options = {})  ⇒ EmptyStructure 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #delete_tags(options = {})  ⇒ Tag::Collection 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #detach_from_vpc(options = {})  ⇒ EmptyStructure 
    
    
  
  
  
  
  
  
  
  
  
    
Instance Method Summary collapse
- 
  
    
      #client  ⇒ Client 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #data  ⇒ Types::InternetGateway 
    
    
  
  
  
  
  
  
  
  
  
    Returns the data for this InternetGateway. 
- 
  
    
      #data_loaded?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Returns trueif this resource is loaded.
- 
  
    
      #initialize(*args)  ⇒ InternetGateway 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of InternetGateway. 
- 
  
    
      #load  ⇒ self 
    
    
      (also: #reload)
    
  
  
  
  
  
  
  
  
  
    Loads, or reloads #data for the current InternetGateway. 
- 
  
    
      #wait_until(options = {}) {|resource| ... } ⇒ Resource 
    
    
  
  
  
  
  
  
  deprecated
  
  
    Deprecated. Use [Aws::EC2::Client] #wait_until instead 
Constructor Details
#initialize(id, options = {}) ⇒ InternetGateway #initialize(options = {}) ⇒ InternetGateway
Returns a new instance of InternetGateway.
| 22 23 24 25 26 27 28 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 22 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @id = extract_id(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end | 
Instance Method Details
#attach_to_vpc(options = {}) ⇒ EmptyStructure
| 210 211 212 213 214 215 216 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 210 def attach_to_vpc( = {}) = .merge(internet_gateway_id: @id) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.attach_internet_gateway() end resp.data end | 
#attachments ⇒ Array<Types::InternetGatewayAttachment>
Any VPCs attached to the internet gateway.
| 40 41 42 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 40 def data[:attachments] end | 
#client ⇒ Client
| 60 61 62 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 60 def client @client end | 
#create_tags(options = {}) ⇒ Tag::Collection
| 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 240 def ( = {}) batch = [] = Aws::Util.deep_merge(, resources: [@id]) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.() end [:tags].each do |t| batch << Tag.new( resource_id: @id, key: t[:key], value: t[:value], client: @client ) end Tag::Collection.new([batch], size: batch.size) end | 
#data ⇒ Types::InternetGateway
Returns the data for this Aws::EC2::InternetGateway. Calls
Client#describe_internet_gateways if #data_loaded? is false.
| 82 83 84 85 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 82 def data load unless @data @data end | 
#data_loaded? ⇒ Boolean
| 90 91 92 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 90 def data_loaded? !!@data end | 
#delete(options = {}) ⇒ EmptyStructure
| 316 317 318 319 320 321 322 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 316 def delete( = {}) = .merge(internet_gateway_id: @id) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.delete_internet_gateway() end resp.data end | 
#delete_tags(options = {}) ⇒ Tag::Collection
| 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 287 def ( = {}) batch = [] = Aws::Util.deep_merge(, resources: [@id]) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.() end [:tags].each do |t| batch << Tag.new( resource_id: @id, key: t[:key], value: t[:value], client: @client ) end Tag::Collection.new([batch], size: batch.size) end | 
#detach_from_vpc(options = {}) ⇒ EmptyStructure
| 339 340 341 342 343 344 345 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 339 def detach_from_vpc( = {}) = .merge(internet_gateway_id: @id) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.detach_internet_gateway() end resp.data end | 
#id ⇒ String Also known as: internet_gateway_id
| 33 34 35 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 33 def id @id end | 
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::EC2::InternetGateway.
Returns self making it possible to chain methods.
internet_gateway.reload.data
| 70 71 72 73 74 75 76 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 70 def load resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.describe_internet_gateways(internet_gateway_ids: [@id]) end @data = resp.internet_gateways[0] self end | 
#owner_id ⇒ String
The ID of the Amazon Web Services account that owns the internet gateway.
| 47 48 49 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 47 def owner_id data[:owner_id] end | 
#tags ⇒ Array<Types::Tag>
Any tags assigned to the internet gateway.
| 53 54 55 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 53 def data[:tags] end | 
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::EC2::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged.
Waiter polls an API operation until a resource enters a desired state.
Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
Example
instance.wait_until(max_attempts:10, delay:5) do |instance|
  instance.state.name == 'running'
end
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success or :failure from these callbacks,
it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
  throw :failure if Time.now - started_at > 3600
end
  # disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
  resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
| 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | # File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/internet_gateway.rb', line 174 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do Aws::Waiters::Waiter.new().wait({}) end end |