import * as pulumi from "@pulumi/pulumi"; /** * Provides a resource to manage [Duo MFA](https://www.vaultproject.io/docs/enterprise/mfa/mfa-duo.html). * * **Note** this feature is available only with Vault Enterprise. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as vault from "@pulumi/vault"; * * const userpass = new vault.AuthBackend("userpass", { * type: "userpass", * path: "userpass", * }); * const myDuo = new vault.MfaDuo("my_duo", { * name: "my_duo", * mountAccessor: userpass.accessor, * secretKey: "8C7THtrIigh2rPZQMbguugt8IUftWhMRCOBzbuyz", * integrationKey: "BIACEUEAXI20BNWTEYXT", * apiHostname: "api-2b5c39f5.duosecurity.com", * }); * ``` * * ## Import * * Mounts can be imported using the `path`, e.g. * * ```sh * $ pulumi import vault:index/mfaDuo:MfaDuo my_duo my_duo * ``` */ export declare class MfaDuo extends pulumi.CustomResource { /** * Get an existing MfaDuo 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, state?: MfaDuoState, opts?: pulumi.CustomResourceOptions): MfaDuo; /** * Returns true if the given object is an instance of MfaDuo. 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 MfaDuo; /** * `(string: )` - API hostname for Duo. */ readonly apiHostname: pulumi.Output; /** * `(string: )` - Integration key for Duo. */ readonly integrationKey: pulumi.Output; /** * `(string: )` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping. */ readonly mountAccessor: pulumi.Output; /** * `(string: )` – Name of the MFA method. */ readonly name: pulumi.Output; /** * The namespace to provision the resource in. * The value should not contain leading or trailing forward slashes. * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace). * *Available only for Vault Enterprise*. */ readonly namespace: pulumi.Output; /** * `(string)` - Push information for Duo. */ readonly pushInfo: pulumi.Output; /** * `(string: )` - Secret key for Duo. */ readonly secretKey: pulumi.Output; /** * `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings: * - alias.name: The name returned by the mount configured via the `mountAccessor` parameter * - entity.name: The name configured for the Entity * - alias.metadata.``: The value of the Alias's metadata parameter * - entity.metadata.``: The value of the Entity's metadata parameter */ readonly usernameFormat: pulumi.Output; /** * Create a MfaDuo 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: MfaDuoArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering MfaDuo resources. */ export interface MfaDuoState { /** * `(string: )` - API hostname for Duo. */ apiHostname?: pulumi.Input; /** * `(string: )` - Integration key for Duo. */ integrationKey?: pulumi.Input; /** * `(string: )` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping. */ mountAccessor?: pulumi.Input; /** * `(string: )` – Name of the MFA method. */ name?: pulumi.Input; /** * The namespace to provision the resource in. * The value should not contain leading or trailing forward slashes. * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace). * *Available only for Vault Enterprise*. */ namespace?: pulumi.Input; /** * `(string)` - Push information for Duo. */ pushInfo?: pulumi.Input; /** * `(string: )` - Secret key for Duo. */ secretKey?: pulumi.Input; /** * `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings: * - alias.name: The name returned by the mount configured via the `mountAccessor` parameter * - entity.name: The name configured for the Entity * - alias.metadata.``: The value of the Alias's metadata parameter * - entity.metadata.``: The value of the Entity's metadata parameter */ usernameFormat?: pulumi.Input; } /** * The set of arguments for constructing a MfaDuo resource. */ export interface MfaDuoArgs { /** * `(string: )` - API hostname for Duo. */ apiHostname: pulumi.Input; /** * `(string: )` - Integration key for Duo. */ integrationKey: pulumi.Input; /** * `(string: )` - The mount to tie this method to for use in automatic mappings. The mapping will use the Name field of Aliases associated with this mount as the username in the mapping. */ mountAccessor: pulumi.Input; /** * `(string: )` – Name of the MFA method. */ name?: pulumi.Input; /** * The namespace to provision the resource in. * The value should not contain leading or trailing forward slashes. * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace). * *Available only for Vault Enterprise*. */ namespace?: pulumi.Input; /** * `(string)` - Push information for Duo. */ pushInfo?: pulumi.Input; /** * `(string: )` - Secret key for Duo. */ secretKey: pulumi.Input; /** * `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}@example.com"`. If blank, the Alias's Name field will be used as-is. Currently-supported mappings: * - alias.name: The name returned by the mount configured via the `mountAccessor` parameter * - entity.name: The name configured for the Entity * - alias.metadata.``: The value of the Alias's metadata parameter * - entity.metadata.``: The value of the Entity's metadata parameter */ usernameFormat?: pulumi.Input; }