@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
656 lines (655 loc) • 34 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ComputeRouterNatConfig extends cdktf.TerraformMetaArguments {
/**
* 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: ["PREMIUM", "STANDARD"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#auto_network_tier ComputeRouterNat#auto_network_tier}
*/
readonly autoNetworkTier?: 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#drain_nat_ips ComputeRouterNat#drain_nat_ips}
*/
readonly drainNatIps?: string[];
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#enable_dynamic_port_allocation ComputeRouterNat#enable_dynamic_port_allocation}
*/
readonly enableDynamicPortAllocation?: boolean | cdktf.IResolvable;
/**
* Enable endpoint independent mapping.
* For more information see the [official documentation](https://cloud.google.com/nat/docs/overview#specs-rfcs).
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#enable_endpoint_independent_mapping ComputeRouterNat#enable_endpoint_independent_mapping}
*/
readonly enableEndpointIndependentMapping?: boolean | cdktf.IResolvable;
/**
* Specifies the endpoint Types supported by the NAT Gateway.
* Supported values include:
* 'ENDPOINT_TYPE_VM', 'ENDPOINT_TYPE_SWG',
* 'ENDPOINT_TYPE_MANAGED_PROXY_LB'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#endpoint_types ComputeRouterNat#endpoint_types}
*/
readonly endpointTypes?: string[];
/**
* Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#icmp_idle_timeout_sec ComputeRouterNat#icmp_idle_timeout_sec}
*/
readonly icmpIdleTimeoutSec?: number;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#id ComputeRouterNat#id}
*
* Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
* If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
*/
readonly id?: 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#initial_nat_ips ComputeRouterNat#initial_nat_ips}
*/
readonly initialNatIps?: string[];
/**
* Maximum number of ports allocated to a VM from this NAT.
* This field can only be set when enableDynamicPortAllocation is enabled.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#max_ports_per_vm ComputeRouterNat#max_ports_per_vm}
*/
readonly maxPortsPerVm?: number;
/**
* 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.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#min_ports_per_vm ComputeRouterNat#min_ports_per_vm}
*/
readonly minPortsPerVm?: number;
/**
* Name of the NAT service. The name must be 1-63 characters long and
* comply with RFC1035.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#name ComputeRouterNat#name}
*/
readonly name: string;
/**
* How external IPs should be allocated for this NAT. Valid values are
* 'AUTO_ONLY' for only allowing NAT IPs allocated by Google Cloud
* Platform, or 'MANUAL_ONLY' for only user-allocated NAT IP addresses. Possible values: ["MANUAL_ONLY", "AUTO_ONLY"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#nat_ip_allocate_option ComputeRouterNat#nat_ip_allocate_option}
*/
readonly natIpAllocateOption?: 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 a 'lifecycle' block with 'create_before_destroy = true' so
* the number of resources can be increased/decreased without triggering the 'resourceInUseByAnotherResource' error.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#nat_ips ComputeRouterNat#nat_ips}
*/
readonly natIps?: string[];
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#project ComputeRouterNat#project}
*/
readonly project?: string;
/**
* Region where the router and NAT reside.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#region ComputeRouterNat#region}
*/
readonly region?: string;
/**
* The name of the Cloud Router in which this NAT will be configured.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#router ComputeRouterNat#router}
*/
readonly router: 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.
* If 'ALL_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: ["ALL_SUBNETWORKS_ALL_IP_RANGES", "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES", "LIST_OF_SUBNETWORKS"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#source_subnetwork_ip_ranges_to_nat ComputeRouterNat#source_subnetwork_ip_ranges_to_nat}
*/
readonly sourceSubnetworkIpRangesToNat: string;
/**
* Timeout (in seconds) for TCP established connections.
* Defaults to 1200s if not set.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#tcp_established_idle_timeout_sec ComputeRouterNat#tcp_established_idle_timeout_sec}
*/
readonly tcpEstablishedIdleTimeoutSec?: number;
/**
* Timeout (in seconds) for TCP connections that are in TIME_WAIT state.
* Defaults to 120s if not set.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#tcp_time_wait_timeout_sec ComputeRouterNat#tcp_time_wait_timeout_sec}
*/
readonly tcpTimeWaitTimeoutSec?: number;
/**
* Timeout (in seconds) for TCP transitory connections.
* Defaults to 30s if not set.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#tcp_transitory_idle_timeout_sec ComputeRouterNat#tcp_transitory_idle_timeout_sec}
*/
readonly tcpTransitoryIdleTimeoutSec?: number;
/**
* Indicates whether this NAT is used for public or private IP translation.
* If unspecified, it defaults to PUBLIC.
* If 'PUBLIC' NAT used for public IP translation.
* If 'PRIVATE' NAT used for private IP translation. Default value: "PUBLIC" Possible values: ["PUBLIC", "PRIVATE"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#type ComputeRouterNat#type}
*/
readonly type?: string;
/**
* Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#udp_idle_timeout_sec ComputeRouterNat#udp_idle_timeout_sec}
*/
readonly udpIdleTimeoutSec?: number;
/**
* log_config block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#log_config ComputeRouterNat#log_config}
*/
readonly logConfig?: ComputeRouterNatLogConfig;
/**
* rules block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#rules ComputeRouterNat#rules}
*/
readonly rules?: ComputeRouterNatRules[] | cdktf.IResolvable;
/**
* subnetwork block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#subnetwork ComputeRouterNat#subnetwork}
*/
readonly subnetwork?: ComputeRouterNatSubnetwork[] | cdktf.IResolvable;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#timeouts ComputeRouterNat#timeouts}
*/
readonly timeouts?: ComputeRouterNatTimeouts;
}
export interface ComputeRouterNatLogConfig {
/**
* Indicates whether or not to export logs.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#enable ComputeRouterNat#enable}
*/
readonly enable: boolean | cdktf.IResolvable;
/**
* Specifies the desired filtering of logs on this NAT. Possible values: ["ERRORS_ONLY", "TRANSLATIONS_ONLY", "ALL"]
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#filter ComputeRouterNat#filter}
*/
readonly filter: string;
}
export declare function computeRouterNatLogConfigToTerraform(struct?: ComputeRouterNatLogConfigOutputReference | ComputeRouterNatLogConfig): any;
export declare function computeRouterNatLogConfigToHclTerraform(struct?: ComputeRouterNatLogConfigOutputReference | ComputeRouterNatLogConfig): any;
export declare class ComputeRouterNatLogConfigOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): ComputeRouterNatLogConfig | undefined;
set internalValue(value: ComputeRouterNatLogConfig | undefined);
private _enable?;
get enable(): boolean | cdktf.IResolvable;
set enable(value: boolean | cdktf.IResolvable);
get enableInput(): boolean | cdktf.IResolvable | undefined;
private _filter?;
get filter(): string;
set filter(value: string);
get filterInput(): string | undefined;
}
export interface ComputeRouterNatRulesAction {
/**
* A list of URLs of the IP resources used for this NAT rule.
* These IP addresses must be valid static external IP addresses assigned to the project.
* This field is used for public NAT.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#source_nat_active_ips ComputeRouterNat#source_nat_active_ips}
*/
readonly sourceNatActiveIps?: string[];
/**
* A list of URLs of the subnetworks used as source ranges for this NAT Rule.
* These subnetworks must have purpose set to PRIVATE_NAT.
* This field is used for private NAT.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#source_nat_active_ranges ComputeRouterNat#source_nat_active_ranges}
*/
readonly sourceNatActiveRanges?: 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.
* These IPs should be used for updating/patching a NAT rule only.
* This field is used for public NAT.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#source_nat_drain_ips ComputeRouterNat#source_nat_drain_ips}
*/
readonly sourceNatDrainIps?: string[];
/**
* A list of URLs of subnetworks representing source ranges to be drained.
* This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule.
* This field is used for private NAT.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#source_nat_drain_ranges ComputeRouterNat#source_nat_drain_ranges}
*/
readonly sourceNatDrainRanges?: string[];
}
export declare function computeRouterNatRulesActionToTerraform(struct?: ComputeRouterNatRulesActionOutputReference | ComputeRouterNatRulesAction): any;
export declare function computeRouterNatRulesActionToHclTerraform(struct?: ComputeRouterNatRulesActionOutputReference | ComputeRouterNatRulesAction): any;
export declare class ComputeRouterNatRulesActionOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): ComputeRouterNatRulesAction | undefined;
set internalValue(value: ComputeRouterNatRulesAction | undefined);
private _sourceNatActiveIps?;
get sourceNatActiveIps(): string[];
set sourceNatActiveIps(value: string[]);
resetSourceNatActiveIps(): void;
get sourceNatActiveIpsInput(): string[] | undefined;
private _sourceNatActiveRanges?;
get sourceNatActiveRanges(): string[];
set sourceNatActiveRanges(value: string[]);
resetSourceNatActiveRanges(): void;
get sourceNatActiveRangesInput(): string[] | undefined;
private _sourceNatDrainIps?;
get sourceNatDrainIps(): string[];
set sourceNatDrainIps(value: string[]);
resetSourceNatDrainIps(): void;
get sourceNatDrainIpsInput(): string[] | undefined;
private _sourceNatDrainRanges?;
get sourceNatDrainRanges(): string[];
set sourceNatDrainRanges(value: string[]);
resetSourceNatDrainRanges(): void;
get sourceNatDrainRangesInput(): string[] | undefined;
}
export interface ComputeRouterNatRules {
/**
* An optional description of this rule.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#description ComputeRouterNat#description}
*/
readonly description?: string;
/**
* CEL expression that specifies the match condition that egress traffic from a VM is evaluated against.
* If it evaluates to true, the corresponding action is enforced.
*
* The following examples are valid match expressions for public NAT:
*
* "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')"
*
* "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'"
*
* The following example is a valid match expression for private NAT:
*
* "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'"
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#match ComputeRouterNat#match}
*/
readonly match: string;
/**
* An integer uniquely identifying a rule in the list.
* The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#rule_number ComputeRouterNat#rule_number}
*/
readonly ruleNumber: number;
/**
* action block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#action ComputeRouterNat#action}
*/
readonly action?: ComputeRouterNatRulesAction;
}
export declare function computeRouterNatRulesToTerraform(struct?: ComputeRouterNatRules | cdktf.IResolvable): any;
export declare function computeRouterNatRulesToHclTerraform(struct?: ComputeRouterNatRules | cdktf.IResolvable): any;
export declare class ComputeRouterNatRulesOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ComputeRouterNatRules | cdktf.IResolvable | undefined;
set internalValue(value: ComputeRouterNatRules | cdktf.IResolvable | undefined);
private _description?;
get description(): string;
set description(value: string);
resetDescription(): void;
get descriptionInput(): string | undefined;
private _match?;
get match(): string;
set match(value: string);
get matchInput(): string | undefined;
private _ruleNumber?;
get ruleNumber(): number;
set ruleNumber(value: number);
get ruleNumberInput(): number | undefined;
private _action;
get action(): ComputeRouterNatRulesActionOutputReference;
putAction(value: ComputeRouterNatRulesAction): void;
resetAction(): void;
get actionInput(): ComputeRouterNatRulesAction | undefined;
}
export declare class ComputeRouterNatRulesList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComputeRouterNatRules[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ComputeRouterNatRulesOutputReference;
}
export interface ComputeRouterNatSubnetwork {
/**
* Self-link of subnetwork to NAT
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#name ComputeRouterNat#name}
*/
readonly name: string;
/**
* List of the secondary ranges of the subnetwork that are allowed
* to use NAT. This can be populated only if
* 'LIST_OF_SECONDARY_IP_RANGES' is one of the values in
* sourceIpRangesToNat
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#secondary_ip_range_names ComputeRouterNat#secondary_ip_range_names}
*/
readonly secondaryIpRangeNames?: string[];
/**
* List of options for which source IPs in the subnetwork
* should have NAT enabled. Supported values include:
* 'ALL_IP_RANGES', 'LIST_OF_SECONDARY_IP_RANGES',
* 'PRIMARY_IP_RANGE'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#source_ip_ranges_to_nat ComputeRouterNat#source_ip_ranges_to_nat}
*/
readonly sourceIpRangesToNat: string[];
}
export declare function computeRouterNatSubnetworkToTerraform(struct?: ComputeRouterNatSubnetwork | cdktf.IResolvable): any;
export declare function computeRouterNatSubnetworkToHclTerraform(struct?: ComputeRouterNatSubnetwork | cdktf.IResolvable): any;
export declare class ComputeRouterNatSubnetworkOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ComputeRouterNatSubnetwork | cdktf.IResolvable | undefined;
set internalValue(value: ComputeRouterNatSubnetwork | cdktf.IResolvable | undefined);
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _secondaryIpRangeNames?;
get secondaryIpRangeNames(): string[];
set secondaryIpRangeNames(value: string[]);
resetSecondaryIpRangeNames(): void;
get secondaryIpRangeNamesInput(): string[] | undefined;
private _sourceIpRangesToNat?;
get sourceIpRangesToNat(): string[];
set sourceIpRangesToNat(value: string[]);
get sourceIpRangesToNatInput(): string[] | undefined;
}
export declare class ComputeRouterNatSubnetworkList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ComputeRouterNatSubnetwork[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ComputeRouterNatSubnetworkOutputReference;
}
export interface ComputeRouterNatTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#create ComputeRouterNat#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#delete ComputeRouterNat#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#update ComputeRouterNat#update}
*/
readonly update?: string;
}
export declare function computeRouterNatTimeoutsToTerraform(struct?: ComputeRouterNatTimeouts | cdktf.IResolvable): any;
export declare function computeRouterNatTimeoutsToHclTerraform(struct?: ComputeRouterNatTimeouts | cdktf.IResolvable): any;
export declare class ComputeRouterNatTimeoutsOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
get internalValue(): ComputeRouterNatTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: ComputeRouterNatTimeouts | cdktf.IResolvable | undefined);
private _create?;
get create(): string;
set create(value: string);
resetCreate(): void;
get createInput(): string | undefined;
private _delete?;
get delete(): string;
set delete(value: string);
resetDelete(): void;
get deleteInput(): string | undefined;
private _update?;
get update(): string;
set update(value: string);
resetUpdate(): void;
get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat google_compute_router_nat}
*/
export declare class ComputeRouterNat extends cdktf.TerraformResource {
static readonly tfResourceType = "google_compute_router_nat";
/**
* Generates CDKTF code for importing a ComputeRouterNat resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the ComputeRouterNat to import
* @param importFromId The id of the existing ComputeRouterNat that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the ComputeRouterNat to import is found
*/
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/compute_router_nat google_compute_router_nat} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options ComputeRouterNatConfig
*/
constructor(scope: Construct, id: string, config: ComputeRouterNatConfig);
private _autoNetworkTier?;
get autoNetworkTier(): string;
set autoNetworkTier(value: string);
resetAutoNetworkTier(): void;
get autoNetworkTierInput(): string | undefined;
private _drainNatIps?;
get drainNatIps(): string[];
set drainNatIps(value: string[]);
resetDrainNatIps(): void;
get drainNatIpsInput(): string[] | undefined;
private _enableDynamicPortAllocation?;
get enableDynamicPortAllocation(): boolean | cdktf.IResolvable;
set enableDynamicPortAllocation(value: boolean | cdktf.IResolvable);
resetEnableDynamicPortAllocation(): void;
get enableDynamicPortAllocationInput(): boolean | cdktf.IResolvable | undefined;
private _enableEndpointIndependentMapping?;
get enableEndpointIndependentMapping(): boolean | cdktf.IResolvable;
set enableEndpointIndependentMapping(value: boolean | cdktf.IResolvable);
resetEnableEndpointIndependentMapping(): void;
get enableEndpointIndependentMappingInput(): boolean | cdktf.IResolvable | undefined;
private _endpointTypes?;
get endpointTypes(): string[];
set endpointTypes(value: string[]);
resetEndpointTypes(): void;
get endpointTypesInput(): string[] | undefined;
private _icmpIdleTimeoutSec?;
get icmpIdleTimeoutSec(): number;
set icmpIdleTimeoutSec(value: number);
resetIcmpIdleTimeoutSec(): void;
get icmpIdleTimeoutSecInput(): number | undefined;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
private _initialNatIps?;
get initialNatIps(): string[];
set initialNatIps(value: string[]);
resetInitialNatIps(): void;
get initialNatIpsInput(): string[] | undefined;
private _maxPortsPerVm?;
get maxPortsPerVm(): number;
set maxPortsPerVm(value: number);
resetMaxPortsPerVm(): void;
get maxPortsPerVmInput(): number | undefined;
private _minPortsPerVm?;
get minPortsPerVm(): number;
set minPortsPerVm(value: number);
resetMinPortsPerVm(): void;
get minPortsPerVmInput(): number | undefined;
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _natIpAllocateOption?;
get natIpAllocateOption(): string;
set natIpAllocateOption(value: string);
resetNatIpAllocateOption(): void;
get natIpAllocateOptionInput(): string | undefined;
private _natIps?;
get natIps(): string[];
set natIps(value: string[]);
resetNatIps(): void;
get natIpsInput(): string[] | undefined;
private _project?;
get project(): string;
set project(value: string);
resetProject(): void;
get projectInput(): string | undefined;
private _region?;
get region(): string;
set region(value: string);
resetRegion(): void;
get regionInput(): string | undefined;
private _router?;
get router(): string;
set router(value: string);
get routerInput(): string | undefined;
private _sourceSubnetworkIpRangesToNat?;
get sourceSubnetworkIpRangesToNat(): string;
set sourceSubnetworkIpRangesToNat(value: string);
get sourceSubnetworkIpRangesToNatInput(): string | undefined;
private _tcpEstablishedIdleTimeoutSec?;
get tcpEstablishedIdleTimeoutSec(): number;
set tcpEstablishedIdleTimeoutSec(value: number);
resetTcpEstablishedIdleTimeoutSec(): void;
get tcpEstablishedIdleTimeoutSecInput(): number | undefined;
private _tcpTimeWaitTimeoutSec?;
get tcpTimeWaitTimeoutSec(): number;
set tcpTimeWaitTimeoutSec(value: number);
resetTcpTimeWaitTimeoutSec(): void;
get tcpTimeWaitTimeoutSecInput(): number | undefined;
private _tcpTransitoryIdleTimeoutSec?;
get tcpTransitoryIdleTimeoutSec(): number;
set tcpTransitoryIdleTimeoutSec(value: number);
resetTcpTransitoryIdleTimeoutSec(): void;
get tcpTransitoryIdleTimeoutSecInput(): number | undefined;
private _type?;
get type(): string;
set type(value: string);
resetType(): void;
get typeInput(): string | undefined;
private _udpIdleTimeoutSec?;
get udpIdleTimeoutSec(): number;
set udpIdleTimeoutSec(value: number);
resetUdpIdleTimeoutSec(): void;
get udpIdleTimeoutSecInput(): number | undefined;
private _logConfig;
get logConfig(): ComputeRouterNatLogConfigOutputReference;
putLogConfig(value: ComputeRouterNatLogConfig): void;
resetLogConfig(): void;
get logConfigInput(): ComputeRouterNatLogConfig | undefined;
private _rules;
get rules(): ComputeRouterNatRulesList;
putRules(value: ComputeRouterNatRules[] | cdktf.IResolvable): void;
resetRules(): void;
get rulesInput(): cdktf.IResolvable | ComputeRouterNatRules[] | undefined;
private _subnetwork;
get subnetwork(): ComputeRouterNatSubnetworkList;
putSubnetwork(value: ComputeRouterNatSubnetwork[] | cdktf.IResolvable): void;
resetSubnetwork(): void;
get subnetworkInput(): cdktf.IResolvable | ComputeRouterNatSubnetwork[] | undefined;
private _timeouts;
get timeouts(): ComputeRouterNatTimeoutsOutputReference;
putTimeouts(value: ComputeRouterNatTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | ComputeRouterNatTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}