Class: AWSCDK::EC2::NatInstanceProviderV2

Inherits:
NatProvider
  • Object
show all
Includes:
IConnectable
Defined in:
ec2/nat_instance_provider_v2.rb

Overview

Modern NAT provider which uses NAT Instances.

The instance uses Amazon Linux 2023 as the operating system.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(props) ⇒ NatInstanceProviderV2

Returns a new instance of NatInstanceProviderV2.

Parameters:



12
13
14
15
16
# File 'ec2/nat_instance_provider_v2.rb', line 12

def initialize(props)
  props = props.is_a?(Hash) ? ::AWSCDK::EC2::NatInstanceProps.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLk5hdEluc3RhbmNlUHJvcHMifQ==")), "props")
  Jsii::Object.instance_method(:initialize).bind(self).call(props)
end

Class Method Details

.DEFAULT_USER_DATA_COMMANDSArray<String>

Amazon Linux 2023 NAT instance user data commands Enable iptables on the instance, enable persistent IP forwarding, configure NAT on instance.



40
41
42
# File 'ec2/nat_instance_provider_v2.rb', line 40

def self.DEFAULT_USER_DATA_COMMANDS()
  Jsii::Kernel.instance.get_static("aws-cdk-lib.aws_ec2.NatInstanceProviderV2", "DEFAULT_USER_DATA_COMMANDS")
end

.jsii_overridable_methodsObject



18
19
20
21
22
23
24
25
26
27
# File 'ec2/nat_instance_provider_v2.rb', line 18

def self.jsii_overridable_methods
  {
    :configured_gateways => { kind: :property, name: "configuredGateways", is_optional: false },
    :connections => { kind: :property, name: "connections", is_optional: false },
    :gateway_instances => { kind: :property, name: "gatewayInstances", is_optional: false },
    :security_group => { kind: :property, name: "securityGroup", is_optional: false },
    :configure_nat => { kind: :method, name: "configureNat", is_optional: false },
    :configure_subnet => { kind: :method, name: "configureSubnet", is_optional: false },
  }
end

Instance Method Details

#configure_nat(options) ⇒ void

This method returns an undefined value.

Called by the VPC to configure NAT.

Don't call this directly, the VPC will call it automatically.

Parameters:



71
72
73
74
75
# File 'ec2/nat_instance_provider_v2.rb', line 71

def configure_nat(options)
  options = options.is_a?(Hash) ? ::AWSCDK::EC2::ConfigureNatOptions.new(**options.transform_keys(&:to_sym)) : options
  Jsii::Type.check_type(options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLkNvbmZpZ3VyZU5hdE9wdGlvbnMifQ==")), "options")
  jsii_call_method("configureNat", [options])
end

#configure_subnet(subnet) ⇒ void

This method returns an undefined value.

Configures subnet with the gateway.

Don't call this directly, the VPC will call it automatically.

Parameters:



83
84
85
86
# File 'ec2/nat_instance_provider_v2.rb', line 83

def configure_subnet(subnet)
  Jsii::Type.check_type(subnet, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfZWMyLlByaXZhdGVTdWJuZXQifQ==")), "subnet")
  jsii_call_method("configureSubnet", [subnet])
end

#configured_gatewaysArray<AWSCDK::EC2::GatewayConfig>

Return list of gateways spawned by the provider.

Returns:



32
33
34
# File 'ec2/nat_instance_provider_v2.rb', line 32

def configured_gateways()
  jsii_get_property("configuredGateways")
end

#connectionsAWSCDK::EC2::Connections

Manage the Security Groups associated with the NAT instances.



47
48
49
# File 'ec2/nat_instance_provider_v2.rb', line 47

def connections()
  jsii_get_property("connections")
end

#gateway_instancesArray<AWSCDK::EC2::Instance>

Array of gateway instances spawned by the provider after internal configuration.

Returns:



54
55
56
# File 'ec2/nat_instance_provider_v2.rb', line 54

def gateway_instances()
  jsii_get_property("gatewayInstances")
end

#security_groupAWSCDK::EC2::ISecurityGroup

The Security Group associated with the NAT instances.



61
62
63
# File 'ec2/nat_instance_provider_v2.rb', line 61

def security_group()
  jsii_get_property("securityGroup")
end