import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Get information on an EC2 Transit Gateway VPN Attachment.
 *
 * > EC2 Transit Gateway VPN Attachments are implicitly created by VPN Connections referencing an EC2 Transit Gateway so there is no managed resource. For ease, the `aws.ec2.VpnConnection` resource includes a `transitGatewayAttachmentId` attribute which can replace some usage of this data source. For tagging the attachment, see the `aws.ec2.Tag` resource.
 *
 * ## Example Usage
 *
 * ### By Transit Gateway and VPN Connection Identifiers
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * const example = aws.ec2transitgateway.getVpnAttachment({
 *     transitGatewayId: exampleAwsEc2TransitGateway.id,
 *     vpnConnectionId: exampleAwsVpnConnection.id,
 * });
 * ```
 *
 * ### Filter
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * const test = aws.ec2transitgateway.getVpnAttachment({
 *     filters: [{
 *         name: "resource-id",
 *         values: ["some-resource"],
 *     }],
 * });
 * ```
 */
export declare function getVpnAttachment(args?: GetVpnAttachmentArgs, opts?: pulumi.InvokeOptions): Promise<GetVpnAttachmentResult>;
/**
 * A collection of arguments for invoking getVpnAttachment.
 */
export interface GetVpnAttachmentArgs {
    /**
     * Configuration block(s) for filtering. Detailed below.
     */
    filters?: inputs.ec2transitgateway.GetVpnAttachmentFilter[];
    /**
     * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
     */
    region?: string;
    /**
     * Map of tags, each pair of which must exactly match a pair on the desired Transit Gateway VPN Attachment.
     */
    tags?: {
        [key: string]: string;
    };
    /**
     * Identifier of the EC2 Transit Gateway.
     */
    transitGatewayId?: string;
    /**
     * Identifier of the EC2 VPN Connection.
     */
    vpnConnectionId?: string;
}
/**
 * A collection of values returned by getVpnAttachment.
 */
export interface GetVpnAttachmentResult {
    readonly filters?: outputs.ec2transitgateway.GetVpnAttachmentFilter[];
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly region: string;
    /**
     * Key-value tags for the EC2 Transit Gateway VPN Attachment
     */
    readonly tags: {
        [key: string]: string;
    };
    readonly transitGatewayId?: string;
    readonly vpnConnectionId?: string;
}
/**
 * Get information on an EC2 Transit Gateway VPN Attachment.
 *
 * > EC2 Transit Gateway VPN Attachments are implicitly created by VPN Connections referencing an EC2 Transit Gateway so there is no managed resource. For ease, the `aws.ec2.VpnConnection` resource includes a `transitGatewayAttachmentId` attribute which can replace some usage of this data source. For tagging the attachment, see the `aws.ec2.Tag` resource.
 *
 * ## Example Usage
 *
 * ### By Transit Gateway and VPN Connection Identifiers
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * const example = aws.ec2transitgateway.getVpnAttachment({
 *     transitGatewayId: exampleAwsEc2TransitGateway.id,
 *     vpnConnectionId: exampleAwsVpnConnection.id,
 * });
 * ```
 *
 * ### Filter
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 *
 * const test = aws.ec2transitgateway.getVpnAttachment({
 *     filters: [{
 *         name: "resource-id",
 *         values: ["some-resource"],
 *     }],
 * });
 * ```
 */
export declare function getVpnAttachmentOutput(args?: GetVpnAttachmentOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetVpnAttachmentResult>;
/**
 * A collection of arguments for invoking getVpnAttachment.
 */
export interface GetVpnAttachmentOutputArgs {
    /**
     * Configuration block(s) for filtering. Detailed below.
     */
    filters?: pulumi.Input<pulumi.Input<inputs.ec2transitgateway.GetVpnAttachmentFilterArgs>[]>;
    /**
     * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
     */
    region?: pulumi.Input<string>;
    /**
     * Map of tags, each pair of which must exactly match a pair on the desired Transit Gateway VPN Attachment.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Identifier of the EC2 Transit Gateway.
     */
    transitGatewayId?: pulumi.Input<string>;
    /**
     * Identifier of the EC2 VPN Connection.
     */
    vpnConnectionId?: pulumi.Input<string>;
}
