UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

656 lines (655 loc) 34 kB
/** * 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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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.0/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; }; }