import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Use this data source to access information about an existing Virtual Network Gateway Connection.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = azure.network.getGatewayConnection({
 *     name: "production",
 *     resourceGroupName: "networking",
 * });
 * export const virtualNetworkGatewayConnectionId = example.then(example => example.id);
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This data source uses the following Azure API Providers:
 *
 * * `Microsoft.Network` - 2025-01-01
 */
export declare function getGatewayConnection(args: GetGatewayConnectionArgs, opts?: pulumi.InvokeOptions): Promise<GetGatewayConnectionResult>;
/**
 * A collection of arguments for invoking getGatewayConnection.
 */
export interface GetGatewayConnectionArgs {
    /**
     * Specifies the name of the Virtual Network Gateway Connection.
     */
    name: string;
    /**
     * Specifies the name of the resource group the Virtual Network Gateway Connection is located in.
     */
    resourceGroupName: string;
}
/**
 * A collection of values returned by getGatewayConnection.
 */
export interface GetGatewayConnectionResult {
    /**
     * The authorization key associated with the
     * Express Route Circuit. This field is present only if the type is an
     * ExpressRoute connection.
     */
    readonly authorizationKey: string;
    readonly connectionProtocol: string;
    /**
     * The dead peer detection timeout of this connection in seconds.
     */
    readonly dpdTimeoutSeconds: number;
    readonly egressBytesTransferred: number;
    /**
     * If `true`, BGP (Border Gateway Protocol) is enabled
     * for this connection.
     */
    readonly enableBgp: boolean;
    /**
     * The ID of the Express Route Circuit
     * (i.e. when `type` is `ExpressRoute`).
     */
    readonly expressRouteCircuitId: string;
    /**
     * If `true`, data packets will bypass ExpressRoute Gateway for data forwarding. This is only valid for ExpressRoute connections.
     */
    readonly expressRouteGatewayBypass: boolean;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly ingressBytesTransferred: number;
    /**
     * (Optional) A `ipsecPolicy` block which is documented below.
     * Only a single policy can be defined for a connection. For details on
     * custom policies refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/azure/vpn-gateway/vpn-gateway-ipsecikepolicy-rm-powershell).
     */
    readonly ipsecPolicies: outputs.network.GetGatewayConnectionIpsecPolicy[];
    /**
     * Use private local Azure IP for the connection.
     */
    readonly localAzureIpAddressEnabled: boolean;
    /**
     * The ID of the local network gateway
     * when a Site-to-Site connection (i.e. when `type` is `IPsec`).
     */
    readonly localNetworkGatewayId: string;
    /**
     * The location/region where the connection is
     * located.
     */
    readonly location: string;
    readonly name: string;
    /**
     * The ID of the peer virtual
     * network gateway when a VNet-to-VNet connection (i.e. when `type`
     * is `Vnet2Vnet`).
     */
    readonly peerVirtualNetworkGatewayId: string;
    /**
     * If `true`, data packets will bypass the Express Route gateway when accessing private-links.
     * This is only valid for ExpressRoute connections, on the conditions described in [the relevant section in the Azure documentation](https://learn.microsoft.com/en-us/azure/expressroute/expressroute-howto-linkvnet-arm#fastpath-virtual-network-peering-user-defined-routes-udrs-and-private-link-support-for-expressroute-direct-connections)
     */
    readonly privateLinkFastPathEnabled: boolean;
    readonly resourceGroupName: string;
    readonly resourceGuid: string;
    /**
     * The routing weight.
     */
    readonly routingWeight: number;
    /**
     * The shared IPSec key.
     */
    readonly sharedKey: string;
    /**
     * A mapping of tags to assign to the resource.
     */
    readonly tags: {
        [key: string]: string;
    };
    /**
     * One or more `trafficSelectorPolicy` blocks which are documented below.
     * A `trafficSelectorPolicy` allows to specify a traffic selector policy proposal to be used in a virtual network gateway connection.
     * For details about traffic selectors refer to [the relevant section in the Azure documentation](https://docs.microsoft.com/azure/vpn-gateway/vpn-gateway-connect-multiple-policybased-rm-ps).
     */
    readonly trafficSelectorPolicies: outputs.network.GetGatewayConnectionTrafficSelectorPolicy[];
    /**
     * The type of connection. Valid options are `IPsec`
     * (Site-to-Site), `ExpressRoute` (ExpressRoute), and `Vnet2Vnet` (VNet-to-VNet).
     */
    readonly type: string;
    /**
     * If `true`, policy-based traffic
     * selectors are enabled for this connection. Enabling policy-based traffic
     * selectors requires an `ipsecPolicy` block.
     */
    readonly usePolicyBasedTrafficSelectors: boolean;
    /**
     * The ID of the Virtual Network Gateway
     * in which the connection is created.
     */
    readonly virtualNetworkGatewayId: string;
}
/**
 * Use this data source to access information about an existing Virtual Network Gateway Connection.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const example = azure.network.getGatewayConnection({
 *     name: "production",
 *     resourceGroupName: "networking",
 * });
 * export const virtualNetworkGatewayConnectionId = example.then(example => example.id);
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This data source uses the following Azure API Providers:
 *
 * * `Microsoft.Network` - 2025-01-01
 */
export declare function getGatewayConnectionOutput(args: GetGatewayConnectionOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetGatewayConnectionResult>;
/**
 * A collection of arguments for invoking getGatewayConnection.
 */
export interface GetGatewayConnectionOutputArgs {
    /**
     * Specifies the name of the Virtual Network Gateway Connection.
     */
    name: pulumi.Input<string>;
    /**
     * Specifies the name of the resource group the Virtual Network Gateway Connection is located in.
     */
    resourceGroupName: pulumi.Input<string>;
}
//# sourceMappingURL=getGatewayConnection.d.ts.map