RouterNatArgs class
The set of arguments for RouterNat. The set of arguments for RouterNat.
Constructors
-
RouterNatArgs({Input<
String?> ? autoNetworkTier, Input<String?> ? deletionPolicy, Input<List< ? drainNatIps, Input<String> ?>bool?> ? enableDynamicPortAllocation, Input<bool?> ? enableEndpointIndependentMapping, Input<List< ? endpointTypes, Input<String> ?>int?> ? icmpIdleTimeoutSec, Input<List< ? initialNatIps, Input<String> ?>RouterNatLogConfig?> ? logConfig, Input<int?> ? maxPortsPerVm, Input<int?> ? minPortsPerVm, Input<String?> ? name, Input<List< ? nat64Subnetworks, Input<RouterNatNat64Subnetwork> ?>String?> ? natIpAllocateOption, Input<List< ? natIps, Input<String> ?>String?> ? project, Input<String?> ? region, required Input<String> router, Input<List< ? rules, required Input<RouterNatRule> ?>String> sourceSubnetworkIpRangesToNat, Input<String?> ? sourceSubnetworkIpRangesToNat64, Input<List< ? subnetworks, Input<RouterNatSubnetwork> ?>int?> ? tcpEstablishedIdleTimeoutSec, Input<int?> ? tcpTimeWaitTimeoutSec, Input<int?> ? tcpTransitoryIdleTimeoutSec, Input<String?> ? type, Input<int?> ? udpIdleTimeoutSec}) -
Creates a new RouterNatArgs.
autoNetworkTierThe network tier to use when automatically reserving NAT IP addresses.deletionPolicyWhether Terraform will be prevented from destroying the resource. Defaults to DELETE.drainNatIpsA list of URLs of the IP resources to be drained. These IPs must beenableDynamicPortAllocationEnable Dynamic Port Allocation.enableEndpointIndependentMappingEnable endpoint independent mapping.endpointTypesSpecifies the endpoint Types supported by the NAT Gateway.icmpIdleTimeoutSecTimeout (in seconds) for ICMP connections. Defaults to 30s if not set.initialNatIpsSelf-links of NAT IPs to be used as initial value for creation alongside a RouterNatAddress resource.logConfigConfiguration for logging on NATmaxPortsPerVmMaximum number of ports allocated to a VM from this NAT.minPortsPerVmMinimum number of ports allocated to a VM from this NAT. Defaults to 64 for static port allocation and 32 dynamic port allocation if not set.nameName of the NAT service. The name must be 1-63 characters long andnat64SubnetworksOne or more subnetwork NAT configurations whose traffic should be translated by NAT64 Gateway.natIpAllocateOptionHow external IPs should be allocated for this NAT. Valid values arenatIpsSelf-links of NAT IPs. Only valid if natIpAllocateOptionprojectThe ID of the project in which the resource belongs.regionRegion where the router and NAT reside.routerThe name of the Cloud Router in which this NAT will be configured.rulesA list of rules associated with this NAT.sourceSubnetworkIpRangesToNatHow NAT should be configured per Subnetwork.sourceSubnetworkIpRangesToNat64Specify the Nat option for NAT64, which can take one of the following values:subnetworksOne or more subnetwork NAT configurations. Only used iftcpEstablishedIdleTimeoutSecTimeout (in seconds) for TCP established connections.tcpTimeWaitTimeoutSecTimeout (in seconds) for TCP connections that are in TIME_WAIT state.tcpTransitoryIdleTimeoutSecTimeout (in seconds) for TCP transitory connections.typeIndicates whether this NAT is used for public or private IP translation.udpIdleTimeoutSecTimeout (in seconds) for UDP connections. Defaults to 30s if not set.const -
RouterNatArgs.fromMap(Map<
String, dynamic> map) -
factory
Properties
-
autoNetworkTier
→ Input<
String?> ? -
The network tier to use when automatically reserving NAT IP addresses.
Must be one of: PREMIUM, STANDARD. If not specified, then the current
project-level default tier is used.
Possible values are:
PREMIUM,STANDARD.final -
deletionPolicy
→ Input<
String?> ? -
Whether Terraform will be prevented from destroying the resource. Defaults to DELETE.
When a 'terraform destroy' or 'pulumi up' would delete the resource,
the command will fail if this field is set to "PREVENT" in Terraform state.
When set to "ABANDON", the command will remove the resource from Terraform
management without updating or deleting the resource in the API.
When set to "DELETE", deleting the resource is allowed.
final
-
drainNatIps
→ Input<
List< ?String> ?> -
A list of URLs of the IP resources to be drained. These IPs must be
valid static external IPs that have been assigned to the NAT.
final
-
enableDynamicPortAllocation
→ Input<
bool?> ? -
Enable Dynamic Port Allocation.
If minPortsPerVm is set, minPortsPerVm must be set to a power of two greater than or equal to 32.
If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config.
If maxPortsPerVm is set, maxPortsPerVm must be set to a power of two greater than minPortsPerVm.
If maxPortsPerVm is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config.
Mutually exclusive with enableEndpointIndependentMapping.
final
-
enableEndpointIndependentMapping
→ Input<
bool?> ? -
Enable endpoint independent mapping.
For more information see the official documentation.
final
-
endpointTypes
→ Input<
List< ?String> ?> -
Specifies the endpoint Types supported by the NAT Gateway.
Supported values include:
ENDPOINT_TYPE_VM,ENDPOINT_TYPE_SWG,ENDPOINT_TYPE_MANAGED_PROXY_LB.final - hashCode → int
-
The hash code for this object.
no setterinherited
-
icmpIdleTimeoutSec
→ Input<
int?> ? -
Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
final
-
initialNatIps
→ Input<
List< ?String> ?> -
Self-links of NAT IPs to be used as initial value for creation alongside a RouterNatAddress resource.
Conflicts with natIps and drainNatIps. Only valid if natIpAllocateOption is set to MANUAL_ONLY.
final
-
logConfig
→ Input<
RouterNatLogConfig?> ? -
Configuration for logging on NAT
Structure is documented below.
final
-
maxPortsPerVm
→ Input<
int?> ? -
Maximum number of ports allocated to a VM from this NAT.
This field can only be set when enableDynamicPortAllocation is enabled.
final
-
minPortsPerVm
→ Input<
int?> ? -
Minimum number of ports allocated to a VM from this NAT. Defaults to 64 for static port allocation and 32 dynamic port allocation if not set.
final
-
name
→ Input<
String?> ? -
Name of the NAT service. The name must be 1-63 characters long and
comply with RFC1035.
final
-
nat64Subnetworks
→ Input<
List< ?RouterNatNat64Subnetwork> ?> -
One or more subnetwork NAT configurations whose traffic should be translated by NAT64 Gateway.
Only used if
sourceSubnetworkIpRangesToNat64is set toLIST_OF_IPV6_SUBNETWORKSStructure is documented below.final -
natIpAllocateOption
→ Input<
String?> ? -
How external IPs should be allocated for this NAT. Valid values are
AUTO_ONLYfor only allowing NAT IPs allocated by Google Cloud Platform, orMANUAL_ONLYfor only user-allocated NAT IP addresses. Possible values are:MANUAL_ONLY,AUTO_ONLY.final -
natIps
→ Input<
List< ?String> ?> -
Self-links of NAT IPs. Only valid if natIpAllocateOption
is set to MANUAL_ONLY.
If this field is used alongside with a count created list of address resources
google_compute_address.foobar.*.self_link, the access level resource for the address resource must have alifecycleblock withcreateBeforeDestroy = trueso the number of resources can be increased/decreased without triggering theresourceInUseByAnotherResourceerror.final -
project
→ Input<
String?> ? -
The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
final
-
region
→ Input<
String?> ? -
Region where the router and NAT reside.
final
-
router
→ Input<
String> -
The name of the Cloud Router in which this NAT will be configured.
final
-
rules
→ Input<
List< ?RouterNatRule> ?> -
A list of rules associated with this NAT.
Structure is documented below.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
sourceSubnetworkIpRangesToNat
→ Input<
String> -
How NAT should be configured per Subnetwork.
If
ALL_SUBNETWORKS_ALL_IP_RANGES, all of the IP ranges in every Subnetwork are allowed to Nat. IfALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, all of the primary IP ranges in every Subnetwork are allowed to Nat.LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below). Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other RouterNat section in any Router for this network in this region. Possible values are:ALL_SUBNETWORKS_ALL_IP_RANGES,ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES,LIST_OF_SUBNETWORKS.final -
sourceSubnetworkIpRangesToNat64
→ Input<
String?> ? -
Specify the Nat option for NAT64, which can take one of the following values:
ALL_IPV6_SUBNETWORKS: All of the IP ranges in every Subnetwork are allowed to Nat.
LIST_OF_IPV6_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field nat64Subnetwork below).
Note that if this field contains NAT64_ALL_V6_SUBNETWORKS no other Router.Nat section in this region can also enable NAT64 for any Subnetworks in this network.
Other Router.Nat sections can still be present to enable NAT44 only.
Possible values are:
ALL_IPV6_SUBNETWORKS,LIST_OF_IPV6_SUBNETWORKS.final -
subnetworks
→ Input<
List< ?RouterNatSubnetwork> ?> -
One or more subnetwork NAT configurations. Only used if
sourceSubnetworkIpRangesToNatis set toLIST_OF_SUBNETWORKSStructure is documented below.final -
tcpEstablishedIdleTimeoutSec
→ Input<
int?> ? -
Timeout (in seconds) for TCP established connections.
Defaults to 1200s if not set.
final
-
tcpTimeWaitTimeoutSec
→ Input<
int?> ? -
Timeout (in seconds) for TCP connections that are in TIME_WAIT state.
Defaults to 120s if not set.
final
-
tcpTransitoryIdleTimeoutSec
→ Input<
int?> ? -
Timeout (in seconds) for TCP transitory connections.
Defaults to 30s if not set.
final
-
type
→ Input<
String?> ? -
Indicates whether this NAT is used for public or private IP translation.
If unspecified, it defaults to PUBLIC.
If
PUBLICNAT used for public IP translation. IfPRIVATENAT used for private IP translation. Default value isPUBLIC. Possible values are:PUBLIC,PRIVATE.final -
udpIdleTimeoutSec
→ Input<
int?> ? -
Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toMap(
) → Map< String, dynamic> -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited