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

com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareNodePoolConfig.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.outputs

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

/**
 *
 * @property bootDiskSizeGb VMware disk size to be used during creation.
 * @property cpus The number of CPUs for each node in the node pool.
 * @property enableLoadBalancer Allow node pool traffic to be load balanced. Only works for clusters with
 * MetalLB load balancers.
 * @property image The OS image name in vCenter, only valid when using Windows.
 * @property imageType The OS image to be used for each node in a node pool.
 * Currently `cos`, `ubuntu`, `ubuntu_containerd` and `windows` are supported.
 * @property labels The map of Kubernetes labels (key/value pairs) to be applied to each node.
 * These will added in addition to any default label(s) that
 * Kubernetes may apply to the node.
 * In case of conflict in label keys, the applied set may differ depending on
 * the Kubernetes version -- it's best to assume the behavior is undefined
 * and conflicts should be avoided.
 * @property memoryMb The megabytes of memory for each node in the node pool.
 * @property replicas The number of nodes in the node pool.
 * @property taints The initial taints assigned to nodes of this node pool.
 * Structure is documented below.
 * @property vsphereConfigs Specifies the vSphere config for node pool.
 * Structure is documented below.
 */
public data class VMwareNodePoolConfig(
    public val bootDiskSizeGb: Int? = null,
    public val cpus: Int? = null,
    public val enableLoadBalancer: Boolean? = null,
    public val image: String? = null,
    public val imageType: String,
    public val labels: Map? = null,
    public val memoryMb: Int? = null,
    public val replicas: Int? = null,
    public val taints: List? = null,
    public val vsphereConfigs: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.gkeonprem.outputs.VMwareNodePoolConfig): VMwareNodePoolConfig = VMwareNodePoolConfig(
            bootDiskSizeGb = javaType.bootDiskSizeGb().map({ args0 -> args0 }).orElse(null),
            cpus = javaType.cpus().map({ args0 -> args0 }).orElse(null),
            enableLoadBalancer = javaType.enableLoadBalancer().map({ args0 -> args0 }).orElse(null),
            image = javaType.image().map({ args0 -> args0 }).orElse(null),
            imageType = javaType.imageType(),
            labels = javaType.labels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            memoryMb = javaType.memoryMb().map({ args0 -> args0 }).orElse(null),
            replicas = javaType.replicas().map({ args0 -> args0 }).orElse(null),
            taints = javaType.taints().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareNodePoolConfigTaint.Companion.toKotlin(args0)
                })
            }),
            vsphereConfigs = javaType.vsphereConfigs().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.gkeonprem.kotlin.outputs.VMwareNodePoolConfigVsphereConfig.Companion.toKotlin(args0)
                })
            }),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy