Class: Aws::EC2::NatGateway
- Inherits:
-
Object
- Object
- Aws::EC2::NatGateway
- Extended by:
- Deprecations
- Defined in:
- sig/nat_gateway.rbs,
lib/aws-sdk-ec2/nat_gateway.rb
Overview
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#attached_appliances ⇒ Array<Types::NatGatewayAttachedAppliance>
The proxy appliances attached to the NAT Gateway for filtering and inspecting traffic to prevent data exfiltration.
-
#auto_provision_zones ⇒ String
For regional NAT gateways only: Indicates whether Amazon Web Services automatically manages AZ coverage.
-
#auto_scaling_ips ⇒ String
For regional NAT gateways only: Indicates whether Amazon Web Services automatically allocates additional Elastic IP addresses (EIPs) in an AZ when the NAT gateway needs more ports due to increased concurrent connections to a single destination from that AZ.
-
#availability_mode ⇒ String
Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.
-
#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.
-
#route_table_id ⇒ String
For regional NAT gateways only, this is the ID of the NAT gateway.
-
#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
trueif 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.
13 14 15 |
# File 'sig/nat_gateway.rbs', line 13
def initialize: (String id, Hash[Symbol, untyped] options) -> void
| (id: String, ?client: Client) -> void
| (Hash[Symbol, untyped] args) -> void
|
Instance Method Details
#attached_appliances ⇒ Array<Types::NatGatewayAttachedAppliance>
The proxy appliances attached to the NAT Gateway for filtering and inspecting traffic to prevent data exfiltration.
64 |
# File 'sig/nat_gateway.rbs', line 64
def attached_appliances: () -> ::Array[Types::NatGatewayAttachedAppliance]
|
#auto_provision_zones ⇒ String
For regional NAT gateways only: Indicates whether Amazon Web Services automatically manages AZ coverage. When enabled, the NAT gateway associates EIPs in all AZs where your VPC has subnets to handle outbound NAT traffic, expands to new AZs when you create subnets there, and retracts from AZs where you've removed all subnets. When disabled, you must manually manage which AZs the NAT gateway supports and their corresponding EIPs.
A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
61 |
# File 'sig/nat_gateway.rbs', line 61
def auto_provision_zones: () -> ("enabled" | "disabled")
|
#auto_scaling_ips ⇒ String
For regional NAT gateways only: Indicates whether Amazon Web Services automatically allocates additional Elastic IP addresses (EIPs) in an AZ when the NAT gateway needs more ports due to increased concurrent connections to a single destination from that AZ.
For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
58 |
# File 'sig/nat_gateway.rbs', line 58
def auto_scaling_ips: () -> ("enabled" | "disabled")
|
#availability_mode ⇒ String
Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.
A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
For more information, see Regional NAT gateways for automatic multi-AZ expansion in the Amazon VPC User Guide.
55 |
# File 'sig/nat_gateway.rbs', line 55
def availability_mode: () -> ("zonal" | "regional")
|
#connectivity_type ⇒ String
Indicates whether the NAT gateway supports public or private connectivity.
52 |
# File 'sig/nat_gateway.rbs', line 52
def connectivity_type: () -> ("private" | "public")
|
#create_tags(options = {}) ⇒ Tag::Collection
83 |
# File 'sig/nat_gateway.rbs', line 83
def create_tags: (
|
#create_time ⇒ Time
The date and time the NAT gateway was created.
22 |
# File 'sig/nat_gateway.rbs', line 22
def create_time: () -> ::Time
|
#data ⇒ Types::NatGateway
Returns the data for this Aws::EC2::NatGateway. Calls
Client#describe_nat_gateways if #data_loaded? is false.
76 |
# File 'sig/nat_gateway.rbs', line 76
def data: () -> Types::NatGateway
|
#data_loaded? ⇒ Boolean
79 |
# File 'sig/nat_gateway.rbs', line 79
def data_loaded?: () -> bool
|
#delete(options = {}) ⇒ Types::DeleteNatGatewayResult
107 |
# File 'sig/nat_gateway.rbs', line 107
def delete: (
|
#delete_tags(options = {}) ⇒ Tag::Collection
95 |
# File 'sig/nat_gateway.rbs', line 95
def delete_tags: (
|
#delete_time ⇒ Time
The date and time the NAT gateway was deleted, if applicable.
25 |
# File 'sig/nat_gateway.rbs', line 25
def delete_time: () -> ::Time
|
#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)
28 |
# File 'sig/nat_gateway.rbs', line 28
def failure_code: () -> ::String
|
#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."
31 |
# File 'sig/nat_gateway.rbs', line 31
def failure_message: () -> ::String
|
#id ⇒ String Also known as: nat_gateway_id
18 |
# File 'sig/nat_gateway.rbs', line 18
def id: () -> String
|
#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.
495 496 497 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 495 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
72 |
# File 'sig/nat_gateway.rbs', line 72
def load: () -> self
|
#nat_gateway_addresses ⇒ Array<Types::NatGatewayAddress>
Information about the IP addresses and network interface associated with the NAT gateway.
34 |
# File 'sig/nat_gateway.rbs', line 34
def nat_gateway_addresses: () -> ::Array[Types::NatGatewayAddress]
|
#provisioned_bandwidth ⇒ Types::ProvisionedBandwidth
Reserved. If you need to sustain traffic greater than the documented limits, contact Amazon Web Services Support.
37 |
# File 'sig/nat_gateway.rbs', line 37
def provisioned_bandwidth: () -> Types::ProvisionedBandwidth
|
#route_table_id ⇒ String
For regional NAT gateways only, this is the ID of the NAT gateway.
67 |
# File 'sig/nat_gateway.rbs', line 67
def route_table_id: () -> ::String
|
#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 thefailureCodeandfailureMessagefields 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.
40 |
# File 'sig/nat_gateway.rbs', line 40
def state: () -> ("pending" | "failed" | "available" | "deleting" | "deleted")
|
#subnet_id ⇒ String
The ID of the subnet in which the NAT gateway is located.
43 |
# File 'sig/nat_gateway.rbs', line 43
def subnet_id: () -> ::String
|
#tags ⇒ Array<Types::Tag>
The tags for the NAT gateway.
49 |
# File 'sig/nat_gateway.rbs', line 49
def tags: () -> ::Array[Types::Tag]
|
#vpc_id ⇒ String
The ID of the VPC in which the NAT gateway is located.
46 |
# File 'sig/nat_gateway.rbs', line 46
def vpc_id: () -> ::String
|
#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
340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 |
# File 'lib/aws-sdk-ec2/nat_gateway.rb', line 340 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 |