import * as pulumi from "@pulumi/pulumi";
/**
 * EVPN Zone in Proxmox SDN. The EVPN zone creates a routable Layer 3 network, capable of spanning across multiple clusters.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as proxmoxve from "@muhlba91/pulumi-proxmoxve";
 *
 * const example = new proxmoxve.sdn.zone.Evpn("example", {
 *     resourceId: "evpn1",
 *     nodes: ["pve"],
 *     controller: "evpn-controller1",
 *     vrfVxlan: 4000,
 *     advertiseSubnets: true,
 *     disableArpNdSuppression: false,
 *     exitNodes: [
 *         "pve-exit1",
 *         "pve-exit2",
 *     ],
 *     exitNodesLocalRouting: true,
 *     primaryExitNode: "pve-exit1",
 *     rtImport: "65000:65000",
 *     mtu: 1450,
 *     dns: "1.1.1.1",
 *     dnsZone: "example.com",
 *     ipam: "pve",
 *     reverseDns: "1.1.1.1",
 * });
 * ```
 *
 * ## Import
 *
 * !/usr/bin/env sh
 * EVPN SDN zone can be imported using its unique identifier (zone ID)
 *
 * ```sh
 * $ pulumi import proxmoxve:sdn/zone/evpn:Evpn example evpn1
 * ```
 */
export declare class Evpn extends pulumi.CustomResource {
    /**
     * Get an existing Evpn 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?: EvpnState, opts?: pulumi.CustomResourceOptions): Evpn;
    /**
     * Returns true if the given object is an instance of Evpn.  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 Evpn;
    /**
     * Enable subnet advertisement for EVPN.
     */
    readonly advertiseSubnets: pulumi.Output<boolean>;
    /**
     * EVPN controller address.
     */
    readonly controller: pulumi.Output<string>;
    /**
     * Disable ARP/ND suppression for EVPN.
     */
    readonly disableArpNdSuppression: pulumi.Output<boolean>;
    /**
     * DNS API server address.
     */
    readonly dns: pulumi.Output<string | undefined>;
    /**
     * DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
     */
    readonly dnsZone: pulumi.Output<string | undefined>;
    /**
     * List of exit nodes for EVPN.
     */
    readonly exitNodes: pulumi.Output<string[]>;
    /**
     * Enable local routing for EVPN exit nodes.
     */
    readonly exitNodesLocalRouting: pulumi.Output<boolean>;
    /**
     * IP Address Management system.
     */
    readonly ipam: pulumi.Output<string | undefined>;
    /**
     * MTU value for the zone. There is no support to reset this value back to PVE default once set due to API limitation.
     */
    readonly mtu: pulumi.Output<number>;
    /**
     * The Proxmox nodes which the zone and associated VNets should be deployed on
     */
    readonly nodes: pulumi.Output<string[]>;
    /**
     * Indicates if the zone has pending configuration changes that need to be applied.
     */
    readonly pending: pulumi.Output<boolean>;
    /**
     * Primary exit node for EVPN.
     */
    readonly primaryExitNode: pulumi.Output<string | undefined>;
    /**
     * The unique identifier of the SDN zone.
     */
    readonly resourceId: pulumi.Output<string>;
    /**
     * Reverse DNS API server address.
     */
    readonly reverseDns: pulumi.Output<string | undefined>;
    /**
     * Route target import for EVPN.
     */
    readonly rtImport: pulumi.Output<string | undefined>;
    /**
     * Indicates the current state of the zone.
     */
    readonly state: pulumi.Output<string>;
    /**
     * VRF VXLAN-ID used for dedicated routing interconnect between VNets. It must be different than the VXLAN-ID of the VNets.
     */
    readonly vrfVxlan: pulumi.Output<number>;
    /**
     * Create a Evpn 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: EvpnArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Evpn resources.
 */
export interface EvpnState {
    /**
     * Enable subnet advertisement for EVPN.
     */
    advertiseSubnets?: pulumi.Input<boolean | undefined>;
    /**
     * EVPN controller address.
     */
    controller?: pulumi.Input<string | undefined>;
    /**
     * Disable ARP/ND suppression for EVPN.
     */
    disableArpNdSuppression?: pulumi.Input<boolean | undefined>;
    /**
     * DNS API server address.
     */
    dns?: pulumi.Input<string | undefined>;
    /**
     * DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
     */
    dnsZone?: pulumi.Input<string | undefined>;
    /**
     * List of exit nodes for EVPN.
     */
    exitNodes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Enable local routing for EVPN exit nodes.
     */
    exitNodesLocalRouting?: pulumi.Input<boolean | undefined>;
    /**
     * IP Address Management system.
     */
    ipam?: pulumi.Input<string | undefined>;
    /**
     * MTU value for the zone. There is no support to reset this value back to PVE default once set due to API limitation.
     */
    mtu?: pulumi.Input<number | undefined>;
    /**
     * The Proxmox nodes which the zone and associated VNets should be deployed on
     */
    nodes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Indicates if the zone has pending configuration changes that need to be applied.
     */
    pending?: pulumi.Input<boolean | undefined>;
    /**
     * Primary exit node for EVPN.
     */
    primaryExitNode?: pulumi.Input<string | undefined>;
    /**
     * The unique identifier of the SDN zone.
     */
    resourceId?: pulumi.Input<string | undefined>;
    /**
     * Reverse DNS API server address.
     */
    reverseDns?: pulumi.Input<string | undefined>;
    /**
     * Route target import for EVPN.
     */
    rtImport?: pulumi.Input<string | undefined>;
    /**
     * Indicates the current state of the zone.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * VRF VXLAN-ID used for dedicated routing interconnect between VNets. It must be different than the VXLAN-ID of the VNets.
     */
    vrfVxlan?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a Evpn resource.
 */
export interface EvpnArgs {
    /**
     * Enable subnet advertisement for EVPN.
     */
    advertiseSubnets?: pulumi.Input<boolean | undefined>;
    /**
     * EVPN controller address.
     */
    controller: pulumi.Input<string>;
    /**
     * Disable ARP/ND suppression for EVPN.
     */
    disableArpNdSuppression?: pulumi.Input<boolean | undefined>;
    /**
     * DNS API server address.
     */
    dns?: pulumi.Input<string | undefined>;
    /**
     * DNS domain name. Used to register hostnames, such as `<hostname>.<domain>`. The DNS zone must already exist on the DNS server.
     */
    dnsZone?: pulumi.Input<string | undefined>;
    /**
     * List of exit nodes for EVPN.
     */
    exitNodes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Enable local routing for EVPN exit nodes.
     */
    exitNodesLocalRouting?: pulumi.Input<boolean | undefined>;
    /**
     * IP Address Management system.
     */
    ipam?: pulumi.Input<string | undefined>;
    /**
     * MTU value for the zone. There is no support to reset this value back to PVE default once set due to API limitation.
     */
    mtu?: pulumi.Input<number | undefined>;
    /**
     * The Proxmox nodes which the zone and associated VNets should be deployed on
     */
    nodes?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * Primary exit node for EVPN.
     */
    primaryExitNode?: pulumi.Input<string | undefined>;
    /**
     * The unique identifier of the SDN zone.
     */
    resourceId: pulumi.Input<string>;
    /**
     * Reverse DNS API server address.
     */
    reverseDns?: pulumi.Input<string | undefined>;
    /**
     * Route target import for EVPN.
     */
    rtImport?: pulumi.Input<string | undefined>;
    /**
     * VRF VXLAN-ID used for dedicated routing interconnect between VNets. It must be different than the VXLAN-ID of the VNets.
     */
    vrfVxlan: pulumi.Input<number>;
}
//# sourceMappingURL=evpn.d.ts.map