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

com.pulumi.azure.containerservice.kotlin.inputs.GroupContainerVolumeArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.containerservice.kotlin.inputs

import com.pulumi.azure.containerservice.inputs.GroupContainerVolumeArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property emptyDir Boolean as to whether the mounted volume should be an empty directory. Defaults to `false`. Changing this forces a new resource to be created.
 * @property gitRepo A `git_repo` block as defined below. Changing this forces a new resource to be created.
 * @property mountPath The path on which this volume is to be mounted. Changing this forces a new resource to be created.
 * @property name The name of the volume mount. Changing this forces a new resource to be created.
 * @property readOnly Specify if the volume is to be mounted as read only or not. The default value is `false`. Changing this forces a new resource to be created.
 * @property secret A map of secrets that will be mounted as files in the volume. Changing this forces a new resource to be created.
 * > **Note:** Exactly one of `empty_dir` volume, `git_repo` volume, `secret` volume or storage account volume (`share_name`, `storage_account_name`, and `storage_account_key`) must be specified.
 * > **Note** when using a storage account volume, all of `share_name`, `storage_account_name`, and `storage_account_key` must be specified.
 * > **Note:** The secret values must be supplied as Base64 encoded strings. The secret values are decoded to their original values when mounted in the volume on the container.
 * @property shareName The Azure storage share that is to be mounted as a volume. This must be created on the storage account specified as above. Changing this forces a new resource to be created.
 * @property storageAccountKey The access key for the Azure Storage account specified as above. Changing this forces a new resource to be created.
 * @property storageAccountName The Azure storage account from which the volume is to be mounted. Changing this forces a new resource to be created.
 */
public data class GroupContainerVolumeArgs(
    public val emptyDir: Output? = null,
    public val gitRepo: Output? = null,
    public val mountPath: Output,
    public val name: Output,
    public val readOnly: Output? = null,
    public val secret: Output>? = null,
    public val shareName: Output? = null,
    public val storageAccountKey: Output? = null,
    public val storageAccountName: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.containerservice.inputs.GroupContainerVolumeArgs =
        com.pulumi.azure.containerservice.inputs.GroupContainerVolumeArgs.builder()
            .emptyDir(emptyDir?.applyValue({ args0 -> args0 }))
            .gitRepo(gitRepo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .mountPath(mountPath.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .readOnly(readOnly?.applyValue({ args0 -> args0 }))
            .secret(secret?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .shareName(shareName?.applyValue({ args0 -> args0 }))
            .storageAccountKey(storageAccountKey?.applyValue({ args0 -> args0 }))
            .storageAccountName(storageAccountName?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [GroupContainerVolumeArgs].
 */
@PulumiTagMarker
public class GroupContainerVolumeArgsBuilder internal constructor() {
    private var emptyDir: Output? = null

    private var gitRepo: Output? = null

    private var mountPath: Output? = null

    private var name: Output? = null

    private var readOnly: Output? = null

    private var secret: Output>? = null

    private var shareName: Output? = null

    private var storageAccountKey: Output? = null

    private var storageAccountName: Output? = null

    /**
     * @param value Boolean as to whether the mounted volume should be an empty directory. Defaults to `false`. Changing this forces a new resource to be created.
     */
    @JvmName("dvvqmxwbwnhfbqco")
    public suspend fun emptyDir(`value`: Output) {
        this.emptyDir = value
    }

    /**
     * @param value A `git_repo` block as defined below. Changing this forces a new resource to be created.
     */
    @JvmName("vqalbhfhivsjpeej")
    public suspend fun gitRepo(`value`: Output) {
        this.gitRepo = value
    }

    /**
     * @param value The path on which this volume is to be mounted. Changing this forces a new resource to be created.
     */
    @JvmName("ftlbrgijsmvqimja")
    public suspend fun mountPath(`value`: Output) {
        this.mountPath = value
    }

    /**
     * @param value The name of the volume mount. Changing this forces a new resource to be created.
     */
    @JvmName("brtqsuuncjkqouph")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Specify if the volume is to be mounted as read only or not. The default value is `false`. Changing this forces a new resource to be created.
     */
    @JvmName("cuyewlwosqbkgplr")
    public suspend fun readOnly(`value`: Output) {
        this.readOnly = value
    }

    /**
     * @param value A map of secrets that will be mounted as files in the volume. Changing this forces a new resource to be created.
     * > **Note:** Exactly one of `empty_dir` volume, `git_repo` volume, `secret` volume or storage account volume (`share_name`, `storage_account_name`, and `storage_account_key`) must be specified.
     * > **Note** when using a storage account volume, all of `share_name`, `storage_account_name`, and `storage_account_key` must be specified.
     * > **Note:** The secret values must be supplied as Base64 encoded strings. The secret values are decoded to their original values when mounted in the volume on the container.
     */
    @JvmName("dnprmqhephdcoqgu")
    public suspend fun secret(`value`: Output>) {
        this.secret = value
    }

    /**
     * @param value The Azure storage share that is to be mounted as a volume. This must be created on the storage account specified as above. Changing this forces a new resource to be created.
     */
    @JvmName("skesgobjxyvcwush")
    public suspend fun shareName(`value`: Output) {
        this.shareName = value
    }

    /**
     * @param value The access key for the Azure Storage account specified as above. Changing this forces a new resource to be created.
     */
    @JvmName("tgybvijiaslmaetk")
    public suspend fun storageAccountKey(`value`: Output) {
        this.storageAccountKey = value
    }

    /**
     * @param value The Azure storage account from which the volume is to be mounted. Changing this forces a new resource to be created.
     */
    @JvmName("qxjnkqgfkvaaetdl")
    public suspend fun storageAccountName(`value`: Output) {
        this.storageAccountName = value
    }

    /**
     * @param value Boolean as to whether the mounted volume should be an empty directory. Defaults to `false`. Changing this forces a new resource to be created.
     */
    @JvmName("ctanprfvwjiyvyup")
    public suspend fun emptyDir(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.emptyDir = mapped
    }

    /**
     * @param value A `git_repo` block as defined below. Changing this forces a new resource to be created.
     */
    @JvmName("dfwcrrysotynxuxy")
    public suspend fun gitRepo(`value`: GroupContainerVolumeGitRepoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gitRepo = mapped
    }

    /**
     * @param argument A `git_repo` block as defined below. Changing this forces a new resource to be created.
     */
    @JvmName("nhqeywjhcqptdwlf")
    public suspend fun gitRepo(argument: suspend GroupContainerVolumeGitRepoArgsBuilder.() -> Unit) {
        val toBeMapped = GroupContainerVolumeGitRepoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.gitRepo = mapped
    }

    /**
     * @param value The path on which this volume is to be mounted. Changing this forces a new resource to be created.
     */
    @JvmName("btpoofruwwmcdtph")
    public suspend fun mountPath(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.mountPath = mapped
    }

    /**
     * @param value The name of the volume mount. Changing this forces a new resource to be created.
     */
    @JvmName("baxhnidshskunvvo")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Specify if the volume is to be mounted as read only or not. The default value is `false`. Changing this forces a new resource to be created.
     */
    @JvmName("jsdfjomobeypgxhc")
    public suspend fun readOnly(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.readOnly = mapped
    }

    /**
     * @param value A map of secrets that will be mounted as files in the volume. Changing this forces a new resource to be created.
     * > **Note:** Exactly one of `empty_dir` volume, `git_repo` volume, `secret` volume or storage account volume (`share_name`, `storage_account_name`, and `storage_account_key`) must be specified.
     * > **Note** when using a storage account volume, all of `share_name`, `storage_account_name`, and `storage_account_key` must be specified.
     * > **Note:** The secret values must be supplied as Base64 encoded strings. The secret values are decoded to their original values when mounted in the volume on the container.
     */
    @JvmName("ydkbwmgdshnrvtbc")
    public suspend fun secret(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secret = mapped
    }

    /**
     * @param values A map of secrets that will be mounted as files in the volume. Changing this forces a new resource to be created.
     * > **Note:** Exactly one of `empty_dir` volume, `git_repo` volume, `secret` volume or storage account volume (`share_name`, `storage_account_name`, and `storage_account_key`) must be specified.
     * > **Note** when using a storage account volume, all of `share_name`, `storage_account_name`, and `storage_account_key` must be specified.
     * > **Note:** The secret values must be supplied as Base64 encoded strings. The secret values are decoded to their original values when mounted in the volume on the container.
     */
    @JvmName("bbvqagvmeaayacnu")
    public fun secret(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secret = mapped
    }

    /**
     * @param value The Azure storage share that is to be mounted as a volume. This must be created on the storage account specified as above. Changing this forces a new resource to be created.
     */
    @JvmName("wioglerqnyuadqec")
    public suspend fun shareName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shareName = mapped
    }

    /**
     * @param value The access key for the Azure Storage account specified as above. Changing this forces a new resource to be created.
     */
    @JvmName("nmxmrgrccirhmcqu")
    public suspend fun storageAccountKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageAccountKey = mapped
    }

    /**
     * @param value The Azure storage account from which the volume is to be mounted. Changing this forces a new resource to be created.
     */
    @JvmName("qqxedgmtrgicbmmv")
    public suspend fun storageAccountName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageAccountName = mapped
    }

    internal fun build(): GroupContainerVolumeArgs = GroupContainerVolumeArgs(
        emptyDir = emptyDir,
        gitRepo = gitRepo,
        mountPath = mountPath ?: throw PulumiNullFieldException("mountPath"),
        name = name ?: throw PulumiNullFieldException("name"),
        readOnly = readOnly,
        secret = secret,
        shareName = shareName,
        storageAccountKey = storageAccountKey,
        storageAccountName = storageAccountName,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy