import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource manages Mist Tunnels in the Mist Organization.
 *
 * A Mist Tunnel (MxTunnel) defines tunneling configuration used to carry AP user VLANs to Mist Edge clusters.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as junipermist from "@pulumi/juniper-mist";
 *
 * const mxtunnelOne = new junipermist.org.Mxtunnel("mxtunnel_one", {
 *     orgId: terraformTest.id,
 *     name: "mxtunnel_one",
 *     protocol: "udp",
 *     helloInterval: 60,
 *     helloRetries: 7,
 *     mtu: 0,
 *     vlanIds: [
 *         10,
 *         20,
 *         30,
 *     ],
 *     mxclusterIds: [mxclusterOne.id],
 *     autoPreemption: {
 *         enabled: true,
 *         dayOfWeek: "mon",
 *         timeOfDay: "02:00",
 *     },
 *     ipsec: {
 *         enabled: true,
 *         splitTunnel: true,
 *         useMxedge: true,
 *         dnsServers: [
 *             "8.8.8.8",
 *             "8.8.4.4",
 *         ],
 *         dnsSuffixes: ["corp.example.com"],
 *         extraRoutes: [{
 *             dest: "10.0.0.0/8",
 *             nextHop: "192.168.1.1",
 *         }],
 *     },
 * });
 * ```
 *
 * ## Import
 *
 * Using `pulumi import`, import `junipermist.org.Mxtunnel` with:
 * Mist Org MxTunnel can be imported by specifying the orgId and the mxtunnelId
 *
 * ```sh
 * $ pulumi import junipermist:org/mxtunnel:Mxtunnel mxtunnel_one 17f90707-aebe-4274-af42-f42952a665a3.d3c42998-9012-4859-9743-6a9f30d68218
 * ```
 */
export declare class Mxtunnel extends pulumi.CustomResource {
    /**
     * Get an existing Mxtunnel 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<pulumi.ID>, state?: MxtunnelState, opts?: pulumi.CustomResourceOptions): Mxtunnel;
    /**
     * Returns true if the given object is an instance of Mxtunnel.  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 Mxtunnel;
    /**
     * IDs of anchor Mist Tunnels used for edge-to-edge tunnel formation
     */
    readonly anchorMxtunnelIds: pulumi.Output<string[] | undefined>;
    /**
     * Preemption behavior for restoring preferred tunnel peers after failover
     */
    readonly autoPreemption: pulumi.Output<outputs.org.MxtunnelAutoPreemption | undefined>;
    /**
     * In seconds, used as heartbeat to detect if a tunnel is alive. AP will try another peer after missing N hellos specified by `helloRetries`.
     */
    readonly helloInterval: pulumi.Output<number | undefined>;
    /**
     * Number of missed hello heartbeats before an AP tries another tunnel peer
     */
    readonly helloRetries: pulumi.Output<number | undefined>;
    /**
     * Security settings for IPsec support on this Mist Tunnel
     */
    readonly ipsec: pulumi.Output<outputs.org.MxtunnelIpsec | undefined>;
    /**
     * 0 to enable PMTU, 552-1500 to start PMTU with a lower MTU
     */
    readonly mtu: pulumi.Output<number | undefined>;
    /**
     * Mist Edge cluster IDs that host this Mist Tunnel
     */
    readonly mxclusterIds: pulumi.Output<string[] | undefined>;
    /**
     * Display name of the Mist Tunnel
     */
    readonly name: pulumi.Output<string>;
    /**
     * Identifier of the org that owns the Mist Tunnel
     */
    readonly orgId: pulumi.Output<string>;
    /**
     * Encapsulation protocol used for the Mist Tunnel
     */
    readonly protocol: pulumi.Output<string | undefined>;
    /**
     * List of VLAN IDs carried by this Mist Tunnel
     */
    readonly vlanIds: pulumi.Output<number[] | undefined>;
    /**
     * Create a Mxtunnel 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: MxtunnelArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Mxtunnel resources.
 */
export interface MxtunnelState {
    /**
     * IDs of anchor Mist Tunnels used for edge-to-edge tunnel formation
     */
    anchorMxtunnelIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Preemption behavior for restoring preferred tunnel peers after failover
     */
    autoPreemption?: pulumi.Input<inputs.org.MxtunnelAutoPreemption | undefined>;
    /**
     * In seconds, used as heartbeat to detect if a tunnel is alive. AP will try another peer after missing N hellos specified by `helloRetries`.
     */
    helloInterval?: pulumi.Input<number | undefined>;
    /**
     * Number of missed hello heartbeats before an AP tries another tunnel peer
     */
    helloRetries?: pulumi.Input<number | undefined>;
    /**
     * Security settings for IPsec support on this Mist Tunnel
     */
    ipsec?: pulumi.Input<inputs.org.MxtunnelIpsec | undefined>;
    /**
     * 0 to enable PMTU, 552-1500 to start PMTU with a lower MTU
     */
    mtu?: pulumi.Input<number | undefined>;
    /**
     * Mist Edge cluster IDs that host this Mist Tunnel
     */
    mxclusterIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Display name of the Mist Tunnel
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Identifier of the org that owns the Mist Tunnel
     */
    orgId?: pulumi.Input<string | undefined>;
    /**
     * Encapsulation protocol used for the Mist Tunnel
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * List of VLAN IDs carried by this Mist Tunnel
     */
    vlanIds?: pulumi.Input<pulumi.Input<number>[] | undefined>;
}
/**
 * The set of arguments for constructing a Mxtunnel resource.
 */
export interface MxtunnelArgs {
    /**
     * IDs of anchor Mist Tunnels used for edge-to-edge tunnel formation
     */
    anchorMxtunnelIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Preemption behavior for restoring preferred tunnel peers after failover
     */
    autoPreemption?: pulumi.Input<inputs.org.MxtunnelAutoPreemption | undefined>;
    /**
     * In seconds, used as heartbeat to detect if a tunnel is alive. AP will try another peer after missing N hellos specified by `helloRetries`.
     */
    helloInterval?: pulumi.Input<number | undefined>;
    /**
     * Number of missed hello heartbeats before an AP tries another tunnel peer
     */
    helloRetries?: pulumi.Input<number | undefined>;
    /**
     * Security settings for IPsec support on this Mist Tunnel
     */
    ipsec?: pulumi.Input<inputs.org.MxtunnelIpsec | undefined>;
    /**
     * 0 to enable PMTU, 552-1500 to start PMTU with a lower MTU
     */
    mtu?: pulumi.Input<number | undefined>;
    /**
     * Mist Edge cluster IDs that host this Mist Tunnel
     */
    mxclusterIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Display name of the Mist Tunnel
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Identifier of the org that owns the Mist Tunnel
     */
    orgId: pulumi.Input<string>;
    /**
     * Encapsulation protocol used for the Mist Tunnel
     */
    protocol?: pulumi.Input<string | undefined>;
    /**
     * List of VLAN IDs carried by this Mist Tunnel
     */
    vlanIds?: pulumi.Input<pulumi.Input<number>[] | undefined>;
}
//# sourceMappingURL=mxtunnel.d.ts.map