Class: Aws::EC2::NatGateway
- Inherits:
-
Object
- Object
- Aws::EC2::NatGateway
- Extended by:
- Deprecations
- Defined in:
- lib/aws-sdk-ec2/nat_gateway.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#connectivity_type ⇒ String
Indicates whether the NAT gateway supports public or private connectivity.
-
#create_time ⇒ Time
The date and time the NAT gateway was created.
-
#delete_time ⇒ Time
The date and time the NAT gateway was deleted, if applicable.
-
#failure_code ⇒ String
If the NAT gateway could not be created, specifies the error code for the failure.
-
#failure_message ⇒ String
If the NAT gateway could not be created, specifies the error message for the failure, that corresponds to the error code.
- #id ⇒ String (also: #nat_gateway_id)
-
#nat_gateway_addresses ⇒ Array<Types::NatGatewayAddress>
Information about the IP addresses and network interface associated with the NAT gateway.
-
#provisioned_bandwidth ⇒ Types::ProvisionedBandwidth
Reserved.
-
#state ⇒ String
The state of the NAT gateway.
-
#subnet_id ⇒ String
The ID of the subnet in which the NAT gateway is located.
-
#tags ⇒ Array<Types::Tag>
The tags for the NAT gateway.
-
#vpc_id ⇒ String
The ID of the VPC in which the NAT gateway is located.
Actions collapse
- #create_tags(options = {}) ⇒ Tag::Collection
- #delete(options = {}) ⇒ Types::DeleteNatGatewayResult
- #delete_tags(options = {}) ⇒ Tag::Collection
Associations collapse
- #address ⇒ VpcAddress?
- #identifiers ⇒ Object deprecated private Deprecated.
- #subnet ⇒ Subnet?
Instance Method Summary collapse
- #client ⇒ Client
-
#data ⇒ Types::NatGateway
Returns the data for this NatGateway.
-
#data_loaded? ⇒ Boolean
Returns ‘true` if this resource is loaded.
-
#initialize(*args) ⇒ NatGateway
constructor
A new instance of NatGateway.
-
#load ⇒ self
(also: #reload)
Loads, or reloads #data for the current NatGateway.
-
#wait_until(options = {}) {|resource| ... } ⇒ Resource
deprecated
Deprecated.
Use [Aws::EC2::Client] #wait_until instead
Constructor Details
#initialize(id, options = {}) ⇒ NatGateway #initialize(options = {}) ⇒ NatGateway
Returns a new instance of NatGateway.
22 23 24 25 26 27 28 |
# File 'lib/aws-sdk-ec2/nat_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
#address ⇒ VpcAddress?
399 400 401 402 403 404 405 406 407 408 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 399 def address if data[:allocation_id] VpcAddress.new( allocation_id: data[:allocation_id], client: @client ) else nil end end |
#client ⇒ Client
155 156 157 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 155 def client @client end |
#connectivity_type ⇒ String
Indicates whether the NAT gateway supports public or private connectivity.
148 149 150 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 148 def connectivity_type data[:connectivity_type] end |
#create_tags(options = {}) ⇒ Tag::Collection
312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 312 def ( = {}) batch = [] = Aws::Util.deep_merge(, resources: [@id]) resp = Aws::Plugins::UserAgent.feature('resource') 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 |
#create_time ⇒ Time
The date and time the NAT gateway was created.
40 41 42 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 40 def create_time data[:create_time] end |
#data ⇒ Types::NatGateway
Returns the data for this Aws::EC2::NatGateway. Calls Client#describe_nat_gateways if #data_loaded? is ‘false`.
177 178 179 180 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 177 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
185 186 187 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 185 def data_loaded? !!@data end |
#delete(options = {}) ⇒ Types::DeleteNatGatewayResult
388 389 390 391 392 393 394 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 388 def delete( = {}) = .merge(nat_gateway_id: @id) resp = Aws::Plugins::UserAgent.feature('resource') do @client.delete_nat_gateway() end resp.data end |
#delete_tags(options = {}) ⇒ Tag::Collection
359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 359 def ( = {}) batch = [] = Aws::Util.deep_merge(, resources: [@id]) resp = Aws::Plugins::UserAgent.feature('resource') 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 |
#delete_time ⇒ Time
The date and time the NAT gateway was deleted, if applicable.
46 47 48 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 46 def delete_time data[:delete_time] end |
#failure_code ⇒ String
If the NAT gateway could not be created, specifies the error code for the failure. (‘InsufficientFreeAddressesInSubnet` | `Gateway.NotAttached` | `InvalidAllocationID.NotFound` | `Resource.AlreadyAssociated` | `InternalError` | `InvalidSubnetID.NotFound`)
56 57 58 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 56 def failure_code data[:failure_code] end |
#failure_message ⇒ String
If the NAT gateway could not be created, specifies the error message for the failure, that corresponds to the error code.
-
For InsufficientFreeAddressesInSubnet: “Subnet has insufficient free addresses to create this NAT gateway”
-
For Gateway.NotAttached: “Network vpc-xxxxxxxx has no Internet gateway attached”
-
For InvalidAllocationID.NotFound: “Elastic IP address eipalloc-xxxxxxxx could not be associated with this NAT gateway”
-
For Resource.AlreadyAssociated: “Elastic IP address eipalloc-xxxxxxxx is already associated”
-
For InternalError: “Network interface eni-xxxxxxxx, created and used internally by this NAT gateway is in an invalid state. Please try again.”
-
For InvalidSubnetID.NotFound: “The specified subnet subnet-xxxxxxxx does not exist or could not be found.”
82 83 84 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 82 def data[:failure_message] end |
#id ⇒ String Also known as: nat_gateway_id
33 34 35 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 33 def id @id end |
#identifiers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
424 425 426 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 424 def identifiers { id: @id } end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::EC2::NatGateway. Returns ‘self` making it possible to chain methods.
nat_gateway.reload.data
165 166 167 168 169 170 171 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 165 def load resp = Aws::Plugins::UserAgent.feature('resource') do @client.describe_nat_gateways(nat_gateway_ids: [@id]) end @data = resp.nat_gateways[0] self end |
#nat_gateway_addresses ⇒ Array<Types::NatGatewayAddress>
Information about the IP addresses and network interface associated with the NAT gateway.
89 90 91 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 89 def nat_gateway_addresses data[:nat_gateway_addresses] end |
#provisioned_bandwidth ⇒ Types::ProvisionedBandwidth
Reserved. If you need to sustain traffic greater than the [documented limits], contact us through the [Support Center].
[1]: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html [2]: console.aws.amazon.com/support/home?
101 102 103 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 101 def provisioned_bandwidth data[:provisioned_bandwidth] end |
#state ⇒ String
The state of the NAT gateway.
-
‘pending`: The NAT gateway is being created and is not ready to process traffic.
-
‘failed`: The NAT gateway could not be created. Check the `failureCode` and `failureMessage` fields for the reason.
-
‘available`: The NAT gateway is able to process traffic. This status remains until you delete the NAT gateway, and does not indicate the health of the NAT gateway.
-
‘deleting`: The NAT gateway is in the process of being terminated and may still be processing traffic.
-
‘deleted`: The NAT gateway has been terminated and is no longer processing traffic.
123 124 125 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 123 def state data[:state] end |
#subnet ⇒ Subnet?
411 412 413 414 415 416 417 418 419 420 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 411 def subnet if data[:subnet_id] Subnet.new( id: data[:subnet_id], client: @client ) else nil end end |
#subnet_id ⇒ String
The ID of the subnet in which the NAT gateway is located.
129 130 131 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 129 def subnet_id data[:subnet_id] end |
#tags ⇒ Array<Types::Tag>
The tags for the NAT gateway.
141 142 143 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 141 def data[:tags] end |
#vpc_id ⇒ String
The ID of the VPC in which the NAT gateway is located.
135 136 137 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 135 def vpc_id data[:vpc_id] 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
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 269 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.feature('resource') do Aws::Waiters::Waiter.new().wait({}) end end |