import * as pulumi from "@pulumi/pulumi";
/**
 * This data source provides the list of Site PSKs.
 *
 * A multi PSK (Pre-Shared Key) is a feature that allows the use of multiple PSKs for securing network connections.\
 * It provides a simple and comprehensive way to onboard client devices without relying on client mac addresses.\
 * Each psk has its own key name, which can be used for user-level accountability, key rotation, and visibility in the management platform. It supports the creation, rotation, and auto-expiration of psks, and allows vlan assignment and role assignment for dynamic per-user policies.\
 * Multi PSKs create virtual broadcast domains and can be used for end-user onboarding via authenticated sso login.
 *
 * Mist supports two methods of Site PSKs lookup:
 * * local
 * * radius
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as junipermist from "@pulumi/juniper-mist";
 *
 * const pskOne = new junipermist.site.Psk("psk_one", {
 *     siteId: terraformSite.id,
 *     name: "JNP-FR-PAR",
 *     passphrase: "secretone",
 *     ssid: wlanOne.ssid,
 *     usage: "multi",
 * });
 * ```
 *
 * ## Import
 *
 * Using `pulumi import`, import `junipermist.site.Psk` with:
 * Site PSK can be imported by specifying the siteId and the pskId
 *
 * ```sh
 * $ pulumi import junipermist:site/psk:Psk psk_one 17b46405-3a6d-4715-8bb4-6bb6d06f316a.d3c42998-9012-4859-9743-6b9bee475309
 * ```
 */
export declare class Psk extends pulumi.CustomResource {
    /**
     * Get an existing Psk 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?: PskState, opts?: pulumi.CustomResourceOptions): Psk;
    /**
     * Returns true if the given object is an instance of Psk.  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 Psk;
    /**
     * Notification recipient email address for PSK creation notification and expiration reminders
     */
    readonly email: pulumi.Output<string | undefined>;
    /**
     * Expire time for this PSK key (epoch time in seconds). Default `null` (as no expiration)
     */
    readonly expireTime: pulumi.Output<number>;
    /**
     * Number of days before psk is expired. Used as to when to start sending reminder notification when the psk is about to expire
     */
    readonly expiryNotificationTime: pulumi.Output<number | undefined>;
    /**
     * If `usage`==`single`, client MAC address this PSK is bound to; empty when auto-binding is used
     */
    readonly mac: pulumi.Output<string | undefined>;
    /**
     * Display name of the PSK
     */
    readonly name: pulumi.Output<string>;
    /**
     * Admin note or description stored with the PSK
     */
    readonly note: pulumi.Output<string | undefined>;
    /**
     * If set to true, reminder notification will be sent when psk is about to expire
     */
    readonly notifyExpiry: pulumi.Output<boolean>;
    /**
     * If set to true, notification will be sent when psk is created or edited
     */
    readonly notifyOnCreateOrEdit: pulumi.Output<boolean | undefined>;
    /**
     * previous passphrase of the PSK if it has been rotated
     */
    readonly oldPassphrase: pulumi.Output<string | undefined>;
    /**
     * Organization that owns the site-level PSK
     */
    readonly orgId: pulumi.Output<string>;
    /**
     * PSK passphrase, 8-63 characters or 64 hexadecimal characters
     */
    readonly passphrase: pulumi.Output<string>;
    /**
     * Client role applied to users authenticated with this PSK
     */
    readonly role: pulumi.Output<string | undefined>;
    /**
     * Site associated with the site-level PSK
     */
    readonly siteId: pulumi.Output<string>;
    /**
     * WLAN SSID where this PSK can be used
     */
    readonly ssid: pulumi.Output<string>;
    /**
     * enum: `multi`, `single`
     */
    readonly usage: pulumi.Output<string>;
    /**
     * VLAN ID returned for clients using this PSK
     */
    readonly vlanId: pulumi.Output<string | undefined>;
    /**
     * VLAN name to be assigned. Optional, `vlanId` takes precedence if both are provided
     */
    readonly vlanName: pulumi.Output<string | undefined>;
    /**
     * Create a Psk 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: PskArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Psk resources.
 */
export interface PskState {
    /**
     * Notification recipient email address for PSK creation notification and expiration reminders
     */
    email?: pulumi.Input<string | undefined>;
    /**
     * Expire time for this PSK key (epoch time in seconds). Default `null` (as no expiration)
     */
    expireTime?: pulumi.Input<number | undefined>;
    /**
     * Number of days before psk is expired. Used as to when to start sending reminder notification when the psk is about to expire
     */
    expiryNotificationTime?: pulumi.Input<number | undefined>;
    /**
     * If `usage`==`single`, client MAC address this PSK is bound to; empty when auto-binding is used
     */
    mac?: pulumi.Input<string | undefined>;
    /**
     * Display name of the PSK
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Admin note or description stored with the PSK
     */
    note?: pulumi.Input<string | undefined>;
    /**
     * If set to true, reminder notification will be sent when psk is about to expire
     */
    notifyExpiry?: pulumi.Input<boolean | undefined>;
    /**
     * If set to true, notification will be sent when psk is created or edited
     */
    notifyOnCreateOrEdit?: pulumi.Input<boolean | undefined>;
    /**
     * previous passphrase of the PSK if it has been rotated
     */
    oldPassphrase?: pulumi.Input<string | undefined>;
    /**
     * Organization that owns the site-level PSK
     */
    orgId?: pulumi.Input<string | undefined>;
    /**
     * PSK passphrase, 8-63 characters or 64 hexadecimal characters
     */
    passphrase?: pulumi.Input<string | undefined>;
    /**
     * Client role applied to users authenticated with this PSK
     */
    role?: pulumi.Input<string | undefined>;
    /**
     * Site associated with the site-level PSK
     */
    siteId?: pulumi.Input<string | undefined>;
    /**
     * WLAN SSID where this PSK can be used
     */
    ssid?: pulumi.Input<string | undefined>;
    /**
     * enum: `multi`, `single`
     */
    usage?: pulumi.Input<string | undefined>;
    /**
     * VLAN ID returned for clients using this PSK
     */
    vlanId?: pulumi.Input<string | undefined>;
    /**
     * VLAN name to be assigned. Optional, `vlanId` takes precedence if both are provided
     */
    vlanName?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a Psk resource.
 */
export interface PskArgs {
    /**
     * Notification recipient email address for PSK creation notification and expiration reminders
     */
    email?: pulumi.Input<string | undefined>;
    /**
     * Expire time for this PSK key (epoch time in seconds). Default `null` (as no expiration)
     */
    expireTime?: pulumi.Input<number | undefined>;
    /**
     * Number of days before psk is expired. Used as to when to start sending reminder notification when the psk is about to expire
     */
    expiryNotificationTime?: pulumi.Input<number | undefined>;
    /**
     * If `usage`==`single`, client MAC address this PSK is bound to; empty when auto-binding is used
     */
    mac?: pulumi.Input<string | undefined>;
    /**
     * Display name of the PSK
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Admin note or description stored with the PSK
     */
    note?: pulumi.Input<string | undefined>;
    /**
     * If set to true, reminder notification will be sent when psk is about to expire
     */
    notifyExpiry?: pulumi.Input<boolean | undefined>;
    /**
     * If set to true, notification will be sent when psk is created or edited
     */
    notifyOnCreateOrEdit?: pulumi.Input<boolean | undefined>;
    /**
     * previous passphrase of the PSK if it has been rotated
     */
    oldPassphrase?: pulumi.Input<string | undefined>;
    /**
     * PSK passphrase, 8-63 characters or 64 hexadecimal characters
     */
    passphrase: pulumi.Input<string>;
    /**
     * Client role applied to users authenticated with this PSK
     */
    role?: pulumi.Input<string | undefined>;
    /**
     * Site associated with the site-level PSK
     */
    siteId: pulumi.Input<string>;
    /**
     * WLAN SSID where this PSK can be used
     */
    ssid: pulumi.Input<string>;
    /**
     * enum: `multi`, `single`
     */
    usage?: pulumi.Input<string | undefined>;
    /**
     * VLAN ID returned for clients using this PSK
     */
    vlanId?: pulumi.Input<string | undefined>;
    /**
     * VLAN name to be assigned. Optional, `vlanId` takes precedence if both are provided
     */
    vlanName?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=psk.d.ts.map