import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * To enable communication between your private network and a local data center or another private network via a VPN connection, you must first create a VPN gateway. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as volcenginecc from "@volcengine/pulumi-volcenginecc"; * * const vpnVpnGatewayDemo = new volcenginecc.vpn.VpnGateway("VpnVpnGatewayDemo", { * bandwidth: 5, * billingType: 2, * description: "this is a test description", * dualTunnelEnabled: false, * ipStackType: "ipv4_only", * ipVersion: "ipv4", * vpnGatewayName: "VpnVpnGatewayDemo", * ipsecEnabled: true, * sslEnabled: true, * sslMaxConnections: 5, * projectName: "default", * vpcId: "vpc-3nr6adxxxxu8931eb64y4z2", * subnetId: "subnet-btepcsxxxxw5h0b2u6hppyd", * }); * ``` * * ## Import * * ```sh * $ pulumi import volcenginecc:vpn/vpnGateway:VpnGateway example "vpn_gateway_id" * ``` */ export declare class VpnGateway extends pulumi.CustomResource { /** * Get an existing VpnGateway resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: VpnGatewayState, opts?: pulumi.CustomResourceOptions): VpnGateway; /** * Returns true if the given object is an instance of VpnGateway. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is VpnGateway; /** * ASN of the VPN gateway. */ readonly asn: pulumi.Output; /** * VPN gateway bandwidth specification. */ readonly bandwidth: pulumi.Output; /** * VPN gateway billing type. 1: Subscription. 2: Pay-as-you-go (fixed specification) */ readonly billingType: pulumi.Output; /** * VPN gateway billing status. Normal: Normal. FinancialLocked: Locked. */ readonly businessStatus: pulumi.Output; /** * Number of IPsec connections associated with the VPN gateway. */ readonly connectionCount: pulumi.Output; /** * Time when the VPN gateway was created. */ readonly createTime: pulumi.Output; /** * Expected resource forced reclaim time. */ readonly deletedTime: pulumi.Output; /** * Description of the VPN gateway. */ readonly description: pulumi.Output; /** * Whether dual tunnel mode is enabled for the VPN gateway. true: Enabled false: Disabled */ readonly dualTunnelEnabled: pulumi.Output; /** * VPN gateway expiration time. */ readonly expiredTime: pulumi.Output; /** * VPN gateway public IP address. */ readonly ipAddress: pulumi.Output; /** * VPN gateway protocol type. ipv4*only: IPv4 protocol type. ipv6*only: IPv6 protocol type. ipv4_ipv6: Dual-stack protocol type. */ readonly ipStackType: pulumi.Output; /** * IP address type of the VPN gateway. ipv4: IPv4 address type. ipv6: IPv6 address type. */ readonly ipVersion: pulumi.Output; /** * Enable IPSec feature. true: enabled false: disabled */ readonly ipsecEnabled: pulumi.Output; /** * Whether the current resource is banned. true: Banned false: Not banned. */ readonly isBlocked: pulumi.Output; /** * VPN gateway lock reasons. financial: Locked due to overdue payment. security: Locked for security reasons. unlock: Not locked. */ readonly lockReason: pulumi.Output; /** * Resource freeze time. This parameter returns a value only if the resource is frozen due to overdue payment; otherwise, it returns an empty value. */ readonly overdueTime: pulumi.Output; /** * Subscription VPN gateway purchase duration, default is '1'. If PeriodUnit is Month, Period value range: 1–9, 12, 24, 36. If PeriodUnit is Year, Period value range: 1–3. */ readonly period: pulumi.Output; /** * Unit for the purchase duration of subscription-based VPN gateways. Default is 'Month'. Month: month Year: year */ readonly periodUnit: pulumi.Output; /** * Project to which the VPN gateway belongs. If not specified, defaults to 'default', meaning the created resource belongs to the default project. You can call ListProjects to query project information under the current account. */ readonly projectName: pulumi.Output; /** * Number of route entries for the VPN gateway. */ readonly routeCount: pulumi.Output; /** * Second public IP address of the VPN gateway. This parameter is returned only for VPN gateway instances in dual tunnel mode; it is not returned for instances in single tunnel mode. */ readonly secondaryIpAddress: pulumi.Output; /** * ID of the second subnet associated with the VPN gateway instance. This parameter is returned only for VPN gateway instances in dual tunnel mode; it is not returned for instances in single tunnel mode. */ readonly secondarySubnetId: pulumi.Output; /** * Enable SSL VPN feature. true: enabled false: disabled */ readonly sslEnabled: pulumi.Output; /** * Maximum SSL connections for the VPN gateway. */ readonly sslMaxConnections: pulumi.Output; /** * Status of the VPN gateway. Creating: creating Deleting: deleting Pending: configuring Available: available */ readonly status: pulumi.Output; /** * ID of the subnet to which the port used by the VPN gateway belongs. */ readonly subnetId: pulumi.Output; readonly tags: pulumi.Output; /** * VPN gateway update time. */ readonly updateTime: pulumi.Output; /** * VPC ID where the VPN gateway is located. */ readonly vpcId: pulumi.Output; /** * ID of the VPN gateway. */ readonly vpnGatewayId: pulumi.Output; /** * Name of the VPN gateway. */ readonly vpnGatewayName: pulumi.Output; /** * Create a VpnGateway resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: VpnGatewayArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering VpnGateway resources. */ export interface VpnGatewayState { /** * ASN of the VPN gateway. */ asn?: pulumi.Input; /** * VPN gateway bandwidth specification. */ bandwidth?: pulumi.Input; /** * VPN gateway billing type. 1: Subscription. 2: Pay-as-you-go (fixed specification) */ billingType?: pulumi.Input; /** * VPN gateway billing status. Normal: Normal. FinancialLocked: Locked. */ businessStatus?: pulumi.Input; /** * Number of IPsec connections associated with the VPN gateway. */ connectionCount?: pulumi.Input; /** * Time when the VPN gateway was created. */ createTime?: pulumi.Input; /** * Expected resource forced reclaim time. */ deletedTime?: pulumi.Input; /** * Description of the VPN gateway. */ description?: pulumi.Input; /** * Whether dual tunnel mode is enabled for the VPN gateway. true: Enabled false: Disabled */ dualTunnelEnabled?: pulumi.Input; /** * VPN gateway expiration time. */ expiredTime?: pulumi.Input; /** * VPN gateway public IP address. */ ipAddress?: pulumi.Input; /** * VPN gateway protocol type. ipv4*only: IPv4 protocol type. ipv6*only: IPv6 protocol type. ipv4_ipv6: Dual-stack protocol type. */ ipStackType?: pulumi.Input; /** * IP address type of the VPN gateway. ipv4: IPv4 address type. ipv6: IPv6 address type. */ ipVersion?: pulumi.Input; /** * Enable IPSec feature. true: enabled false: disabled */ ipsecEnabled?: pulumi.Input; /** * Whether the current resource is banned. true: Banned false: Not banned. */ isBlocked?: pulumi.Input; /** * VPN gateway lock reasons. financial: Locked due to overdue payment. security: Locked for security reasons. unlock: Not locked. */ lockReason?: pulumi.Input; /** * Resource freeze time. This parameter returns a value only if the resource is frozen due to overdue payment; otherwise, it returns an empty value. */ overdueTime?: pulumi.Input; /** * Subscription VPN gateway purchase duration, default is '1'. If PeriodUnit is Month, Period value range: 1–9, 12, 24, 36. If PeriodUnit is Year, Period value range: 1–3. */ period?: pulumi.Input; /** * Unit for the purchase duration of subscription-based VPN gateways. Default is 'Month'. Month: month Year: year */ periodUnit?: pulumi.Input; /** * Project to which the VPN gateway belongs. If not specified, defaults to 'default', meaning the created resource belongs to the default project. You can call ListProjects to query project information under the current account. */ projectName?: pulumi.Input; /** * Number of route entries for the VPN gateway. */ routeCount?: pulumi.Input; /** * Second public IP address of the VPN gateway. This parameter is returned only for VPN gateway instances in dual tunnel mode; it is not returned for instances in single tunnel mode. */ secondaryIpAddress?: pulumi.Input; /** * ID of the second subnet associated with the VPN gateway instance. This parameter is returned only for VPN gateway instances in dual tunnel mode; it is not returned for instances in single tunnel mode. */ secondarySubnetId?: pulumi.Input; /** * Enable SSL VPN feature. true: enabled false: disabled */ sslEnabled?: pulumi.Input; /** * Maximum SSL connections for the VPN gateway. */ sslMaxConnections?: pulumi.Input; /** * Status of the VPN gateway. Creating: creating Deleting: deleting Pending: configuring Available: available */ status?: pulumi.Input; /** * ID of the subnet to which the port used by the VPN gateway belongs. */ subnetId?: pulumi.Input; tags?: pulumi.Input[]>; /** * VPN gateway update time. */ updateTime?: pulumi.Input; /** * VPC ID where the VPN gateway is located. */ vpcId?: pulumi.Input; /** * ID of the VPN gateway. */ vpnGatewayId?: pulumi.Input; /** * Name of the VPN gateway. */ vpnGatewayName?: pulumi.Input; } /** * The set of arguments for constructing a VpnGateway resource. */ export interface VpnGatewayArgs { /** * ASN of the VPN gateway. */ asn?: pulumi.Input; /** * VPN gateway bandwidth specification. */ bandwidth: pulumi.Input; /** * VPN gateway billing type. 1: Subscription. 2: Pay-as-you-go (fixed specification) */ billingType?: pulumi.Input; /** * Description of the VPN gateway. */ description?: pulumi.Input; /** * Whether dual tunnel mode is enabled for the VPN gateway. true: Enabled false: Disabled */ dualTunnelEnabled?: pulumi.Input; /** * VPN gateway protocol type. ipv4*only: IPv4 protocol type. ipv6*only: IPv6 protocol type. ipv4_ipv6: Dual-stack protocol type. */ ipStackType?: pulumi.Input; /** * IP address type of the VPN gateway. ipv4: IPv4 address type. ipv6: IPv6 address type. */ ipVersion?: pulumi.Input; /** * Enable IPSec feature. true: enabled false: disabled */ ipsecEnabled?: pulumi.Input; /** * Subscription VPN gateway purchase duration, default is '1'. If PeriodUnit is Month, Period value range: 1–9, 12, 24, 36. If PeriodUnit is Year, Period value range: 1–3. */ period?: pulumi.Input; /** * Unit for the purchase duration of subscription-based VPN gateways. Default is 'Month'. Month: month Year: year */ periodUnit?: pulumi.Input; /** * Project to which the VPN gateway belongs. If not specified, defaults to 'default', meaning the created resource belongs to the default project. You can call ListProjects to query project information under the current account. */ projectName?: pulumi.Input; /** * ID of the second subnet associated with the VPN gateway instance. This parameter is returned only for VPN gateway instances in dual tunnel mode; it is not returned for instances in single tunnel mode. */ secondarySubnetId?: pulumi.Input; /** * Enable SSL VPN feature. true: enabled false: disabled */ sslEnabled?: pulumi.Input; /** * Maximum SSL connections for the VPN gateway. */ sslMaxConnections?: pulumi.Input; /** * ID of the subnet to which the port used by the VPN gateway belongs. */ subnetId: pulumi.Input; tags?: pulumi.Input[]>; /** * VPC ID where the VPN gateway is located. */ vpcId: pulumi.Input; /** * Name of the VPN gateway. */ vpnGatewayName?: pulumi.Input; }