@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
327 lines (326 loc) • 15.3 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ComputeVpnTunnelConfig extends cdktf.TerraformMetaArguments {
/**
* An optional description of this resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#description ComputeVpnTunnel#description}
*/
readonly description?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#id ComputeVpnTunnel#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;
/**
* IKE protocol version to use when establishing the VPN tunnel with
* peer VPN gateway.
* Acceptable IKE versions are 1 or 2. Default version is 2.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#ike_version ComputeVpnTunnel#ike_version}
*/
readonly ikeVersion?: number;
/**
* Labels to apply to this VpnTunnel.
*
* **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
* Please refer to the field 'effective_labels' for all of the labels present on the resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#labels ComputeVpnTunnel#labels}
*/
readonly labels?: {
[key: string]: string;
};
/**
* Local traffic selector to use when establishing the VPN tunnel with
* peer VPN gateway. The value should be a CIDR formatted string,
* for example '192.168.0.0/16'. The ranges should be disjoint.
* Only IPv4 is supported.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#local_traffic_selector ComputeVpnTunnel#local_traffic_selector}
*/
readonly localTrafficSelector?: string[];
/**
* Name of the resource. The name must be 1-63 characters long, and
* comply with RFC1035. Specifically, the name must be 1-63
* characters long and match the regular expression
* '[a-z]([-a-z0-9]*[a-z0-9])?' which means the first character
* must be a lowercase letter, and all following characters must
* be a dash, lowercase letter, or digit,
* except the last character, which cannot be a dash.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#name ComputeVpnTunnel#name}
*/
readonly name: string;
/**
* URL of the peer side external VPN gateway to which this VPN tunnel is connected.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#peer_external_gateway ComputeVpnTunnel#peer_external_gateway}
*/
readonly peerExternalGateway?: string;
/**
* The interface ID of the external VPN gateway to which this VPN tunnel is connected.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#peer_external_gateway_interface ComputeVpnTunnel#peer_external_gateway_interface}
*/
readonly peerExternalGatewayInterface?: number;
/**
* URL of the peer side HA GCP VPN gateway to which this VPN tunnel is connected.
* If provided, the VPN tunnel will automatically use the same vpn_gateway_interface
* ID in the peer GCP VPN gateway.
* This field must reference a 'google_compute_ha_vpn_gateway' resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#peer_gcp_gateway ComputeVpnTunnel#peer_gcp_gateway}
*/
readonly peerGcpGateway?: string;
/**
* IP address of the peer VPN gateway. Only IPv4 is supported.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#peer_ip ComputeVpnTunnel#peer_ip}
*/
readonly peerIp?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#project ComputeVpnTunnel#project}
*/
readonly project?: string;
/**
* The region where the tunnel is located. If unset, is set to the region of 'target_vpn_gateway'.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#region ComputeVpnTunnel#region}
*/
readonly region?: string;
/**
* Remote traffic selector to use when establishing the VPN tunnel with
* peer VPN gateway. The value should be a CIDR formatted string,
* for example '192.168.0.0/16'. The ranges should be disjoint.
* Only IPv4 is supported.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#remote_traffic_selector ComputeVpnTunnel#remote_traffic_selector}
*/
readonly remoteTrafficSelector?: string[];
/**
* URL of router resource to be used for dynamic routing.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#router ComputeVpnTunnel#router}
*/
readonly router?: string;
/**
* Shared secret used to set the secure session between the Cloud VPN
* gateway and the peer VPN gateway.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#shared_secret ComputeVpnTunnel#shared_secret}
*/
readonly sharedSecret: string;
/**
* URL of the Target VPN gateway with which this VPN tunnel is
* associated.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#target_vpn_gateway ComputeVpnTunnel#target_vpn_gateway}
*/
readonly targetVpnGateway?: string;
/**
* URL of the VPN gateway with which this VPN tunnel is associated.
* This must be used if a High Availability VPN gateway resource is created.
* This field must reference a 'google_compute_ha_vpn_gateway' resource.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#vpn_gateway ComputeVpnTunnel#vpn_gateway}
*/
readonly vpnGateway?: string;
/**
* The interface ID of the VPN gateway with which this VPN tunnel is associated.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#vpn_gateway_interface ComputeVpnTunnel#vpn_gateway_interface}
*/
readonly vpnGatewayInterface?: number;
/**
* timeouts block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#timeouts ComputeVpnTunnel#timeouts}
*/
readonly timeouts?: ComputeVpnTunnelTimeouts;
}
export interface ComputeVpnTunnelTimeouts {
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#create ComputeVpnTunnel#create}
*/
readonly create?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#delete ComputeVpnTunnel#delete}
*/
readonly delete?: string;
/**
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#update ComputeVpnTunnel#update}
*/
readonly update?: string;
}
export declare function computeVpnTunnelTimeoutsToTerraform(struct?: ComputeVpnTunnelTimeouts | cdktf.IResolvable): any;
export declare function computeVpnTunnelTimeoutsToHclTerraform(struct?: ComputeVpnTunnelTimeouts | cdktf.IResolvable): any;
export declare class ComputeVpnTunnelTimeoutsOutputReference 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(): ComputeVpnTunnelTimeouts | cdktf.IResolvable | undefined;
set internalValue(value: ComputeVpnTunnelTimeouts | 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.13.0/docs/resources/compute_vpn_tunnel google_compute_vpn_tunnel}
*/
export declare class ComputeVpnTunnel extends cdktf.TerraformResource {
static readonly tfResourceType = "google_compute_vpn_tunnel";
/**
* Generates CDKTF code for importing a ComputeVpnTunnel 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 ComputeVpnTunnel to import
* @param importFromId The id of the existing ComputeVpnTunnel that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_vpn_tunnel#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the ComputeVpnTunnel 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.13.0/docs/resources/compute_vpn_tunnel google_compute_vpn_tunnel} 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 ComputeVpnTunnelConfig
*/
constructor(scope: Construct, id: string, config: ComputeVpnTunnelConfig);
get creationTimestamp(): string;
private _description?;
get description(): string;
set description(value: string);
resetDescription(): void;
get descriptionInput(): string | undefined;
get detailedStatus(): string;
private _effectiveLabels;
get effectiveLabels(): cdktf.StringMap;
private _id?;
get id(): string;
set id(value: string);
resetId(): void;
get idInput(): string | undefined;
private _ikeVersion?;
get ikeVersion(): number;
set ikeVersion(value: number);
resetIkeVersion(): void;
get ikeVersionInput(): number | undefined;
get labelFingerprint(): string;
private _labels?;
get labels(): {
[key: string]: string;
};
set labels(value: {
[key: string]: string;
});
resetLabels(): void;
get labelsInput(): {
[key: string]: string;
} | undefined;
private _localTrafficSelector?;
get localTrafficSelector(): string[];
set localTrafficSelector(value: string[]);
resetLocalTrafficSelector(): void;
get localTrafficSelectorInput(): string[] | undefined;
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _peerExternalGateway?;
get peerExternalGateway(): string;
set peerExternalGateway(value: string);
resetPeerExternalGateway(): void;
get peerExternalGatewayInput(): string | undefined;
private _peerExternalGatewayInterface?;
get peerExternalGatewayInterface(): number;
set peerExternalGatewayInterface(value: number);
resetPeerExternalGatewayInterface(): void;
get peerExternalGatewayInterfaceInput(): number | undefined;
private _peerGcpGateway?;
get peerGcpGateway(): string;
set peerGcpGateway(value: string);
resetPeerGcpGateway(): void;
get peerGcpGatewayInput(): string | undefined;
private _peerIp?;
get peerIp(): string;
set peerIp(value: string);
resetPeerIp(): void;
get peerIpInput(): 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 _remoteTrafficSelector?;
get remoteTrafficSelector(): string[];
set remoteTrafficSelector(value: string[]);
resetRemoteTrafficSelector(): void;
get remoteTrafficSelectorInput(): string[] | undefined;
private _router?;
get router(): string;
set router(value: string);
resetRouter(): void;
get routerInput(): string | undefined;
get selfLink(): string;
private _sharedSecret?;
get sharedSecret(): string;
set sharedSecret(value: string);
get sharedSecretInput(): string | undefined;
get sharedSecretHash(): string;
private _targetVpnGateway?;
get targetVpnGateway(): string;
set targetVpnGateway(value: string);
resetTargetVpnGateway(): void;
get targetVpnGatewayInput(): string | undefined;
private _terraformLabels;
get terraformLabels(): cdktf.StringMap;
get tunnelId(): string;
private _vpnGateway?;
get vpnGateway(): string;
set vpnGateway(value: string);
resetVpnGateway(): void;
get vpnGatewayInput(): string | undefined;
private _vpnGatewayInterface?;
get vpnGatewayInterface(): number;
set vpnGatewayInterface(value: number);
resetVpnGatewayInterface(): void;
get vpnGatewayInterfaceInput(): number | undefined;
private _timeouts;
get timeouts(): ComputeVpnTunnelTimeoutsOutputReference;
putTimeouts(value: ComputeVpnTunnelTimeouts): void;
resetTimeouts(): void;
get timeoutsInput(): cdktf.IResolvable | ComputeVpnTunnelTimeouts | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}