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

com.pulumi.digitalocean.kotlin.outputs.KubernetesClusterNodePool.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.digitalocean.kotlin.outputs

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

/**
 *
 * @property actualNodeCount A computed field representing the actual number of nodes in the node pool, which is especially useful when auto-scaling is enabled.
 * @property autoScale Enable auto-scaling of the number of nodes in the node pool within the given min/max range.
 * @property id A unique ID that can be used to identify and reference the node.
 * @property labels A map of key/value pairs to apply to nodes in the pool. The labels are exposed in the Kubernetes API as labels in the metadata of the corresponding [Node resources](https://kubernetes.io/docs/concepts/architecture/nodes/).
 * @property maxNodes If auto-scaling is enabled, this represents the maximum number of nodes that the node pool can be scaled up to.
 * @property minNodes If auto-scaling is enabled, this represents the minimum number of nodes that the node pool can be scaled down to.
 * @property name A name for the node pool.
 * @property nodeCount The number of Droplet instances in the node pool. If auto-scaling is enabled, this should only be set if the desired result is to explicitly reset the number of nodes to this value. If auto-scaling is enabled, and the node count is outside of the given min/max range, it will use the min nodes value.
 * @property nodes A list of nodes in the pool. Each node exports the following attributes:
 * @property size The slug identifier for the type of Droplet to be used as workers in the node pool.
 * @property tags A list of tag names applied to the node pool.
 * @property taints A block representing a taint applied to all nodes in the pool. Each taint exports the following attributes (taints must be unique by key and effect pair):
 */
public data class KubernetesClusterNodePool(
    public val actualNodeCount: Int? = null,
    public val autoScale: Boolean? = null,
    public val id: String? = null,
    public val labels: Map? = null,
    public val maxNodes: Int? = null,
    public val minNodes: Int? = null,
    public val name: String,
    public val nodeCount: Int? = null,
    public val nodes: List? = null,
    public val size: String,
    public val tags: List? = null,
    public val taints: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.digitalocean.outputs.KubernetesClusterNodePool): KubernetesClusterNodePool = KubernetesClusterNodePool(
            actualNodeCount = javaType.actualNodeCount().map({ args0 -> args0 }).orElse(null),
            autoScale = javaType.autoScale().map({ args0 -> args0 }).orElse(null),
            id = javaType.id().map({ args0 -> args0 }).orElse(null),
            labels = javaType.labels().map({ args0 -> args0.key.to(args0.value) }).toMap(),
            maxNodes = javaType.maxNodes().map({ args0 -> args0 }).orElse(null),
            minNodes = javaType.minNodes().map({ args0 -> args0 }).orElse(null),
            name = javaType.name(),
            nodeCount = javaType.nodeCount().map({ args0 -> args0 }).orElse(null),
            nodes = javaType.nodes().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.digitalocean.kotlin.outputs.KubernetesClusterNodePoolNode.Companion.toKotlin(args0)
                })
            }),
            size = javaType.size(),
            tags = javaType.tags().map({ args0 -> args0 }),
            taints = javaType.taints().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.digitalocean.kotlin.outputs.KubernetesClusterNodePoolTaint.Companion.toKotlin(args0)
                })
            }),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy