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

com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetup.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.workbench.kotlin.outputs

import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map

/**
 *
 * @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 InstanceGceSetup(
    public val acceleratorConfigs: List? = null,
    public val bootDisk: InstanceGceSetupBootDisk? = null,
    public val containerImage: InstanceGceSetupContainerImage? = null,
    public val dataDisks: InstanceGceSetupDataDisks? = null,
    public val disablePublicIp: Boolean? = null,
    public val enableIpForwarding: Boolean? = null,
    public val machineType: String? = null,
    public val metadata: Map? = null,
    public val networkInterfaces: List? = null,
    public val serviceAccounts: List? = null,
    public val shieldedInstanceConfig: InstanceGceSetupShieldedInstanceConfig? = null,
    public val tags: List? = null,
    public val vmImage: InstanceGceSetupVmImage? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.workbench.outputs.InstanceGceSetup): InstanceGceSetup = InstanceGceSetup(
            acceleratorConfigs = javaType.acceleratorConfigs().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupAcceleratorConfig.Companion.toKotlin(args0)
                })
            }),
            bootDisk = javaType.bootDisk().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupBootDisk.Companion.toKotlin(args0)
                })
            }).orElse(null),
            containerImage = javaType.containerImage().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupContainerImage.Companion.toKotlin(args0)
                })
            }).orElse(null),
            dataDisks = javaType.dataDisks().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupDataDisks.Companion.toKotlin(args0)
                })
            }).orElse(null),
            disablePublicIp = javaType.disablePublicIp().map({ args0 -> args0 }).orElse(null),
            enableIpForwarding = javaType.enableIpForwarding().map({ args0 -> args0 }).orElse(null),
            machineType = javaType.machineType().map({ args0 -> args0 }).orElse(null),
            metadata = javaType.metadata().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            networkInterfaces = javaType.networkInterfaces().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupNetworkInterface.Companion.toKotlin(args0)
                })
            }),
            serviceAccounts = javaType.serviceAccounts().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupServiceAccount.Companion.toKotlin(args0)
                })
            }),
            shieldedInstanceConfig = javaType.shieldedInstanceConfig().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupShieldedInstanceConfig.Companion.toKotlin(args0)
                })
            }).orElse(null),
            tags = javaType.tags().map({ args0 -> args0 }),
            vmImage = javaType.vmImage().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.workbench.kotlin.outputs.InstanceGceSetupVmImage.Companion.toKotlin(args0)
                })
            }).orElse(null),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy