import * as pulumi from "@pulumi/pulumi";
/**
 * This data source provides the list of Org 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 three methods of Org PSKs lookup:
 * * local
 * * radius
 * * cloud
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as junipermist from "@pulumi/juniper-mist";
 *
 * const pskOne = new junipermist.org.Psk("psk_one", {
 *     orgId: terraformTest.id,
 *     name: "JNP-FR-PAR",
 *     passphrase: "secretone",
 *     ssid: wlanOne.ssid,
 *     usage: "multi",
 * });
 * ```
 *
 * ## Import
 *
 * Using `pulumi import`, import `mist_org_psk` with:
 *
 * Org PSK can be imported by specifying the org_id and the psk_id
 *
 * ```sh
 * $ pulumi import junipermist:org/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;
    /**
     * email to send psk expiring notifications to
     */
    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`, the mac that this PSK ties to, empty if `auto-binding`
     */
    readonly mac: pulumi.Output<string | undefined>;
    /**
     * If `usage`==`macs`, this list contains N number of client mac addresses or mac patterns(1122*) or both. This list is capped at 5000
     */
    readonly macs: pulumi.Output<string[] | undefined>;
    /**
     * For Org PSK Only. Max concurrent users for this PSK key. Default is 0 (unlimited)
     */
    readonly maxUsage: pulumi.Output<number | undefined>;
    readonly name: pulumi.Output<string>;
    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>;
    readonly orgId: pulumi.Output<string>;
    /**
     * passphrase of the PSK (8-63 character or 64 in hex)
     */
    readonly passphrase: pulumi.Output<string>;
    readonly role: pulumi.Output<string | undefined>;
    /**
     * SSID this PSK should be applicable to
     */
    readonly ssid: pulumi.Output<string>;
    /**
     * enum: `macs`, `multi`, `single`
     */
    readonly usage: pulumi.Output<string>;
    readonly vlanId: 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 {
    /**
     * email to send psk expiring notifications to
     */
    email?: pulumi.Input<string>;
    /**
     * Expire time for this PSK key (epoch time in seconds). Default `null` (as no expiration)
     */
    expireTime?: pulumi.Input<number>;
    /**
     * 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>;
    /**
     * If `usage`==`single`, the mac that this PSK ties to, empty if `auto-binding`
     */
    mac?: pulumi.Input<string>;
    /**
     * If `usage`==`macs`, this list contains N number of client mac addresses or mac patterns(1122*) or both. This list is capped at 5000
     */
    macs?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * For Org PSK Only. Max concurrent users for this PSK key. Default is 0 (unlimited)
     */
    maxUsage?: pulumi.Input<number>;
    name?: pulumi.Input<string>;
    note?: pulumi.Input<string>;
    /**
     * If set to true, reminder notification will be sent when psk is about to expire
     */
    notifyExpiry?: pulumi.Input<boolean>;
    /**
     * If set to true, notification will be sent when psk is created or edited
     */
    notifyOnCreateOrEdit?: pulumi.Input<boolean>;
    /**
     * previous passphrase of the PSK if it has been rotated
     */
    oldPassphrase?: pulumi.Input<string>;
    orgId?: pulumi.Input<string>;
    /**
     * passphrase of the PSK (8-63 character or 64 in hex)
     */
    passphrase?: pulumi.Input<string>;
    role?: pulumi.Input<string>;
    /**
     * SSID this PSK should be applicable to
     */
    ssid?: pulumi.Input<string>;
    /**
     * enum: `macs`, `multi`, `single`
     */
    usage?: pulumi.Input<string>;
    vlanId?: pulumi.Input<string>;
}
/**
 * The set of arguments for constructing a Psk resource.
 */
export interface PskArgs {
    /**
     * email to send psk expiring notifications to
     */
    email?: pulumi.Input<string>;
    /**
     * Expire time for this PSK key (epoch time in seconds). Default `null` (as no expiration)
     */
    expireTime?: pulumi.Input<number>;
    /**
     * 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>;
    /**
     * If `usage`==`single`, the mac that this PSK ties to, empty if `auto-binding`
     */
    mac?: pulumi.Input<string>;
    /**
     * If `usage`==`macs`, this list contains N number of client mac addresses or mac patterns(1122*) or both. This list is capped at 5000
     */
    macs?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * For Org PSK Only. Max concurrent users for this PSK key. Default is 0 (unlimited)
     */
    maxUsage?: pulumi.Input<number>;
    name?: pulumi.Input<string>;
    note?: pulumi.Input<string>;
    /**
     * If set to true, reminder notification will be sent when psk is about to expire
     */
    notifyExpiry?: pulumi.Input<boolean>;
    /**
     * If set to true, notification will be sent when psk is created or edited
     */
    notifyOnCreateOrEdit?: pulumi.Input<boolean>;
    /**
     * previous passphrase of the PSK if it has been rotated
     */
    oldPassphrase?: pulumi.Input<string>;
    orgId: pulumi.Input<string>;
    /**
     * passphrase of the PSK (8-63 character or 64 in hex)
     */
    passphrase: pulumi.Input<string>;
    role?: pulumi.Input<string>;
    /**
     * SSID this PSK should be applicable to
     */
    ssid: pulumi.Input<string>;
    /**
     * enum: `macs`, `multi`, `single`
     */
    usage?: pulumi.Input<string>;
    vlanId?: pulumi.Input<string>;
}
