import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Resource Type definition for AWS::EC2::TransitGateway
 */
export declare class TransitGateway extends pulumi.CustomResource {
    /**
     * Get an existing TransitGateway 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): TransitGateway;
    /**
     * Returns true if the given object is an instance of TransitGateway.  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 TransitGateway;
    /**
     * A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs. The default is 64512.
     */
    readonly amazonSideAsn: pulumi.Output<number | undefined>;
    /**
     * The ID of the default association route table.
     */
    readonly associationDefaultRouteTableId: pulumi.Output<string | undefined>;
    /**
     * Enable or disable automatic acceptance of attachment requests. Disabled by default.
     */
    readonly autoAcceptSharedAttachments: pulumi.Output<string | undefined>;
    /**
     * The ID of the transit gateway.
     */
    readonly awsId: pulumi.Output<string>;
    /**
     * Enable or disable automatic association with the default association route table. Enabled by default. If `DefaultRouteTableAssociation` is set to enable, AWS Transit Gateway will create the default transit gateway route table.
     */
    readonly defaultRouteTableAssociation: pulumi.Output<string | undefined>;
    /**
     * Enable or disable automatic propagation of routes to the default propagation route table. Enabled by default. If `DefaultRouteTablePropagation` is set to enable, AWS Transit Gateway will create the default transit gateway route table.
     */
    readonly defaultRouteTablePropagation: pulumi.Output<string | undefined>;
    /**
     * The description of the transit gateway.
     */
    readonly description: pulumi.Output<string | undefined>;
    /**
     * Enable or disable DNS support. Enabled by default.
     */
    readonly dnsSupport: pulumi.Output<string | undefined>;
    /**
     * Indicates whether multicast is enabled on the transit gateway
     */
    readonly multicastSupport: pulumi.Output<string | undefined>;
    /**
     * The ID of the default propagation route table.
     */
    readonly propagationDefaultRouteTableId: pulumi.Output<string | undefined>;
    /**
     * Enables you to reference a security group across VPCs attached to a transit gateway (TGW). Use this option to simplify security group management and control of instance-to-instance traffic across VPCs that are connected by transit gateway. You can also use this option to migrate from VPC peering (which was the only option that supported security group referencing) to transit gateways (which now also support security group referencing). This option is disabled by default and there are no additional costs to use this feature.
     *
     * For important information about this feature, see [Create a transit gateway](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html#create-tgw) in the *AWS Transit Gateway Guide* .
     */
    readonly securityGroupReferencingSupport: pulumi.Output<string | undefined>;
    /**
     * The tags for the transit gateway.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    readonly transitGatewayArn: pulumi.Output<string>;
    /**
     * The transit gateway CIDR blocks.
     */
    readonly transitGatewayCidrBlocks: pulumi.Output<string[] | undefined>;
    /**
     * Enable or disable Equal Cost Multipath Protocol support. Enabled by default.
     */
    readonly vpnEcmpSupport: pulumi.Output<string | undefined>;
    /**
     * Create a TransitGateway 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?: TransitGatewayArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a TransitGateway resource.
 */
export interface TransitGatewayArgs {
    /**
     * A private Autonomous System Number (ASN) for the Amazon side of a BGP session. The range is 64512 to 65534 for 16-bit ASNs. The default is 64512.
     */
    amazonSideAsn?: pulumi.Input<number>;
    /**
     * The ID of the default association route table.
     */
    associationDefaultRouteTableId?: pulumi.Input<string>;
    /**
     * Enable or disable automatic acceptance of attachment requests. Disabled by default.
     */
    autoAcceptSharedAttachments?: pulumi.Input<string>;
    /**
     * Enable or disable automatic association with the default association route table. Enabled by default. If `DefaultRouteTableAssociation` is set to enable, AWS Transit Gateway will create the default transit gateway route table.
     */
    defaultRouteTableAssociation?: pulumi.Input<string>;
    /**
     * Enable or disable automatic propagation of routes to the default propagation route table. Enabled by default. If `DefaultRouteTablePropagation` is set to enable, AWS Transit Gateway will create the default transit gateway route table.
     */
    defaultRouteTablePropagation?: pulumi.Input<string>;
    /**
     * The description of the transit gateway.
     */
    description?: pulumi.Input<string>;
    /**
     * Enable or disable DNS support. Enabled by default.
     */
    dnsSupport?: pulumi.Input<string>;
    /**
     * Indicates whether multicast is enabled on the transit gateway
     */
    multicastSupport?: pulumi.Input<string>;
    /**
     * The ID of the default propagation route table.
     */
    propagationDefaultRouteTableId?: pulumi.Input<string>;
    /**
     * Enables you to reference a security group across VPCs attached to a transit gateway (TGW). Use this option to simplify security group management and control of instance-to-instance traffic across VPCs that are connected by transit gateway. You can also use this option to migrate from VPC peering (which was the only option that supported security group referencing) to transit gateways (which now also support security group referencing). This option is disabled by default and there are no additional costs to use this feature.
     *
     * For important information about this feature, see [Create a transit gateway](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html#create-tgw) in the *AWS Transit Gateway Guide* .
     */
    securityGroupReferencingSupport?: pulumi.Input<string>;
    /**
     * The tags for the transit gateway.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * The transit gateway CIDR blocks.
     */
    transitGatewayCidrBlocks?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Enable or disable Equal Cost Multipath Protocol support. Enabled by default.
     */
    vpnEcmpSupport?: pulumi.Input<string>;
}
