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

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

package com.pulumi.gcp.workbench.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
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.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property acceleratorConfigs The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
 * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
 * Currently supports only one accelerator configuration.
 * Structure is documented below.
 * @property bootDisk The definition of a boot disk.
 * Structure is documented below.
 * @property containerImage Use a container image to start the workbench instance.
 * Structure is documented below.
 * @property dataDisks Data disks attached to the VM instance. Currently supports only one data disk.
 * Structure is documented below.
 * @property disablePublicIp Optional. If true, no external IP will be assigned to this VM instance.
 * @property enableIpForwarding Optional. Flag to enable ip forwarding or not, default false/off.
 * https://cloud.google.com/vpc/docs/using-routes#canipforward
 * @property machineType Optional. The machine type of the VM instance. https://cloud.google.com/compute/docs/machine-resource
 * @property metadata Optional. Custom metadata to apply to this instance.
 * @property networkInterfaces The network interfaces for the VM. Supports only one interface.
 * Structure is documented below.
 * @property serviceAccounts The service account that serves as an identity for the VM instance. Currently supports only one service account.
 * Structure is documented below.
 * @property shieldedInstanceConfig A set of Shielded Instance options. See [Images using supported Shielded
 * VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
 * Not all combinations are valid.
 * Structure is documented below.
 * @property tags Optional. The Compute Engine tags to add to instance (see [Tagging
 * instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
 * @property vmImage Definition of a custom Compute Engine virtual machine image for starting
 * a workbench instance with the environment installed directly on the VM.
 * Structure is documented below.
 */
public data class InstanceGceSetupArgs(
    public val acceleratorConfigs: Output>? = null,
    public val bootDisk: Output? = null,
    public val containerImage: Output? = null,
    public val dataDisks: Output? = null,
    public val disablePublicIp: Output? = null,
    public val enableIpForwarding: Output? = null,
    public val machineType: Output? = null,
    public val metadata: Output>? = null,
    public val networkInterfaces: Output>? = null,
    public val serviceAccounts: Output>? = null,
    public val shieldedInstanceConfig: Output? = null,
    public val tags: Output>? = null,
    public val vmImage: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs =
        com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs.builder()
            .acceleratorConfigs(
                acceleratorConfigs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .bootDisk(bootDisk?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .containerImage(containerImage?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dataDisks(dataDisks?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .disablePublicIp(disablePublicIp?.applyValue({ args0 -> args0 }))
            .enableIpForwarding(enableIpForwarding?.applyValue({ args0 -> args0 }))
            .machineType(machineType?.applyValue({ args0 -> args0 }))
            .metadata(
                metadata?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .networkInterfaces(
                networkInterfaces?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .serviceAccounts(
                serviceAccounts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .shieldedInstanceConfig(
                shieldedInstanceConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .vmImage(vmImage?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

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

    private var bootDisk: Output? = null

    private var containerImage: Output? = null

    private var dataDisks: Output? = null

    private var disablePublicIp: Output? = null

    private var enableIpForwarding: Output? = null

    private var machineType: Output? = null

    private var metadata: Output>? = null

    private var networkInterfaces: Output>? = null

    private var serviceAccounts: Output>? = null

    private var shieldedInstanceConfig: Output? = null

    private var tags: Output>? = null

    private var vmImage: Output? = null

    /**
     * @param value The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("rkqqpjiqyddbpfme")
    public suspend fun acceleratorConfigs(`value`: Output>) {
        this.acceleratorConfigs = value
    }

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

    /**
     * @param values The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("ohpgophiognulidr")
    public suspend fun acceleratorConfigs(values: List>) {
        this.acceleratorConfigs = Output.all(values)
    }

    /**
     * @param value The definition of a boot disk.
     * Structure is documented below.
     */
    @JvmName("uawwyqjrwmdwumiq")
    public suspend fun bootDisk(`value`: Output) {
        this.bootDisk = value
    }

    /**
     * @param value Use a container image to start the workbench instance.
     * Structure is documented below.
     */
    @JvmName("ewsiglblcnuoohcv")
    public suspend fun containerImage(`value`: Output) {
        this.containerImage = value
    }

    /**
     * @param value Data disks attached to the VM instance. Currently supports only one data disk.
     * Structure is documented below.
     */
    @JvmName("nckaulefjhelowje")
    public suspend fun dataDisks(`value`: Output) {
        this.dataDisks = value
    }

    /**
     * @param value Optional. If true, no external IP will be assigned to this VM instance.
     */
    @JvmName("pfgpaqbvvxrmpbwu")
    public suspend fun disablePublicIp(`value`: Output) {
        this.disablePublicIp = value
    }

    /**
     * @param value Optional. Flag to enable ip forwarding or not, default false/off.
     * https://cloud.google.com/vpc/docs/using-routes#canipforward
     */
    @JvmName("dtnqulecoueyrovm")
    public suspend fun enableIpForwarding(`value`: Output) {
        this.enableIpForwarding = value
    }

    /**
     * @param value Optional. The machine type of the VM instance. https://cloud.google.com/compute/docs/machine-resource
     */
    @JvmName("hkjrlmunlrtxudry")
    public suspend fun machineType(`value`: Output) {
        this.machineType = value
    }

    /**
     * @param value Optional. Custom metadata to apply to this instance.
     */
    @JvmName("ifewrxgomwocdyyc")
    public suspend fun metadata(`value`: Output>) {
        this.metadata = value
    }

    /**
     * @param value The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("jjstccqdsgbvepwd")
    public suspend fun networkInterfaces(`value`: Output>) {
        this.networkInterfaces = value
    }

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

    /**
     * @param values The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("yjjfjoqyvrlmwqhv")
    public suspend fun networkInterfaces(values: List>) {
        this.networkInterfaces = Output.all(values)
    }

    /**
     * @param value The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("doftsobsrgpngknk")
    public suspend fun serviceAccounts(`value`: Output>) {
        this.serviceAccounts = value
    }

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

    /**
     * @param values The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("yftjmdslkalxqjjk")
    public suspend fun serviceAccounts(values: List>) {
        this.serviceAccounts = Output.all(values)
    }

    /**
     * @param value A set of Shielded Instance options. See [Images using supported Shielded
   * VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
     * Not all combinations are valid.
     * Structure is documented below.
     */
    @JvmName("pmtoiyhthhstdyii")
    public suspend fun shieldedInstanceConfig(`value`: Output) {
        this.shieldedInstanceConfig = value
    }

    /**
     * @param value Optional. The Compute Engine tags to add to instance (see [Tagging
   * instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
     */
    @JvmName("ejmwrfbjjaiiicva")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values Optional. The Compute Engine tags to add to instance (see [Tagging
   * instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
     */
    @JvmName("ppcubwjxyqpscdbc")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Definition of a custom Compute Engine virtual machine image for starting
     * a workbench instance with the environment installed directly on the VM.
     * Structure is documented below.
     */
    @JvmName("tpohhosmdtkwqcdn")
    public suspend fun vmImage(`value`: Output) {
        this.vmImage = value
    }

    /**
     * @param value The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("rkwjyuyeqjadosxe")
    public suspend fun acceleratorConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acceleratorConfigs = mapped
    }

    /**
     * @param argument The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("mhovrnfngremgina")
    public suspend fun acceleratorConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            InstanceGceSetupAcceleratorConfigArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.acceleratorConfigs = mapped
    }

    /**
     * @param argument The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("eipivtacldkabifp")
    public suspend fun acceleratorConfigs(vararg argument: suspend InstanceGceSetupAcceleratorConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            InstanceGceSetupAcceleratorConfigArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.acceleratorConfigs = mapped
    }

    /**
     * @param argument The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("uikmgpldaubojsta")
    public suspend fun acceleratorConfigs(argument: suspend InstanceGceSetupAcceleratorConfigArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            InstanceGceSetupAcceleratorConfigArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.acceleratorConfigs = mapped
    }

    /**
     * @param values The hardware accelerators used on this instance. If you use accelerators, make sure that your configuration has
     * [enough vCPUs and memory to support the `machine_type` you have selected](https://cloud.google.com/compute/docs/gpus/#gpus-list).
     * Currently supports only one accelerator configuration.
     * Structure is documented below.
     */
    @JvmName("cqxijhdpxmplnbny")
    public suspend fun acceleratorConfigs(vararg values: InstanceGceSetupAcceleratorConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.acceleratorConfigs = mapped
    }

    /**
     * @param value The definition of a boot disk.
     * Structure is documented below.
     */
    @JvmName("ofdqilqkfliabqag")
    public suspend fun bootDisk(`value`: InstanceGceSetupBootDiskArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bootDisk = mapped
    }

    /**
     * @param argument The definition of a boot disk.
     * Structure is documented below.
     */
    @JvmName("bxohxmolqflkqjkt")
    public suspend fun bootDisk(argument: suspend InstanceGceSetupBootDiskArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceGceSetupBootDiskArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.bootDisk = mapped
    }

    /**
     * @param value Use a container image to start the workbench instance.
     * Structure is documented below.
     */
    @JvmName("xpbmqxppkilgxenl")
    public suspend fun containerImage(`value`: InstanceGceSetupContainerImageArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.containerImage = mapped
    }

    /**
     * @param argument Use a container image to start the workbench instance.
     * Structure is documented below.
     */
    @JvmName("opkmcasnmktgaimu")
    public suspend fun containerImage(argument: suspend InstanceGceSetupContainerImageArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceGceSetupContainerImageArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.containerImage = mapped
    }

    /**
     * @param value Data disks attached to the VM instance. Currently supports only one data disk.
     * Structure is documented below.
     */
    @JvmName("wkcldyvuyqluhpap")
    public suspend fun dataDisks(`value`: InstanceGceSetupDataDisksArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataDisks = mapped
    }

    /**
     * @param argument Data disks attached to the VM instance. Currently supports only one data disk.
     * Structure is documented below.
     */
    @JvmName("rviijvnmykevdjjk")
    public suspend fun dataDisks(argument: suspend InstanceGceSetupDataDisksArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceGceSetupDataDisksArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.dataDisks = mapped
    }

    /**
     * @param value Optional. If true, no external IP will be assigned to this VM instance.
     */
    @JvmName("iundvjcinjugjcpp")
    public suspend fun disablePublicIp(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disablePublicIp = mapped
    }

    /**
     * @param value Optional. Flag to enable ip forwarding or not, default false/off.
     * https://cloud.google.com/vpc/docs/using-routes#canipforward
     */
    @JvmName("lxudvrrlktksrfik")
    public suspend fun enableIpForwarding(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableIpForwarding = mapped
    }

    /**
     * @param value Optional. The machine type of the VM instance. https://cloud.google.com/compute/docs/machine-resource
     */
    @JvmName("tnqdtialhbvrpvmw")
    public suspend fun machineType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.machineType = mapped
    }

    /**
     * @param value Optional. Custom metadata to apply to this instance.
     */
    @JvmName("dyayfrvpglpqamgk")
    public suspend fun metadata(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param values Optional. Custom metadata to apply to this instance.
     */
    @JvmName("vakhaqvmvqgxsaxo")
    public fun metadata(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param value The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("vtfkuxopnhourtff")
    public suspend fun networkInterfaces(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkInterfaces = mapped
    }

    /**
     * @param argument The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("dbauurvhjalhtpov")
    public suspend fun networkInterfaces(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            InstanceGceSetupNetworkInterfaceArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.networkInterfaces = mapped
    }

    /**
     * @param argument The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("wknaykkfuairtuyn")
    public suspend fun networkInterfaces(vararg argument: suspend InstanceGceSetupNetworkInterfaceArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            InstanceGceSetupNetworkInterfaceArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.networkInterfaces = mapped
    }

    /**
     * @param argument The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("jjipyfirdehhaknr")
    public suspend fun networkInterfaces(argument: suspend InstanceGceSetupNetworkInterfaceArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            InstanceGceSetupNetworkInterfaceArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.networkInterfaces = mapped
    }

    /**
     * @param values The network interfaces for the VM. Supports only one interface.
     * Structure is documented below.
     */
    @JvmName("vrqffcfgtfbcsshm")
    public suspend fun networkInterfaces(vararg values: InstanceGceSetupNetworkInterfaceArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.networkInterfaces = mapped
    }

    /**
     * @param value The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("banbmthpciomhhlx")
    public suspend fun serviceAccounts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceAccounts = mapped
    }

    /**
     * @param argument The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("ycqllwpgowisljxb")
    public suspend fun serviceAccounts(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            InstanceGceSetupServiceAccountArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.serviceAccounts = mapped
    }

    /**
     * @param argument The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("wrkvdahwitwqlffr")
    public suspend fun serviceAccounts(vararg argument: suspend InstanceGceSetupServiceAccountArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            InstanceGceSetupServiceAccountArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.serviceAccounts = mapped
    }

    /**
     * @param argument The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("sskksxnvtpppbfoa")
    public suspend fun serviceAccounts(argument: suspend InstanceGceSetupServiceAccountArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            InstanceGceSetupServiceAccountArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.serviceAccounts = mapped
    }

    /**
     * @param values The service account that serves as an identity for the VM instance. Currently supports only one service account.
     * Structure is documented below.
     */
    @JvmName("ksaeaohxabatcord")
    public suspend fun serviceAccounts(vararg values: InstanceGceSetupServiceAccountArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.serviceAccounts = mapped
    }

    /**
     * @param value A set of Shielded Instance options. See [Images using supported Shielded
   * VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
     * Not all combinations are valid.
     * Structure is documented below.
     */
    @JvmName("sdlpkwtdxnacoyag")
    public suspend fun shieldedInstanceConfig(`value`: InstanceGceSetupShieldedInstanceConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shieldedInstanceConfig = mapped
    }

    /**
     * @param argument A set of Shielded Instance options. See [Images using supported Shielded
   * VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).
     * Not all combinations are valid.
     * Structure is documented below.
     */
    @JvmName("gkvoxqtixlfygubc")
    public suspend fun shieldedInstanceConfig(argument: suspend InstanceGceSetupShieldedInstanceConfigArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceGceSetupShieldedInstanceConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.shieldedInstanceConfig = mapped
    }

    /**
     * @param value Optional. The Compute Engine tags to add to instance (see [Tagging
   * instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
     */
    @JvmName("vavdxrnowyjbwidc")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Optional. The Compute Engine tags to add to instance (see [Tagging
   * instances](https://cloud.google.com/compute/docs/label-or-tag-resources#tags)).
     */
    @JvmName("ohlbgkauolermegk")
    public suspend fun tags(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Definition of a custom Compute Engine virtual machine image for starting
     * a workbench instance with the environment installed directly on the VM.
     * Structure is documented below.
     */
    @JvmName("algitnlsixmtyqrb")
    public suspend fun vmImage(`value`: InstanceGceSetupVmImageArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vmImage = mapped
    }

    /**
     * @param argument Definition of a custom Compute Engine virtual machine image for starting
     * a workbench instance with the environment installed directly on the VM.
     * Structure is documented below.
     */
    @JvmName("fdvsjgeugbbfpsub")
    public suspend fun vmImage(argument: suspend InstanceGceSetupVmImageArgsBuilder.() -> Unit) {
        val toBeMapped = InstanceGceSetupVmImageArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.vmImage = mapped
    }

    internal fun build(): InstanceGceSetupArgs = InstanceGceSetupArgs(
        acceleratorConfigs = acceleratorConfigs,
        bootDisk = bootDisk,
        containerImage = containerImage,
        dataDisks = dataDisks,
        disablePublicIp = disablePublicIp,
        enableIpForwarding = enableIpForwarding,
        machineType = machineType,
        metadata = metadata,
        networkInterfaces = networkInterfaces,
        serviceAccounts = serviceAccounts,
        shieldedInstanceConfig = shieldedInstanceConfig,
        tags = tags,
        vmImage = vmImage,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy