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

com.pulumi.gcp.gkeonprem.kotlin.inputs.BareMetalClusterStorageArgs.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.gkeonprem.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property lvpNodeMountsConfig Specifies the config for local PersistentVolumes backed
 * by mounted node disks. These disks need to be formatted and mounted by the
 * user, which can be done before or after cluster creation.
 * Structure is documented below.
 * @property lvpShareConfig Specifies the config for local PersistentVolumes backed by
 * subdirectories in a shared filesystem. These subdirectores are
 * automatically created during cluster creation.
 * Structure is documented below.
 */
public data class BareMetalClusterStorageArgs(
    public val lvpNodeMountsConfig: Output,
    public val lvpShareConfig: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageArgs =
        com.pulumi.gcp.gkeonprem.inputs.BareMetalClusterStorageArgs.builder()
            .lvpNodeMountsConfig(
                lvpNodeMountsConfig.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .lvpShareConfig(
                lvpShareConfig.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [BareMetalClusterStorageArgs].
 */
@PulumiTagMarker
public class BareMetalClusterStorageArgsBuilder internal constructor() {
    private var lvpNodeMountsConfig: Output? = null

    private var lvpShareConfig: Output? = null

    /**
     * @param value Specifies the config for local PersistentVolumes backed
     * by mounted node disks. These disks need to be formatted and mounted by the
     * user, which can be done before or after cluster creation.
     * Structure is documented below.
     */
    @JvmName("ubgjeyqlsncplbup")
    public suspend fun lvpNodeMountsConfig(`value`: Output) {
        this.lvpNodeMountsConfig = value
    }

    /**
     * @param value Specifies the config for local PersistentVolumes backed by
     * subdirectories in a shared filesystem. These subdirectores are
     * automatically created during cluster creation.
     * Structure is documented below.
     */
    @JvmName("psggakndtluqwdot")
    public suspend fun lvpShareConfig(`value`: Output) {
        this.lvpShareConfig = value
    }

    /**
     * @param value Specifies the config for local PersistentVolumes backed
     * by mounted node disks. These disks need to be formatted and mounted by the
     * user, which can be done before or after cluster creation.
     * Structure is documented below.
     */
    @JvmName("dedemmypwhxmtuoj")
    public suspend fun lvpNodeMountsConfig(`value`: BareMetalClusterStorageLvpNodeMountsConfigArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.lvpNodeMountsConfig = mapped
    }

    /**
     * @param argument Specifies the config for local PersistentVolumes backed
     * by mounted node disks. These disks need to be formatted and mounted by the
     * user, which can be done before or after cluster creation.
     * Structure is documented below.
     */
    @JvmName("epghleqdvwimctwh")
    public suspend fun lvpNodeMountsConfig(argument: suspend BareMetalClusterStorageLvpNodeMountsConfigArgsBuilder.() -> Unit) {
        val toBeMapped = BareMetalClusterStorageLvpNodeMountsConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.lvpNodeMountsConfig = mapped
    }

    /**
     * @param value Specifies the config for local PersistentVolumes backed by
     * subdirectories in a shared filesystem. These subdirectores are
     * automatically created during cluster creation.
     * Structure is documented below.
     */
    @JvmName("cxryifeqhyugidrj")
    public suspend fun lvpShareConfig(`value`: BareMetalClusterStorageLvpShareConfigArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.lvpShareConfig = mapped
    }

    /**
     * @param argument Specifies the config for local PersistentVolumes backed by
     * subdirectories in a shared filesystem. These subdirectores are
     * automatically created during cluster creation.
     * Structure is documented below.
     */
    @JvmName("xgujdwrbbejjekkq")
    public suspend fun lvpShareConfig(argument: suspend BareMetalClusterStorageLvpShareConfigArgsBuilder.() -> Unit) {
        val toBeMapped = BareMetalClusterStorageLvpShareConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.lvpShareConfig = mapped
    }

    internal fun build(): BareMetalClusterStorageArgs = BareMetalClusterStorageArgs(
        lvpNodeMountsConfig = lvpNodeMountsConfig ?: throw PulumiNullFieldException("lvpNodeMountsConfig"),
        lvpShareConfig = lvpShareConfig ?: throw PulumiNullFieldException("lvpShareConfig"),
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy