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

com.pulumi.vault.kotlin.MountArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.4.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.vault.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.vault.MountArgs.builder
import kotlin.Any
import kotlin.Boolean
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * This resource enables a new secrets engine at the given path.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as vault from "@pulumi/vault";
 * const example = new vault.Mount("example", {
 *     path: "dummy",
 *     type: "generic",
 *     description: "This is an example mount",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_vault as vault
 * example = vault.Mount("example",
 *     path="dummy",
 *     type="generic",
 *     description="This is an example mount")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Vault = Pulumi.Vault;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Vault.Mount("example", new()
 *     {
 *         Path = "dummy",
 *         Type = "generic",
 *         Description = "This is an example mount",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := vault.NewMount(ctx, "example", &vault.MountArgs{
 * 			Path:        pulumi.String("dummy"),
 * 			Type:        pulumi.String("generic"),
 * 			Description: pulumi.String("This is an example mount"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.vault.Mount;
 * import com.pulumi.vault.MountArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new Mount("example", MountArgs.builder()
 *             .path("dummy")
 *             .type("generic")
 *             .description("This is an example mount")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: vault:Mount
 *     properties:
 *       path: dummy
 *       type: generic
 *       description: This is an example mount
 * ```
 * 
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as vault from "@pulumi/vault";
 * const kvv2_example = new vault.Mount("kvv2-example", {
 *     path: "version2-example",
 *     type: "kv-v2",
 *     options: {
 *         version: "2",
 *         type: "kv-v2",
 *     },
 *     description: "This is an example KV Version 2 secret engine mount",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_vault as vault
 * kvv2_example = vault.Mount("kvv2-example",
 *     path="version2-example",
 *     type="kv-v2",
 *     options={
 *         "version": "2",
 *         "type": "kv-v2",
 *     },
 *     description="This is an example KV Version 2 secret engine mount")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Vault = Pulumi.Vault;
 * return await Deployment.RunAsync(() =>
 * {
 *     var kvv2_example = new Vault.Mount("kvv2-example", new()
 *     {
 *         Path = "version2-example",
 *         Type = "kv-v2",
 *         Options =
 *         {
 *             { "version", "2" },
 *             { "type", "kv-v2" },
 *         },
 *         Description = "This is an example KV Version 2 secret engine mount",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := vault.NewMount(ctx, "kvv2-example", &vault.MountArgs{
 * 			Path: pulumi.String("version2-example"),
 * 			Type: pulumi.String("kv-v2"),
 * 			Options: pulumi.Map{
 * 				"version": pulumi.Any("2"),
 * 				"type":    pulumi.Any("kv-v2"),
 * 			},
 * 			Description: pulumi.String("This is an example KV Version 2 secret engine mount"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.vault.Mount;
 * import com.pulumi.vault.MountArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var kvv2_example = new Mount("kvv2-example", MountArgs.builder()
 *             .path("version2-example")
 *             .type("kv-v2")
 *             .options(Map.ofEntries(
 *                 Map.entry("version", "2"),
 *                 Map.entry("type", "kv-v2")
 *             ))
 *             .description("This is an example KV Version 2 secret engine mount")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   kvv2-example:
 *     type: vault:Mount
 *     properties:
 *       path: version2-example
 *       type: kv-v2
 *       options:
 *         version: '2'
 *         type: kv-v2
 *       description: This is an example KV Version 2 secret engine mount
 * ```
 * 
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as vault from "@pulumi/vault";
 * const transit_example = new vault.Mount("transit-example", {
 *     path: "transit-example",
 *     type: "transit",
 *     description: "This is an example transit secret engine mount",
 *     options: {
 *         convergent_encryption: false,
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_vault as vault
 * transit_example = vault.Mount("transit-example",
 *     path="transit-example",
 *     type="transit",
 *     description="This is an example transit secret engine mount",
 *     options={
 *         "convergent_encryption": False,
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Vault = Pulumi.Vault;
 * return await Deployment.RunAsync(() =>
 * {
 *     var transit_example = new Vault.Mount("transit-example", new()
 *     {
 *         Path = "transit-example",
 *         Type = "transit",
 *         Description = "This is an example transit secret engine mount",
 *         Options =
 *         {
 *             { "convergent_encryption", false },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := vault.NewMount(ctx, "transit-example", &vault.MountArgs{
 * 			Path:        pulumi.String("transit-example"),
 * 			Type:        pulumi.String("transit"),
 * 			Description: pulumi.String("This is an example transit secret engine mount"),
 * 			Options: pulumi.Map{
 * 				"convergent_encryption": pulumi.Any(false),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.vault.Mount;
 * import com.pulumi.vault.MountArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var transit_example = new Mount("transit-example", MountArgs.builder()
 *             .path("transit-example")
 *             .type("transit")
 *             .description("This is an example transit secret engine mount")
 *             .options(Map.of("convergent_encryption", false))
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   transit-example:
 *     type: vault:Mount
 *     properties:
 *       path: transit-example
 *       type: transit
 *       description: This is an example transit secret engine mount
 *       options:
 *         convergent_encryption: false
 * ```
 * 
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as vault from "@pulumi/vault";
 * const pki_example = new vault.Mount("pki-example", {
 *     path: "pki-example",
 *     type: "pki",
 *     description: "This is an example PKI mount",
 *     defaultLeaseTtlSeconds: 3600,
 *     maxLeaseTtlSeconds: 86400,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_vault as vault
 * pki_example = vault.Mount("pki-example",
 *     path="pki-example",
 *     type="pki",
 *     description="This is an example PKI mount",
 *     default_lease_ttl_seconds=3600,
 *     max_lease_ttl_seconds=86400)
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Vault = Pulumi.Vault;
 * return await Deployment.RunAsync(() =>
 * {
 *     var pki_example = new Vault.Mount("pki-example", new()
 *     {
 *         Path = "pki-example",
 *         Type = "pki",
 *         Description = "This is an example PKI mount",
 *         DefaultLeaseTtlSeconds = 3600,
 *         MaxLeaseTtlSeconds = 86400,
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := vault.NewMount(ctx, "pki-example", &vault.MountArgs{
 * 			Path:                   pulumi.String("pki-example"),
 * 			Type:                   pulumi.String("pki"),
 * 			Description:            pulumi.String("This is an example PKI mount"),
 * 			DefaultLeaseTtlSeconds: pulumi.Int(3600),
 * 			MaxLeaseTtlSeconds:     pulumi.Int(86400),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.vault.Mount;
 * import com.pulumi.vault.MountArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var pki_example = new Mount("pki-example", MountArgs.builder()
 *             .path("pki-example")
 *             .type("pki")
 *             .description("This is an example PKI mount")
 *             .defaultLeaseTtlSeconds(3600)
 *             .maxLeaseTtlSeconds(86400)
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   pki-example:
 *     type: vault:Mount
 *     properties:
 *       path: pki-example
 *       type: pki
 *       description: This is an example PKI mount
 *       defaultLeaseTtlSeconds: 3600
 *       maxLeaseTtlSeconds: 86400
 * ```
 * 
 * ## Import
 * Mounts can be imported using the `path`, e.g.
 * ```sh
 * $ pulumi import vault:index/mount:Mount example dummy
 * ```
 * @property allowedManagedKeys Set of managed key registry entry names that the mount in question is allowed to access
 * @property allowedResponseHeaders List of headers to allow, allowing a plugin to include
 * them in the response.
 * @property auditNonHmacRequestKeys Specifies the list of keys that will not be HMAC'd by audit devices in the request data object.
 * @property auditNonHmacResponseKeys Specifies the list of keys that will not be HMAC'd by audit devices in the response data object.
 * @property defaultLeaseTtlSeconds Default lease duration for tokens and secrets in seconds
 * @property delegatedAuthAccessors List of allowed authentication mount accessors the
 * backend can request delegated authentication for.
 * @property description Human-friendly description of the mount
 * @property externalEntropyAccess Boolean flag that can be explicitly set to true to enable the secrets engine to access Vault's external entropy source
 * @property identityTokenKey The key to use for signing plugin workload identity tokens. If
 * not provided, this will default to Vault's OIDC default key.
 * @property listingVisibility Specifies whether to show this mount in the UI-specific
 * listing endpoint. Valid values are `unauth` or `hidden`. If not set, behaves like `hidden`.
 * @property local Boolean flag that can be explicitly set to true to enforce local mount in HA environment
 * @property maxLeaseTtlSeconds Maximum possible lease duration for tokens and secrets in seconds
 * @property 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*.
 * @property options Specifies mount type specific options that are passed to the backend
 * @property passthroughRequestHeaders List of headers to allow and pass from the request to
 * the plugin.
 * @property path Where the secret backend will be mounted
 * @property pluginVersion Specifies the semantic version of the plugin to use, e.g. "v1.0.0".
 * If unspecified, the server will select any matching unversioned plugin that may have been
 * registered, the latest versioned plugin registered, or a built-in plugin in that order of precedence.
 * @property sealWrap Boolean flag that can be explicitly set to true to enable seal wrapping for the mount, causing values stored by the mount to be wrapped by the seal's encryption capability
 * @property type Type of the backend, such as "aws"
 */
public data class MountArgs(
    public val allowedManagedKeys: Output>? = null,
    public val allowedResponseHeaders: Output>? = null,
    public val auditNonHmacRequestKeys: Output>? = null,
    public val auditNonHmacResponseKeys: Output>? = null,
    public val defaultLeaseTtlSeconds: Output? = null,
    public val delegatedAuthAccessors: Output>? = null,
    public val description: Output? = null,
    public val externalEntropyAccess: Output? = null,
    public val identityTokenKey: Output? = null,
    public val listingVisibility: Output? = null,
    public val local: Output? = null,
    public val maxLeaseTtlSeconds: Output? = null,
    public val namespace: Output? = null,
    public val options: Output>? = null,
    public val passthroughRequestHeaders: Output>? = null,
    public val path: Output? = null,
    public val pluginVersion: Output? = null,
    public val sealWrap: Output? = null,
    public val type: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.vault.MountArgs = com.pulumi.vault.MountArgs.builder()
        .allowedManagedKeys(allowedManagedKeys?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
        .allowedResponseHeaders(
            allowedResponseHeaders?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0
                })
            }),
        )
        .auditNonHmacRequestKeys(
            auditNonHmacRequestKeys?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0
                })
            }),
        )
        .auditNonHmacResponseKeys(
            auditNonHmacResponseKeys?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0
                })
            }),
        )
        .defaultLeaseTtlSeconds(defaultLeaseTtlSeconds?.applyValue({ args0 -> args0 }))
        .delegatedAuthAccessors(
            delegatedAuthAccessors?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0
                })
            }),
        )
        .description(description?.applyValue({ args0 -> args0 }))
        .externalEntropyAccess(externalEntropyAccess?.applyValue({ args0 -> args0 }))
        .identityTokenKey(identityTokenKey?.applyValue({ args0 -> args0 }))
        .listingVisibility(listingVisibility?.applyValue({ args0 -> args0 }))
        .local(local?.applyValue({ args0 -> args0 }))
        .maxLeaseTtlSeconds(maxLeaseTtlSeconds?.applyValue({ args0 -> args0 }))
        .namespace(namespace?.applyValue({ args0 -> args0 }))
        .options(options?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
        .passthroughRequestHeaders(
            passthroughRequestHeaders?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0
                })
            }),
        )
        .path(path?.applyValue({ args0 -> args0 }))
        .pluginVersion(pluginVersion?.applyValue({ args0 -> args0 }))
        .sealWrap(sealWrap?.applyValue({ args0 -> args0 }))
        .type(type?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [MountArgs].
 */
@PulumiTagMarker
public class MountArgsBuilder internal constructor() {
    private var allowedManagedKeys: Output>? = null

    private var allowedResponseHeaders: Output>? = null

    private var auditNonHmacRequestKeys: Output>? = null

    private var auditNonHmacResponseKeys: Output>? = null

    private var defaultLeaseTtlSeconds: Output? = null

    private var delegatedAuthAccessors: Output>? = null

    private var description: Output? = null

    private var externalEntropyAccess: Output? = null

    private var identityTokenKey: Output? = null

    private var listingVisibility: Output? = null

    private var local: Output? = null

    private var maxLeaseTtlSeconds: Output? = null

    private var namespace: Output? = null

    private var options: Output>? = null

    private var passthroughRequestHeaders: Output>? = null

    private var path: Output? = null

    private var pluginVersion: Output? = null

    private var sealWrap: Output? = null

    private var type: Output? = null

    /**
     * @param value Set of managed key registry entry names that the mount in question is allowed to access
     */
    @JvmName("nquafimyadignifk")
    public suspend fun allowedManagedKeys(`value`: Output>) {
        this.allowedManagedKeys = value
    }

    @JvmName("ughvkflnhgjhwivp")
    public suspend fun allowedManagedKeys(vararg values: Output) {
        this.allowedManagedKeys = Output.all(values.asList())
    }

    /**
     * @param values Set of managed key registry entry names that the mount in question is allowed to access
     */
    @JvmName("omnkejrhqjkujehv")
    public suspend fun allowedManagedKeys(values: List>) {
        this.allowedManagedKeys = Output.all(values)
    }

    /**
     * @param value List of headers to allow, allowing a plugin to include
     * them in the response.
     */
    @JvmName("yjwvelfbdqsvgely")
    public suspend fun allowedResponseHeaders(`value`: Output>) {
        this.allowedResponseHeaders = value
    }

    @JvmName("jokvorlqyffjysxj")
    public suspend fun allowedResponseHeaders(vararg values: Output) {
        this.allowedResponseHeaders = Output.all(values.asList())
    }

    /**
     * @param values List of headers to allow, allowing a plugin to include
     * them in the response.
     */
    @JvmName("jbciiakjmyoccslv")
    public suspend fun allowedResponseHeaders(values: List>) {
        this.allowedResponseHeaders = Output.all(values)
    }

    /**
     * @param value Specifies the list of keys that will not be HMAC'd by audit devices in the request data object.
     */
    @JvmName("ltkpqtrnagectdod")
    public suspend fun auditNonHmacRequestKeys(`value`: Output>) {
        this.auditNonHmacRequestKeys = value
    }

    @JvmName("kxvbnfttgnjektaq")
    public suspend fun auditNonHmacRequestKeys(vararg values: Output) {
        this.auditNonHmacRequestKeys = Output.all(values.asList())
    }

    /**
     * @param values Specifies the list of keys that will not be HMAC'd by audit devices in the request data object.
     */
    @JvmName("ybhrxekyvqqrnbbd")
    public suspend fun auditNonHmacRequestKeys(values: List>) {
        this.auditNonHmacRequestKeys = Output.all(values)
    }

    /**
     * @param value Specifies the list of keys that will not be HMAC'd by audit devices in the response data object.
     */
    @JvmName("gduggkutmydnijwd")
    public suspend fun auditNonHmacResponseKeys(`value`: Output>) {
        this.auditNonHmacResponseKeys = value
    }

    @JvmName("akyyikjwrbrftuex")
    public suspend fun auditNonHmacResponseKeys(vararg values: Output) {
        this.auditNonHmacResponseKeys = Output.all(values.asList())
    }

    /**
     * @param values Specifies the list of keys that will not be HMAC'd by audit devices in the response data object.
     */
    @JvmName("qgvpjteaoggqbuql")
    public suspend fun auditNonHmacResponseKeys(values: List>) {
        this.auditNonHmacResponseKeys = Output.all(values)
    }

    /**
     * @param value Default lease duration for tokens and secrets in seconds
     */
    @JvmName("rrqrywreyselhfau")
    public suspend fun defaultLeaseTtlSeconds(`value`: Output) {
        this.defaultLeaseTtlSeconds = value
    }

    /**
     * @param value List of allowed authentication mount accessors the
     * backend can request delegated authentication for.
     */
    @JvmName("eitgvikhhikbycwk")
    public suspend fun delegatedAuthAccessors(`value`: Output>) {
        this.delegatedAuthAccessors = value
    }

    @JvmName("flbqqvrcpwglvanr")
    public suspend fun delegatedAuthAccessors(vararg values: Output) {
        this.delegatedAuthAccessors = Output.all(values.asList())
    }

    /**
     * @param values List of allowed authentication mount accessors the
     * backend can request delegated authentication for.
     */
    @JvmName("uqxrnllpanlqcnki")
    public suspend fun delegatedAuthAccessors(values: List>) {
        this.delegatedAuthAccessors = Output.all(values)
    }

    /**
     * @param value Human-friendly description of the mount
     */
    @JvmName("cvaejvniuoxsknfc")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Boolean flag that can be explicitly set to true to enable the secrets engine to access Vault's external entropy source
     */
    @JvmName("dmdgtqoyjratlfrh")
    public suspend fun externalEntropyAccess(`value`: Output) {
        this.externalEntropyAccess = value
    }

    /**
     * @param value The key to use for signing plugin workload identity tokens. If
     * not provided, this will default to Vault's OIDC default key.
     */
    @JvmName("vrlhogkcjarlxepg")
    public suspend fun identityTokenKey(`value`: Output) {
        this.identityTokenKey = value
    }

    /**
     * @param value Specifies whether to show this mount in the UI-specific
     * listing endpoint. Valid values are `unauth` or `hidden`. If not set, behaves like `hidden`.
     */
    @JvmName("bffvnxjygumxjbeu")
    public suspend fun listingVisibility(`value`: Output) {
        this.listingVisibility = value
    }

    /**
     * @param value Boolean flag that can be explicitly set to true to enforce local mount in HA environment
     */
    @JvmName("fhhnhxgcqcbjavta")
    public suspend fun local(`value`: Output) {
        this.local = value
    }

    /**
     * @param value Maximum possible lease duration for tokens and secrets in seconds
     */
    @JvmName("saogrdmucdubqqum")
    public suspend fun maxLeaseTtlSeconds(`value`: Output) {
        this.maxLeaseTtlSeconds = value
    }

    /**
     * @param value 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*.
     */
    @JvmName("fwuepjrihjqyibsf")
    public suspend fun namespace(`value`: Output) {
        this.namespace = value
    }

    /**
     * @param value Specifies mount type specific options that are passed to the backend
     */
    @JvmName("ivchniutrcitdnau")
    public suspend fun options(`value`: Output>) {
        this.options = value
    }

    /**
     * @param value List of headers to allow and pass from the request to
     * the plugin.
     */
    @JvmName("jwxukkfwdsrqmpav")
    public suspend fun passthroughRequestHeaders(`value`: Output>) {
        this.passthroughRequestHeaders = value
    }

    @JvmName("kkeoqacsslbddkfk")
    public suspend fun passthroughRequestHeaders(vararg values: Output) {
        this.passthroughRequestHeaders = Output.all(values.asList())
    }

    /**
     * @param values List of headers to allow and pass from the request to
     * the plugin.
     */
    @JvmName("mhdhkpnaeqedkidx")
    public suspend fun passthroughRequestHeaders(values: List>) {
        this.passthroughRequestHeaders = Output.all(values)
    }

    /**
     * @param value Where the secret backend will be mounted
     */
    @JvmName("arhkyosrjuxxdjkk")
    public suspend fun path(`value`: Output) {
        this.path = value
    }

    /**
     * @param value Specifies the semantic version of the plugin to use, e.g. "v1.0.0".
     * If unspecified, the server will select any matching unversioned plugin that may have been
     * registered, the latest versioned plugin registered, or a built-in plugin in that order of precedence.
     */
    @JvmName("yvcuhwgbrrhdbcpc")
    public suspend fun pluginVersion(`value`: Output) {
        this.pluginVersion = value
    }

    /**
     * @param value Boolean flag that can be explicitly set to true to enable seal wrapping for the mount, causing values stored by the mount to be wrapped by the seal's encryption capability
     */
    @JvmName("vdqfmbkyxdsfexca")
    public suspend fun sealWrap(`value`: Output) {
        this.sealWrap = value
    }

    /**
     * @param value Type of the backend, such as "aws"
     */
    @JvmName("rjpqoluiegxrlwov")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value Set of managed key registry entry names that the mount in question is allowed to access
     */
    @JvmName("xeasvsgsddpjjwch")
    public suspend fun allowedManagedKeys(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedManagedKeys = mapped
    }

    /**
     * @param values Set of managed key registry entry names that the mount in question is allowed to access
     */
    @JvmName("uxtbkyayudsegmqu")
    public suspend fun allowedManagedKeys(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedManagedKeys = mapped
    }

    /**
     * @param value List of headers to allow, allowing a plugin to include
     * them in the response.
     */
    @JvmName("lprybrcrbxffexuf")
    public suspend fun allowedResponseHeaders(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedResponseHeaders = mapped
    }

    /**
     * @param values List of headers to allow, allowing a plugin to include
     * them in the response.
     */
    @JvmName("jamlxwsjmcrfmloe")
    public suspend fun allowedResponseHeaders(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedResponseHeaders = mapped
    }

    /**
     * @param value Specifies the list of keys that will not be HMAC'd by audit devices in the request data object.
     */
    @JvmName("fehkjrvuomrvhfma")
    public suspend fun auditNonHmacRequestKeys(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.auditNonHmacRequestKeys = mapped
    }

    /**
     * @param values Specifies the list of keys that will not be HMAC'd by audit devices in the request data object.
     */
    @JvmName("hfwkgjtteetauffe")
    public suspend fun auditNonHmacRequestKeys(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.auditNonHmacRequestKeys = mapped
    }

    /**
     * @param value Specifies the list of keys that will not be HMAC'd by audit devices in the response data object.
     */
    @JvmName("oatudrmpijxavhym")
    public suspend fun auditNonHmacResponseKeys(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.auditNonHmacResponseKeys = mapped
    }

    /**
     * @param values Specifies the list of keys that will not be HMAC'd by audit devices in the response data object.
     */
    @JvmName("eklyoircebqdjtcj")
    public suspend fun auditNonHmacResponseKeys(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.auditNonHmacResponseKeys = mapped
    }

    /**
     * @param value Default lease duration for tokens and secrets in seconds
     */
    @JvmName("gsxuthhxkuuqxfyc")
    public suspend fun defaultLeaseTtlSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultLeaseTtlSeconds = mapped
    }

    /**
     * @param value List of allowed authentication mount accessors the
     * backend can request delegated authentication for.
     */
    @JvmName("urnltxtcdukjvkiq")
    public suspend fun delegatedAuthAccessors(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.delegatedAuthAccessors = mapped
    }

    /**
     * @param values List of allowed authentication mount accessors the
     * backend can request delegated authentication for.
     */
    @JvmName("qvjbtpcpgsyfbjem")
    public suspend fun delegatedAuthAccessors(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.delegatedAuthAccessors = mapped
    }

    /**
     * @param value Human-friendly description of the mount
     */
    @JvmName("byqkywshqrvmlwpo")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Boolean flag that can be explicitly set to true to enable the secrets engine to access Vault's external entropy source
     */
    @JvmName("ewwgwkpgornmmvbu")
    public suspend fun externalEntropyAccess(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalEntropyAccess = mapped
    }

    /**
     * @param value The key to use for signing plugin workload identity tokens. If
     * not provided, this will default to Vault's OIDC default key.
     */
    @JvmName("ofxxflvabvbmqlxp")
    public suspend fun identityTokenKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identityTokenKey = mapped
    }

    /**
     * @param value Specifies whether to show this mount in the UI-specific
     * listing endpoint. Valid values are `unauth` or `hidden`. If not set, behaves like `hidden`.
     */
    @JvmName("wvvuflawqkkpedyc")
    public suspend fun listingVisibility(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.listingVisibility = mapped
    }

    /**
     * @param value Boolean flag that can be explicitly set to true to enforce local mount in HA environment
     */
    @JvmName("yahbmppqdwshobvu")
    public suspend fun local(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.local = mapped
    }

    /**
     * @param value Maximum possible lease duration for tokens and secrets in seconds
     */
    @JvmName("wfosepyqiohvwwus")
    public suspend fun maxLeaseTtlSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxLeaseTtlSeconds = mapped
    }

    /**
     * @param value 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*.
     */
    @JvmName("mlpukdulldmjtdoo")
    public suspend fun namespace(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespace = mapped
    }

    /**
     * @param value Specifies mount type specific options that are passed to the backend
     */
    @JvmName("gmaldpunnxxsromj")
    public suspend fun options(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.options = mapped
    }

    /**
     * @param values Specifies mount type specific options that are passed to the backend
     */
    @JvmName("tsdcknuyfmfybshn")
    public fun options(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.options = mapped
    }

    /**
     * @param value List of headers to allow and pass from the request to
     * the plugin.
     */
    @JvmName("xqhnmiqsyhsxrcgw")
    public suspend fun passthroughRequestHeaders(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.passthroughRequestHeaders = mapped
    }

    /**
     * @param values List of headers to allow and pass from the request to
     * the plugin.
     */
    @JvmName("pxdukxbgukjqovei")
    public suspend fun passthroughRequestHeaders(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.passthroughRequestHeaders = mapped
    }

    /**
     * @param value Where the secret backend will be mounted
     */
    @JvmName("gvjsbbvsfgeewjxk")
    public suspend fun path(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.path = mapped
    }

    /**
     * @param value Specifies the semantic version of the plugin to use, e.g. "v1.0.0".
     * If unspecified, the server will select any matching unversioned plugin that may have been
     * registered, the latest versioned plugin registered, or a built-in plugin in that order of precedence.
     */
    @JvmName("dqkhknvllprohaqo")
    public suspend fun pluginVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pluginVersion = mapped
    }

    /**
     * @param value Boolean flag that can be explicitly set to true to enable seal wrapping for the mount, causing values stored by the mount to be wrapped by the seal's encryption capability
     */
    @JvmName("igysorncwupouwnj")
    public suspend fun sealWrap(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sealWrap = mapped
    }

    /**
     * @param value Type of the backend, such as "aws"
     */
    @JvmName("irindlcjbuooncbd")
    public suspend fun type(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): MountArgs = MountArgs(
        allowedManagedKeys = allowedManagedKeys,
        allowedResponseHeaders = allowedResponseHeaders,
        auditNonHmacRequestKeys = auditNonHmacRequestKeys,
        auditNonHmacResponseKeys = auditNonHmacResponseKeys,
        defaultLeaseTtlSeconds = defaultLeaseTtlSeconds,
        delegatedAuthAccessors = delegatedAuthAccessors,
        description = description,
        externalEntropyAccess = externalEntropyAccess,
        identityTokenKey = identityTokenKey,
        listingVisibility = listingVisibility,
        local = local,
        maxLeaseTtlSeconds = maxLeaseTtlSeconds,
        namespace = namespace,
        options = options,
        passthroughRequestHeaders = passthroughRequestHeaders,
        path = path,
        pluginVersion = pluginVersion,
        sealWrap = sealWrap,
        type = type,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy