import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Specifies a VPN connection between a virtual private gateway and a VPN customer gateway or a transit gateway and a VPN customer gateway.
 *  To specify a VPN connection between a transit gateway and customer gateway, use the ``TransitGatewayId`` and ``CustomerGatewayId`` properties.
 *  To specify a VPN connection between a virtual private gateway and customer gateway, use the ``VpnGatewayId`` and ``CustomerGatewayId`` properties.
 *  For more information, see [](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) in the *User Guide*.
 */
export declare class VpnConnection extends pulumi.CustomResource {
    /**
     * Get an existing VpnConnection 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): VpnConnection;
    /**
     * Returns true if the given object is an instance of VpnConnection.  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 VpnConnection;
    /**
     * The ID of the customer gateway at your end of the VPN connection.
     */
    readonly customerGatewayId: pulumi.Output<string>;
    /**
     * Indicate whether to enable acceleration for the VPN connection.
     *  Default: ``false``
     */
    readonly enableAcceleration: pulumi.Output<boolean | undefined>;
    /**
     * The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.
     *  Default: ``0.0.0.0/0``
     */
    readonly localIpv4NetworkCidr: pulumi.Output<string | undefined>;
    /**
     * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.
     *  Default: ``::/0``
     */
    readonly localIpv6NetworkCidr: pulumi.Output<string | undefined>;
    /**
     * The type of IPv4 address assigned to the outside interface of the customer gateway device.
     *  Valid values: ``PrivateIpv4`` | ``PublicIpv4``
     *  Default: ``PublicIpv4``
     */
    readonly outsideIpAddressType: pulumi.Output<string | undefined>;
    /**
     * The IPv4 CIDR on the AWS side of the VPN connection.
     *  Default: ``0.0.0.0/0``
     */
    readonly remoteIpv4NetworkCidr: pulumi.Output<string | undefined>;
    /**
     * The IPv6 CIDR on the AWS side of the VPN connection.
     *  Default: ``::/0``
     */
    readonly remoteIpv6NetworkCidr: pulumi.Output<string | undefined>;
    /**
     * Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.
     *  If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.
     */
    readonly staticRoutesOnly: pulumi.Output<boolean | undefined>;
    /**
     * Any tags assigned to the VPN connection.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * The ID of the transit gateway associated with the VPN connection.
     *  You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.
     */
    readonly transitGatewayId: pulumi.Output<string | undefined>;
    /**
     * The transit gateway attachment ID to use for the VPN tunnel.
     *  Required if ``OutsideIpAddressType`` is set to ``PrivateIpv4``.
     */
    readonly transportTransitGatewayAttachmentId: pulumi.Output<string | undefined>;
    /**
     * Indicate whether the VPN tunnels process IPv4 or IPv6 traffic.
     *  Default: ``ipv4``
     */
    readonly tunnelInsideIpVersion: pulumi.Output<string | undefined>;
    /**
     * The type of VPN connection.
     */
    readonly type: pulumi.Output<string>;
    /**
     * The ID of the VPN connection.
     */
    readonly vpnConnectionId: pulumi.Output<string>;
    /**
     * The ID of the virtual private gateway at the AWS side of the VPN connection.
     *  You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.
     */
    readonly vpnGatewayId: pulumi.Output<string | undefined>;
    /**
     * The tunnel options for the VPN connection.
     */
    readonly vpnTunnelOptionsSpecifications: pulumi.Output<outputs.ec2.VpnConnectionVpnTunnelOptionsSpecification[] | undefined>;
    /**
     * Create a VpnConnection 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: VpnConnectionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a VpnConnection resource.
 */
export interface VpnConnectionArgs {
    /**
     * The ID of the customer gateway at your end of the VPN connection.
     */
    customerGatewayId: pulumi.Input<string>;
    /**
     * Indicate whether to enable acceleration for the VPN connection.
     *  Default: ``false``
     */
    enableAcceleration?: pulumi.Input<boolean>;
    /**
     * The IPv4 CIDR on the customer gateway (on-premises) side of the VPN connection.
     *  Default: ``0.0.0.0/0``
     */
    localIpv4NetworkCidr?: pulumi.Input<string>;
    /**
     * The IPv6 CIDR on the customer gateway (on-premises) side of the VPN connection.
     *  Default: ``::/0``
     */
    localIpv6NetworkCidr?: pulumi.Input<string>;
    /**
     * The type of IPv4 address assigned to the outside interface of the customer gateway device.
     *  Valid values: ``PrivateIpv4`` | ``PublicIpv4``
     *  Default: ``PublicIpv4``
     */
    outsideIpAddressType?: pulumi.Input<string>;
    /**
     * The IPv4 CIDR on the AWS side of the VPN connection.
     *  Default: ``0.0.0.0/0``
     */
    remoteIpv4NetworkCidr?: pulumi.Input<string>;
    /**
     * The IPv6 CIDR on the AWS side of the VPN connection.
     *  Default: ``::/0``
     */
    remoteIpv6NetworkCidr?: pulumi.Input<string>;
    /**
     * Indicates whether the VPN connection uses static routes only. Static routes must be used for devices that don't support BGP.
     *  If you are creating a VPN connection for a device that does not support Border Gateway Protocol (BGP), you must specify ``true``.
     */
    staticRoutesOnly?: pulumi.Input<boolean>;
    /**
     * Any tags assigned to the VPN connection.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * The ID of the transit gateway associated with the VPN connection.
     *  You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.
     */
    transitGatewayId?: pulumi.Input<string>;
    /**
     * The transit gateway attachment ID to use for the VPN tunnel.
     *  Required if ``OutsideIpAddressType`` is set to ``PrivateIpv4``.
     */
    transportTransitGatewayAttachmentId?: pulumi.Input<string>;
    /**
     * Indicate whether the VPN tunnels process IPv4 or IPv6 traffic.
     *  Default: ``ipv4``
     */
    tunnelInsideIpVersion?: pulumi.Input<string>;
    /**
     * The type of VPN connection.
     */
    type: pulumi.Input<string>;
    /**
     * The ID of the virtual private gateway at the AWS side of the VPN connection.
     *  You must specify either ``TransitGatewayId`` or ``VpnGatewayId``, but not both.
     */
    vpnGatewayId?: pulumi.Input<string>;
    /**
     * The tunnel options for the VPN connection.
     */
    vpnTunnelOptionsSpecifications?: pulumi.Input<pulumi.Input<inputs.ec2.VpnConnectionVpnTunnelOptionsSpecificationArgs>[]>;
}
