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

com.pulumi.vault.kotlin.ProviderArgs.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.kotlin.applySuspend
import com.pulumi.vault.ProviderArgs.builder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginAwsArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginAwsArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginAzureArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginAzureArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginCertArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginCertArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginGcpArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginGcpArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginJwtArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginJwtArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginKerberosArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginKerberosArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginOciArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginOciArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginOidcArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginOidcArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginRadiusArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginRadiusArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginTokenFileArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginTokenFileArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginUserpassArgs
import com.pulumi.vault.kotlin.inputs.ProviderAuthLoginUserpassArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderClientAuthArgs
import com.pulumi.vault.kotlin.inputs.ProviderClientAuthArgsBuilder
import com.pulumi.vault.kotlin.inputs.ProviderHeaderArgs
import com.pulumi.vault.kotlin.inputs.ProviderHeaderArgsBuilder
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The provider type for the vault package. By default, resources use package-wide configuration
 * settings, however an explicit `Provider` instance may be created and passed during resource
 * construction to achieve fine-grained programmatic control over provider settings. See the
 * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
 * @property addAddressToEnv
 * @property address URL of the root of the target Vault server.
 * @property authLogin Login to vault with an existing auth method using auth//login
 * @property authLoginAws Login to vault using the AWS method
 * @property authLoginAzure Login to vault using the azure method
 * @property authLoginCert Login to vault using the cert method
 * @property authLoginGcp Login to vault using the gcp method
 * @property authLoginJwt Login to vault using the jwt method
 * @property authLoginKerberos Login to vault using the kerberos method
 * @property authLoginOci Login to vault using the OCI method
 * @property authLoginOidc Login to vault using the oidc method
 * @property authLoginRadius Login to vault using the radius method
 * @property authLoginTokenFile Login to vault using
 * @property authLoginUserpass Login to vault using the userpass method
 * @property caCertDir Path to directory containing CA certificate files to validate the server's certificate.
 * @property caCertFile Path to a CA certificate file to validate the server's certificate.
 * @property clientAuth Client authentication credentials.
 * @property headers The headers to send with each Vault request.
 * @property maxLeaseTtlSeconds Maximum TTL for secret leases requested by this provider.
 * @property maxRetries Maximum number of retries when a 5xx error code is encountered.
 * @property maxRetriesCcc Maximum number of retries for Client Controlled Consistency related operations
 * @property namespace The namespace to use. Available only for Vault Enterprise.
 * @property setNamespaceFromToken In the case where the Vault token is for a specific namespace and the provider namespace is not configured, use the
 * token namespace as the root namespace for all resources.
 * @property skipChildToken Set this to true to prevent the creation of ephemeral child token used by this provider.
 * @property skipGetVaultVersion Skip the dynamic fetching of the Vault server version.
 * @property skipTlsVerify Set this to true only if the target Vault server is an insecure development instance.
 * @property tlsServerName Name to use as the SNI host when connecting via TLS.
 * @property token Token to use to authenticate to Vault.
 * @property tokenName Token name to use for creating the Vault child token.
 * @property vaultVersionOverride Override the Vault server version, which is normally determined dynamically from the target Vault server
 */
public data class ProviderArgs(
    public val addAddressToEnv: Output? = null,
    public val address: Output? = null,
    public val authLogin: Output? = null,
    public val authLoginAws: Output? = null,
    public val authLoginAzure: Output? = null,
    public val authLoginCert: Output? = null,
    public val authLoginGcp: Output? = null,
    public val authLoginJwt: Output? = null,
    public val authLoginKerberos: Output? = null,
    public val authLoginOci: Output? = null,
    public val authLoginOidc: Output? = null,
    public val authLoginRadius: Output? = null,
    public val authLoginTokenFile: Output? = null,
    public val authLoginUserpass: Output? = null,
    public val caCertDir: Output? = null,
    public val caCertFile: Output? = null,
    @Deprecated(
        message = """
  Use auth_login_cert instead
  """,
    )
    public val clientAuth: Output? = null,
    public val headers: Output>? = null,
    public val maxLeaseTtlSeconds: Output? = null,
    public val maxRetries: Output? = null,
    public val maxRetriesCcc: Output? = null,
    public val namespace: Output? = null,
    public val setNamespaceFromToken: Output? = null,
    public val skipChildToken: Output? = null,
    public val skipGetVaultVersion: Output? = null,
    public val skipTlsVerify: Output? = null,
    public val tlsServerName: Output? = null,
    public val token: Output? = null,
    public val tokenName: Output? = null,
    public val vaultVersionOverride: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.vault.ProviderArgs = com.pulumi.vault.ProviderArgs.builder()
        .addAddressToEnv(addAddressToEnv?.applyValue({ args0 -> args0 }))
        .address(address?.applyValue({ args0 -> args0 }))
        .authLogin(authLogin?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginAws(authLoginAws?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginAzure(authLoginAzure?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginCert(authLoginCert?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginGcp(authLoginGcp?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginJwt(authLoginJwt?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginKerberos(authLoginKerberos?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginOci(authLoginOci?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginOidc(authLoginOidc?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginRadius(authLoginRadius?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .authLoginTokenFile(
            authLoginTokenFile?.applyValue({ args0 ->
                args0.let({ args0 ->
                    args0.toJava()
                })
            }),
        )
        .authLoginUserpass(authLoginUserpass?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .caCertDir(caCertDir?.applyValue({ args0 -> args0 }))
        .caCertFile(caCertFile?.applyValue({ args0 -> args0 }))
        .clientAuth(clientAuth?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .headers(
            headers?.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                })
            }),
        )
        .maxLeaseTtlSeconds(maxLeaseTtlSeconds?.applyValue({ args0 -> args0 }))
        .maxRetries(maxRetries?.applyValue({ args0 -> args0 }))
        .maxRetriesCcc(maxRetriesCcc?.applyValue({ args0 -> args0 }))
        .namespace(namespace?.applyValue({ args0 -> args0 }))
        .setNamespaceFromToken(setNamespaceFromToken?.applyValue({ args0 -> args0 }))
        .skipChildToken(skipChildToken?.applyValue({ args0 -> args0 }))
        .skipGetVaultVersion(skipGetVaultVersion?.applyValue({ args0 -> args0 }))
        .skipTlsVerify(skipTlsVerify?.applyValue({ args0 -> args0 }))
        .tlsServerName(tlsServerName?.applyValue({ args0 -> args0 }))
        .token(token?.applyValue({ args0 -> args0 }))
        .tokenName(tokenName?.applyValue({ args0 -> args0 }))
        .vaultVersionOverride(vaultVersionOverride?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ProviderArgs].
 */
@PulumiTagMarker
public class ProviderArgsBuilder internal constructor() {
    private var addAddressToEnv: Output? = null

    private var address: Output? = null

    private var authLogin: Output? = null

    private var authLoginAws: Output? = null

    private var authLoginAzure: Output? = null

    private var authLoginCert: Output? = null

    private var authLoginGcp: Output? = null

    private var authLoginJwt: Output? = null

    private var authLoginKerberos: Output? = null

    private var authLoginOci: Output? = null

    private var authLoginOidc: Output? = null

    private var authLoginRadius: Output? = null

    private var authLoginTokenFile: Output? = null

    private var authLoginUserpass: Output? = null

    private var caCertDir: Output? = null

    private var caCertFile: Output? = null

    private var clientAuth: Output? = null

    private var headers: Output>? = null

    private var maxLeaseTtlSeconds: Output? = null

    private var maxRetries: Output? = null

    private var maxRetriesCcc: Output? = null

    private var namespace: Output? = null

    private var setNamespaceFromToken: Output? = null

    private var skipChildToken: Output? = null

    private var skipGetVaultVersion: Output? = null

    private var skipTlsVerify: Output? = null

    private var tlsServerName: Output? = null

    private var token: Output? = null

    private var tokenName: Output? = null

    private var vaultVersionOverride: Output? = null

    /**
     * @param value
     */
    @JvmName("vqmhaxqcuuwkmwxx")
    public suspend fun addAddressToEnv(`value`: Output) {
        this.addAddressToEnv = value
    }

    /**
     * @param value URL of the root of the target Vault server.
     */
    @JvmName("ubvqsapplsnblitj")
    public suspend fun address(`value`: Output) {
        this.address = value
    }

    /**
     * @param value Login to vault with an existing auth method using auth//login
     */
    @JvmName("ckyqppqbggrvvnha")
    public suspend fun authLogin(`value`: Output) {
        this.authLogin = value
    }

    /**
     * @param value Login to vault using the AWS method
     */
    @JvmName("rwbcnlpooxsphvcl")
    public suspend fun authLoginAws(`value`: Output) {
        this.authLoginAws = value
    }

    /**
     * @param value Login to vault using the azure method
     */
    @JvmName("hrqvlmuwkmaltuwy")
    public suspend fun authLoginAzure(`value`: Output) {
        this.authLoginAzure = value
    }

    /**
     * @param value Login to vault using the cert method
     */
    @JvmName("slyunixturptlrxs")
    public suspend fun authLoginCert(`value`: Output) {
        this.authLoginCert = value
    }

    /**
     * @param value Login to vault using the gcp method
     */
    @JvmName("yxiccxshwjvjuohr")
    public suspend fun authLoginGcp(`value`: Output) {
        this.authLoginGcp = value
    }

    /**
     * @param value Login to vault using the jwt method
     */
    @JvmName("jqkoatbmoilefchu")
    public suspend fun authLoginJwt(`value`: Output) {
        this.authLoginJwt = value
    }

    /**
     * @param value Login to vault using the kerberos method
     */
    @JvmName("puoekwonsbidvcpc")
    public suspend fun authLoginKerberos(`value`: Output) {
        this.authLoginKerberos = value
    }

    /**
     * @param value Login to vault using the OCI method
     */
    @JvmName("vvixrceqjgltosrp")
    public suspend fun authLoginOci(`value`: Output) {
        this.authLoginOci = value
    }

    /**
     * @param value Login to vault using the oidc method
     */
    @JvmName("luajhcwefxblodfw")
    public suspend fun authLoginOidc(`value`: Output) {
        this.authLoginOidc = value
    }

    /**
     * @param value Login to vault using the radius method
     */
    @JvmName("jnkqftjxfjcyiuuk")
    public suspend fun authLoginRadius(`value`: Output) {
        this.authLoginRadius = value
    }

    /**
     * @param value Login to vault using
     */
    @JvmName("iepmoqgyqwyekwhr")
    public suspend fun authLoginTokenFile(`value`: Output) {
        this.authLoginTokenFile = value
    }

    /**
     * @param value Login to vault using the userpass method
     */
    @JvmName("rsxdxhsnakmogyry")
    public suspend fun authLoginUserpass(`value`: Output) {
        this.authLoginUserpass = value
    }

    /**
     * @param value Path to directory containing CA certificate files to validate the server's certificate.
     */
    @JvmName("pascvcamjoajlxkg")
    public suspend fun caCertDir(`value`: Output) {
        this.caCertDir = value
    }

    /**
     * @param value Path to a CA certificate file to validate the server's certificate.
     */
    @JvmName("ngcfcnqthfbidfwc")
    public suspend fun caCertFile(`value`: Output) {
        this.caCertFile = value
    }

    /**
     * @param value Client authentication credentials.
     */
    @Deprecated(
        message = """
  Use auth_login_cert instead
  """,
    )
    @JvmName("efcmsnxlpxobchbf")
    public suspend fun clientAuth(`value`: Output) {
        this.clientAuth = value
    }

    /**
     * @param value The headers to send with each Vault request.
     */
    @JvmName("sxcfuasptojelcuh")
    public suspend fun headers(`value`: Output>) {
        this.headers = value
    }

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

    /**
     * @param values The headers to send with each Vault request.
     */
    @JvmName("frodifodjqcgsugj")
    public suspend fun headers(values: List>) {
        this.headers = Output.all(values)
    }

    /**
     * @param value Maximum TTL for secret leases requested by this provider.
     */
    @JvmName("qnbutgchcrnmwpov")
    public suspend fun maxLeaseTtlSeconds(`value`: Output) {
        this.maxLeaseTtlSeconds = value
    }

    /**
     * @param value Maximum number of retries when a 5xx error code is encountered.
     */
    @JvmName("aqcndvighpvwpeho")
    public suspend fun maxRetries(`value`: Output) {
        this.maxRetries = value
    }

    /**
     * @param value Maximum number of retries for Client Controlled Consistency related operations
     */
    @JvmName("gfinuxcfhekwaccm")
    public suspend fun maxRetriesCcc(`value`: Output) {
        this.maxRetriesCcc = value
    }

    /**
     * @param value The namespace to use. Available only for Vault Enterprise.
     */
    @JvmName("hcucrvbvynlngpmf")
    public suspend fun namespace(`value`: Output) {
        this.namespace = value
    }

    /**
     * @param value In the case where the Vault token is for a specific namespace and the provider namespace is not configured, use the
     * token namespace as the root namespace for all resources.
     */
    @JvmName("jwljrowftwguekiy")
    public suspend fun setNamespaceFromToken(`value`: Output) {
        this.setNamespaceFromToken = value
    }

    /**
     * @param value Set this to true to prevent the creation of ephemeral child token used by this provider.
     */
    @JvmName("wrdhfjnyinpjbvne")
    public suspend fun skipChildToken(`value`: Output) {
        this.skipChildToken = value
    }

    /**
     * @param value Skip the dynamic fetching of the Vault server version.
     */
    @JvmName("bobxyldtowvoxcxj")
    public suspend fun skipGetVaultVersion(`value`: Output) {
        this.skipGetVaultVersion = value
    }

    /**
     * @param value Set this to true only if the target Vault server is an insecure development instance.
     */
    @JvmName("wylkewytdqerlmdo")
    public suspend fun skipTlsVerify(`value`: Output) {
        this.skipTlsVerify = value
    }

    /**
     * @param value Name to use as the SNI host when connecting via TLS.
     */
    @JvmName("ckscpvqajewogpbu")
    public suspend fun tlsServerName(`value`: Output) {
        this.tlsServerName = value
    }

    /**
     * @param value Token to use to authenticate to Vault.
     */
    @JvmName("olpgojplummwbfwe")
    public suspend fun token(`value`: Output) {
        this.token = value
    }

    /**
     * @param value Token name to use for creating the Vault child token.
     */
    @JvmName("ttirnbdkyaidctgn")
    public suspend fun tokenName(`value`: Output) {
        this.tokenName = value
    }

    /**
     * @param value Override the Vault server version, which is normally determined dynamically from the target Vault server
     */
    @JvmName("kephwhmnqxqpkliw")
    public suspend fun vaultVersionOverride(`value`: Output) {
        this.vaultVersionOverride = value
    }

    /**
     * @param value
     */
    @JvmName("ailuhindhayrdjqh")
    public suspend fun addAddressToEnv(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.addAddressToEnv = mapped
    }

    /**
     * @param value URL of the root of the target Vault server.
     */
    @JvmName("tojdrqlsfoqlquar")
    public suspend fun address(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.address = mapped
    }

    /**
     * @param value Login to vault with an existing auth method using auth//login
     */
    @JvmName("pqxtwpgymgjdlhvd")
    public suspend fun authLogin(`value`: ProviderAuthLoginArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLogin = mapped
    }

    /**
     * @param argument Login to vault with an existing auth method using auth//login
     */
    @JvmName("cwouwtaeuqleorjo")
    public suspend fun authLogin(argument: suspend ProviderAuthLoginArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLogin = mapped
    }

    /**
     * @param value Login to vault using the AWS method
     */
    @JvmName("ewatrktuublbgeye")
    public suspend fun authLoginAws(`value`: ProviderAuthLoginAwsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginAws = mapped
    }

    /**
     * @param argument Login to vault using the AWS method
     */
    @JvmName("kkungykckhooauai")
    public suspend fun authLoginAws(argument: suspend ProviderAuthLoginAwsArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginAwsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginAws = mapped
    }

    /**
     * @param value Login to vault using the azure method
     */
    @JvmName("dbsrxcjfpvafkteq")
    public suspend fun authLoginAzure(`value`: ProviderAuthLoginAzureArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginAzure = mapped
    }

    /**
     * @param argument Login to vault using the azure method
     */
    @JvmName("htohesrgiecqwmpj")
    public suspend fun authLoginAzure(argument: suspend ProviderAuthLoginAzureArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginAzureArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginAzure = mapped
    }

    /**
     * @param value Login to vault using the cert method
     */
    @JvmName("nfwwoqykueiblsdy")
    public suspend fun authLoginCert(`value`: ProviderAuthLoginCertArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginCert = mapped
    }

    /**
     * @param argument Login to vault using the cert method
     */
    @JvmName("dydodxqsresvrybx")
    public suspend fun authLoginCert(argument: suspend ProviderAuthLoginCertArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginCertArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginCert = mapped
    }

    /**
     * @param value Login to vault using the gcp method
     */
    @JvmName("fjmpjloikoucwhmx")
    public suspend fun authLoginGcp(`value`: ProviderAuthLoginGcpArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginGcp = mapped
    }

    /**
     * @param argument Login to vault using the gcp method
     */
    @JvmName("yyljjwqfrhcrpars")
    public suspend fun authLoginGcp(argument: suspend ProviderAuthLoginGcpArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginGcpArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginGcp = mapped
    }

    /**
     * @param value Login to vault using the jwt method
     */
    @JvmName("wjuounuaylybness")
    public suspend fun authLoginJwt(`value`: ProviderAuthLoginJwtArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginJwt = mapped
    }

    /**
     * @param argument Login to vault using the jwt method
     */
    @JvmName("acdaipktifusavpi")
    public suspend fun authLoginJwt(argument: suspend ProviderAuthLoginJwtArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginJwtArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginJwt = mapped
    }

    /**
     * @param value Login to vault using the kerberos method
     */
    @JvmName("idxxntohnusfuchv")
    public suspend fun authLoginKerberos(`value`: ProviderAuthLoginKerberosArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginKerberos = mapped
    }

    /**
     * @param argument Login to vault using the kerberos method
     */
    @JvmName("kvvyqsmymshcklta")
    public suspend fun authLoginKerberos(argument: suspend ProviderAuthLoginKerberosArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginKerberosArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginKerberos = mapped
    }

    /**
     * @param value Login to vault using the OCI method
     */
    @JvmName("fniqbmulpbxgeulg")
    public suspend fun authLoginOci(`value`: ProviderAuthLoginOciArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginOci = mapped
    }

    /**
     * @param argument Login to vault using the OCI method
     */
    @JvmName("ndwqpdyqfyagspqn")
    public suspend fun authLoginOci(argument: suspend ProviderAuthLoginOciArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginOciArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginOci = mapped
    }

    /**
     * @param value Login to vault using the oidc method
     */
    @JvmName("rlvqxhmgdntxoyfy")
    public suspend fun authLoginOidc(`value`: ProviderAuthLoginOidcArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginOidc = mapped
    }

    /**
     * @param argument Login to vault using the oidc method
     */
    @JvmName("amuhnwuvphpcchsd")
    public suspend fun authLoginOidc(argument: suspend ProviderAuthLoginOidcArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginOidcArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginOidc = mapped
    }

    /**
     * @param value Login to vault using the radius method
     */
    @JvmName("vneusmcthkgrltau")
    public suspend fun authLoginRadius(`value`: ProviderAuthLoginRadiusArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginRadius = mapped
    }

    /**
     * @param argument Login to vault using the radius method
     */
    @JvmName("orsfxntlilibgqve")
    public suspend fun authLoginRadius(argument: suspend ProviderAuthLoginRadiusArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginRadiusArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginRadius = mapped
    }

    /**
     * @param value Login to vault using
     */
    @JvmName("lsgqqwhsadyeejoo")
    public suspend fun authLoginTokenFile(`value`: ProviderAuthLoginTokenFileArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginTokenFile = mapped
    }

    /**
     * @param argument Login to vault using
     */
    @JvmName("viufiirdyuudrxlh")
    public suspend fun authLoginTokenFile(argument: suspend ProviderAuthLoginTokenFileArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginTokenFileArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginTokenFile = mapped
    }

    /**
     * @param value Login to vault using the userpass method
     */
    @JvmName("qnjvrrgxrtikrqui")
    public suspend fun authLoginUserpass(`value`: ProviderAuthLoginUserpassArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authLoginUserpass = mapped
    }

    /**
     * @param argument Login to vault using the userpass method
     */
    @JvmName("xhbvjvrneyyjgilg")
    public suspend fun authLoginUserpass(argument: suspend ProviderAuthLoginUserpassArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderAuthLoginUserpassArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.authLoginUserpass = mapped
    }

    /**
     * @param value Path to directory containing CA certificate files to validate the server's certificate.
     */
    @JvmName("tkmhvlkjhsdihkkb")
    public suspend fun caCertDir(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.caCertDir = mapped
    }

    /**
     * @param value Path to a CA certificate file to validate the server's certificate.
     */
    @JvmName("styipgphisyucjao")
    public suspend fun caCertFile(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.caCertFile = mapped
    }

    /**
     * @param value Client authentication credentials.
     */
    @Deprecated(
        message = """
  Use auth_login_cert instead
  """,
    )
    @JvmName("bnmqjxjtvruuyxmo")
    public suspend fun clientAuth(`value`: ProviderClientAuthArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientAuth = mapped
    }

    /**
     * @param argument Client authentication credentials.
     */
    @Deprecated(
        message = """
  Use auth_login_cert instead
  """,
    )
    @JvmName("akchwaffavhkuokb")
    public suspend fun clientAuth(argument: suspend ProviderClientAuthArgsBuilder.() -> Unit) {
        val toBeMapped = ProviderClientAuthArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.clientAuth = mapped
    }

    /**
     * @param value The headers to send with each Vault request.
     */
    @JvmName("cpoqfekkwixrbchu")
    public suspend fun headers(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.headers = mapped
    }

    /**
     * @param argument The headers to send with each Vault request.
     */
    @JvmName("basqfgnpppsutpgs")
    public suspend fun headers(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ProviderHeaderArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.headers = mapped
    }

    /**
     * @param argument The headers to send with each Vault request.
     */
    @JvmName("moohutaejgxjrjds")
    public suspend fun headers(vararg argument: suspend ProviderHeaderArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ProviderHeaderArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.headers = mapped
    }

    /**
     * @param argument The headers to send with each Vault request.
     */
    @JvmName("mhraphxpixpqavvb")
    public suspend fun headers(argument: suspend ProviderHeaderArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ProviderHeaderArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.headers = mapped
    }

    /**
     * @param values The headers to send with each Vault request.
     */
    @JvmName("jdanabcwxfxjsbvs")
    public suspend fun headers(vararg values: ProviderHeaderArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.headers = mapped
    }

    /**
     * @param value Maximum TTL for secret leases requested by this provider.
     */
    @JvmName("xayaohvpmnbkhpmj")
    public suspend fun maxLeaseTtlSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxLeaseTtlSeconds = mapped
    }

    /**
     * @param value Maximum number of retries when a 5xx error code is encountered.
     */
    @JvmName("wjmxtmarnrmxbpcv")
    public suspend fun maxRetries(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxRetries = mapped
    }

    /**
     * @param value Maximum number of retries for Client Controlled Consistency related operations
     */
    @JvmName("sciwgeiagnqafqhw")
    public suspend fun maxRetriesCcc(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxRetriesCcc = mapped
    }

    /**
     * @param value The namespace to use. Available only for Vault Enterprise.
     */
    @JvmName("vmysmvpvhjgxmdaj")
    public suspend fun namespace(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespace = mapped
    }

    /**
     * @param value In the case where the Vault token is for a specific namespace and the provider namespace is not configured, use the
     * token namespace as the root namespace for all resources.
     */
    @JvmName("ynbwgrbuvvjokcjq")
    public suspend fun setNamespaceFromToken(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.setNamespaceFromToken = mapped
    }

    /**
     * @param value Set this to true to prevent the creation of ephemeral child token used by this provider.
     */
    @JvmName("hlidpcawuxvjdmkd")
    public suspend fun skipChildToken(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipChildToken = mapped
    }

    /**
     * @param value Skip the dynamic fetching of the Vault server version.
     */
    @JvmName("dbgfvcvcugebuafm")
    public suspend fun skipGetVaultVersion(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipGetVaultVersion = mapped
    }

    /**
     * @param value Set this to true only if the target Vault server is an insecure development instance.
     */
    @JvmName("jidahvfadmxdwhbn")
    public suspend fun skipTlsVerify(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipTlsVerify = mapped
    }

    /**
     * @param value Name to use as the SNI host when connecting via TLS.
     */
    @JvmName("fajyfhoowwunkerp")
    public suspend fun tlsServerName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tlsServerName = mapped
    }

    /**
     * @param value Token to use to authenticate to Vault.
     */
    @JvmName("yaayktvirwmrffhy")
    public suspend fun token(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.token = mapped
    }

    /**
     * @param value Token name to use for creating the Vault child token.
     */
    @JvmName("tpqflrpkxumolsyu")
    public suspend fun tokenName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tokenName = mapped
    }

    /**
     * @param value Override the Vault server version, which is normally determined dynamically from the target Vault server
     */
    @JvmName("rptfqhfqcovgdhis")
    public suspend fun vaultVersionOverride(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vaultVersionOverride = mapped
    }

    internal fun build(): ProviderArgs = ProviderArgs(
        addAddressToEnv = addAddressToEnv,
        address = address,
        authLogin = authLogin,
        authLoginAws = authLoginAws,
        authLoginAzure = authLoginAzure,
        authLoginCert = authLoginCert,
        authLoginGcp = authLoginGcp,
        authLoginJwt = authLoginJwt,
        authLoginKerberos = authLoginKerberos,
        authLoginOci = authLoginOci,
        authLoginOidc = authLoginOidc,
        authLoginRadius = authLoginRadius,
        authLoginTokenFile = authLoginTokenFile,
        authLoginUserpass = authLoginUserpass,
        caCertDir = caCertDir,
        caCertFile = caCertFile,
        clientAuth = clientAuth,
        headers = headers,
        maxLeaseTtlSeconds = maxLeaseTtlSeconds,
        maxRetries = maxRetries,
        maxRetriesCcc = maxRetriesCcc,
        namespace = namespace,
        setNamespaceFromToken = setNamespaceFromToken,
        skipChildToken = skipChildToken,
        skipGetVaultVersion = skipGetVaultVersion,
        skipTlsVerify = skipTlsVerify,
        tlsServerName = tlsServerName,
        token = token,
        tokenName = tokenName,
        vaultVersionOverride = vaultVersionOverride,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy