Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
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.
@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("cfggabskvntwtege")
public suspend fun acceleratorConfigs(`value`: Output>) {
this.acceleratorConfigs = value
}
@JvmName("rynsqsprmoeqbcyy")
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("iuiqwxbbyavrfssg")
public suspend fun acceleratorConfigs(values: List>) {
this.acceleratorConfigs = Output.all(values)
}
/**
* @param value The definition of a boot disk.
* Structure is documented below.
*/
@JvmName("gwkcunwavlikabsq")
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("rsqnalqylvgkueek")
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("omowlbhobpdwvswe")
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("vlpmmcgrmedgxhpn")
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("xxkqgrdwyjhtugmt")
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("anaujixmmgwxsgal")
public suspend fun machineType(`value`: Output) {
this.machineType = value
}
/**
* @param value Optional. Custom metadata to apply to this instance.
*/
@JvmName("quylcmcusuqlfxpt")
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("fuyoucjvqpbyrffh")
public suspend fun networkInterfaces(`value`: Output>) {
this.networkInterfaces = value
}
@JvmName("ydavdtkjepxfobxo")
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("ruqadjakegnkluvr")
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("iqiishpohmqvnhlf")
public suspend fun serviceAccounts(`value`: Output>) {
this.serviceAccounts = value
}
@JvmName("olrygtmglfntqldn")
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("jrwkwduycayhpwxe")
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("ohhvifjqmkabrdjc")
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("npuccsuvjmogmyik")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
@JvmName("eygwddrvbruuqmmb")
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("ygbdplwprwhecuha")
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("fxwtummpddrvoucp")
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("blxmmvdalmvlcvdm")
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("dhmwrygmqivuiwat")
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("soqnvpfyuxqvjwfo")
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("vydxprfpgxkdfopu")
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("uwtxfgqjriomnjca")
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("nvvgcxiuyxntdiue")
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("tlraagpbiwtkntgi")
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("pxymjkajeuqfuckh")
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("mckhafqmlfkprcqh")
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("qeujpndpxnkkswpu")
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("yprafkhkflqjyeig")
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("qliejljjynfjlqun")
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("kdwxbgwtkhlnbylp")
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("ijabtbuoadaihkkh")
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("evkckcsdnmykvoio")
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("fwwucrlcldgatmex")
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("kejhfspiemkbyvcf")
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("rrwvecufppqmedkq")
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("qcrkuwlwiiwpadff")
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("yxaagqixgisqcqcb")
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("ybxjbxqjkbpgqdcs")
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("imfceacdgnnwjqvs")
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("mcsmetactjwhbufb")
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("vuxchiwdqgaffamk")
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("mjfybvrutddsyros")
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("erltlxarupkiwcec")
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("qnvncwctfsfrlshv")
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("euxowkmealbxmxdy")
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("mriwrxeugpvqeswy")
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("gricoufdrbofrgtm")
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("ifqyrhmrqauxtlpw")
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("adxccwqdsxiighqx")
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,
)
}