All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.vault.MfaDuoArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing HashiCorp Vault cloud resources.

There is a newer version: 6.5.0-alpha.1732775348
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.vault;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class MfaDuoArgs extends com.pulumi.resources.ResourceArgs {

    public static final MfaDuoArgs Empty = new MfaDuoArgs();

    /**
     * `(string: <required>)` - API hostname for Duo.
     * 
     */
    @Import(name="apiHostname", required=true)
    private Output apiHostname;

    /**
     * @return `(string: <required>)` - API hostname for Duo.
     * 
     */
    public Output apiHostname() {
        return this.apiHostname;
    }

    /**
     * `(string: <required>)` - Integration key for Duo.
     * 
     */
    @Import(name="integrationKey", required=true)
    private Output integrationKey;

    /**
     * @return `(string: <required>)` - Integration key for Duo.
     * 
     */
    public Output integrationKey() {
        return this.integrationKey;
    }

    /**
     * `(string: <required>)` - 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.
     * 
     */
    @Import(name="mountAccessor", required=true)
    private Output mountAccessor;

    /**
     * @return `(string: <required>)` - 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.
     * 
     */
    public Output mountAccessor() {
        return this.mountAccessor;
    }

    /**
     * `(string: <required>)` – Name of the MFA method.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return `(string: <required>)` – Name of the MFA method.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * 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*.
     * 
     */
    @Import(name="namespace")
    private @Nullable Output namespace;

    /**
     * @return 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*.
     * 
     */
    public Optional> namespace() {
        return Optional.ofNullable(this.namespace);
    }

    /**
     * `(string)` - Push information for Duo.
     * 
     */
    @Import(name="pushInfo")
    private @Nullable Output pushInfo;

    /**
     * @return `(string)` - Push information for Duo.
     * 
     */
    public Optional> pushInfo() {
        return Optional.ofNullable(this.pushInfo);
    }

    /**
     * `(string: <required>)` - Secret key for Duo.
     * 
     */
    @Import(name="secretKey", required=true)
    private Output secretKey;

    /**
     * @return `(string: <required>)` - Secret key for Duo.
     * 
     */
    public Output secretKey() {
        return this.secretKey;
    }

    /**
     * `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}{@literal @}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 `mount_accessor` parameter
     * - entity.name: The name configured for the Entity
     * - alias.metadata.`<key>`: The value of the Alias's metadata parameter
     * - entity.metadata.`<key>`: The value of the Entity's metadata parameter
     * 
     */
    @Import(name="usernameFormat")
    private @Nullable Output usernameFormat;

    /**
     * @return `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}{@literal @}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 `mount_accessor` parameter
     * - entity.name: The name configured for the Entity
     * - alias.metadata.`<key>`: The value of the Alias's metadata parameter
     * - entity.metadata.`<key>`: The value of the Entity's metadata parameter
     * 
     */
    public Optional> usernameFormat() {
        return Optional.ofNullable(this.usernameFormat);
    }

    private MfaDuoArgs() {}

    private MfaDuoArgs(MfaDuoArgs $) {
        this.apiHostname = $.apiHostname;
        this.integrationKey = $.integrationKey;
        this.mountAccessor = $.mountAccessor;
        this.name = $.name;
        this.namespace = $.namespace;
        this.pushInfo = $.pushInfo;
        this.secretKey = $.secretKey;
        this.usernameFormat = $.usernameFormat;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(MfaDuoArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private MfaDuoArgs $;

        public Builder() {
            $ = new MfaDuoArgs();
        }

        public Builder(MfaDuoArgs defaults) {
            $ = new MfaDuoArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param apiHostname `(string: <required>)` - API hostname for Duo.
         * 
         * @return builder
         * 
         */
        public Builder apiHostname(Output apiHostname) {
            $.apiHostname = apiHostname;
            return this;
        }

        /**
         * @param apiHostname `(string: <required>)` - API hostname for Duo.
         * 
         * @return builder
         * 
         */
        public Builder apiHostname(String apiHostname) {
            return apiHostname(Output.of(apiHostname));
        }

        /**
         * @param integrationKey `(string: <required>)` - Integration key for Duo.
         * 
         * @return builder
         * 
         */
        public Builder integrationKey(Output integrationKey) {
            $.integrationKey = integrationKey;
            return this;
        }

        /**
         * @param integrationKey `(string: <required>)` - Integration key for Duo.
         * 
         * @return builder
         * 
         */
        public Builder integrationKey(String integrationKey) {
            return integrationKey(Output.of(integrationKey));
        }

        /**
         * @param mountAccessor `(string: <required>)` - 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.
         * 
         * @return builder
         * 
         */
        public Builder mountAccessor(Output mountAccessor) {
            $.mountAccessor = mountAccessor;
            return this;
        }

        /**
         * @param mountAccessor `(string: <required>)` - 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.
         * 
         * @return builder
         * 
         */
        public Builder mountAccessor(String mountAccessor) {
            return mountAccessor(Output.of(mountAccessor));
        }

        /**
         * @param name `(string: <required>)` – Name of the MFA method.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name `(string: <required>)` – Name of the MFA method.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param namespace 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*.
         * 
         * @return builder
         * 
         */
        public Builder namespace(@Nullable Output namespace) {
            $.namespace = namespace;
            return this;
        }

        /**
         * @param namespace 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*.
         * 
         * @return builder
         * 
         */
        public Builder namespace(String namespace) {
            return namespace(Output.of(namespace));
        }

        /**
         * @param pushInfo `(string)` - Push information for Duo.
         * 
         * @return builder
         * 
         */
        public Builder pushInfo(@Nullable Output pushInfo) {
            $.pushInfo = pushInfo;
            return this;
        }

        /**
         * @param pushInfo `(string)` - Push information for Duo.
         * 
         * @return builder
         * 
         */
        public Builder pushInfo(String pushInfo) {
            return pushInfo(Output.of(pushInfo));
        }

        /**
         * @param secretKey `(string: <required>)` - Secret key for Duo.
         * 
         * @return builder
         * 
         */
        public Builder secretKey(Output secretKey) {
            $.secretKey = secretKey;
            return this;
        }

        /**
         * @param secretKey `(string: <required>)` - Secret key for Duo.
         * 
         * @return builder
         * 
         */
        public Builder secretKey(String secretKey) {
            return secretKey(Output.of(secretKey));
        }

        /**
         * @param usernameFormat `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}{@literal @}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 `mount_accessor` parameter
         * - entity.name: The name configured for the Entity
         * - alias.metadata.`<key>`: The value of the Alias's metadata parameter
         * - entity.metadata.`<key>`: The value of the Entity's metadata parameter
         * 
         * @return builder
         * 
         */
        public Builder usernameFormat(@Nullable Output usernameFormat) {
            $.usernameFormat = usernameFormat;
            return this;
        }

        /**
         * @param usernameFormat `(string)` - A format string for mapping Identity names to MFA method names. Values to substitute should be placed in `{{}}`. For example, `"{{alias.name}}{@literal @}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 `mount_accessor` parameter
         * - entity.name: The name configured for the Entity
         * - alias.metadata.`<key>`: The value of the Alias's metadata parameter
         * - entity.metadata.`<key>`: The value of the Entity's metadata parameter
         * 
         * @return builder
         * 
         */
        public Builder usernameFormat(String usernameFormat) {
            return usernameFormat(Output.of(usernameFormat));
        }

        public MfaDuoArgs build() {
            if ($.apiHostname == null) {
                throw new MissingRequiredPropertyException("MfaDuoArgs", "apiHostname");
            }
            if ($.integrationKey == null) {
                throw new MissingRequiredPropertyException("MfaDuoArgs", "integrationKey");
            }
            if ($.mountAccessor == null) {
                throw new MissingRequiredPropertyException("MfaDuoArgs", "mountAccessor");
            }
            if ($.secretKey == null) {
                throw new MissingRequiredPropertyException("MfaDuoArgs", "secretKey");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy