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

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

package com.pulumi.gcp.container.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.container.inputs.ClusterAddonsConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property cloudrunConfig . Structure is documented below.
 * @property configConnectorConfig .
 * The status of the ConfigConnector addon. It is disabled by default; Set `enabled = true` to enable.
 * @property dnsCacheConfig .
 * The status of the NodeLocal DNSCache addon. It is disabled by default.
 * Set `enabled = true` to enable.
 * **Enabling/Disabling NodeLocal DNSCache in an existing cluster is a disruptive operation.
 * All cluster nodes running GKE 1.15 and higher are recreated.**
 * @property gcePersistentDiskCsiDriverConfig .
 * Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Set `enabled = true` to enable.
 * **Note:** The Compute Engine persistent disk CSI Driver is enabled by default on newly created clusters for the following versions: Linux clusters: GKE version 1.18.10-gke.2100 or later, or 1.19.3-gke.2100 or later.
 * @property gcpFilestoreCsiDriverConfig The status of the Filestore CSI driver addon,
 * which allows the usage of filestore instance as volumes.
 * It is disabled by default; set `enabled = true` to enable.
 * @property gcsFuseCsiDriverConfig The status of the GCSFuse CSI driver addon,
 * which allows the usage of a gcs bucket as volumes.
 * It is disabled by default for Standard clusters; set `enabled = true` to enable.
 * It is enabled by default for Autopilot clusters with version 1.24 or later; set `enabled = true` to enable it explicitly.
 * See [Enable the Cloud Storage FUSE CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/cloud-storage-fuse-csi-driver#enable) for more information.
 * @property gkeBackupAgentConfig .
 * The status of the Backup for GKE agent addon. It is disabled by default; Set `enabled = true` to enable.
 * @property horizontalPodAutoscaling The status of the Horizontal Pod Autoscaling
 * addon, which increases or decreases the number of replica pods a replication controller
 * has based on the resource usage of the existing pods.
 * It is enabled by default;
 * set `disabled = true` to disable.
 * @property httpLoadBalancing The status of the HTTP (L7) load balancing
 * controller addon, which makes it easy to set up HTTP load balancers for services in a
 * cluster. It is enabled by default; set `disabled = true` to disable.
 * @property istioConfig .
 * Structure is documented below.
 * @property kalmConfig .
 * Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set `enabled = true` to enable.
 * @property networkPolicyConfig Whether we should enable the network policy addon
 * for the master.  This must be enabled in order to enable network policy for the nodes.
 * To enable this, you must also define a `network_policy` block,
 * otherwise nothing will happen.
 * It can only be disabled if the nodes already do not have network policies enabled.
 * Defaults to disabled; set `disabled = false` to enable.
 * @property parallelstoreCsiDriverConfig The status of the Parallelstore CSI driver addon,
 * which allows the usage of a Parallelstore instances as volumes.
 * It is disabled by default for Standard clusters; set `enabled = true` to enable.
 * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly.
 * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information.
 * This example `addons_config` disables two addons:
 * @property rayOperatorConfigs . The status of the [Ray Operator
 * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
 * It is disabled by default. Set `enabled = true` to enable. The minimum
 * cluster version to enable Ray is 1.30.0-gke.1747000.
 * Ray Operator config has optional subfields
 * `ray_cluster_logging_config.enabled` and
 * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
 * and monitoring respectively. See [Collect and view logs and metrics for Ray
 * clusters on
 * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
 * for more information.
 * @property statefulHaConfig .
 * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications.
 * It is disabled by default for Standard clusters. Set `enabled = true` to enable.
 */
public data class ClusterAddonsConfigArgs(
    public val cloudrunConfig: Output? = null,
    public val configConnectorConfig: Output? = null,
    public val dnsCacheConfig: Output? = null,
    public val gcePersistentDiskCsiDriverConfig: Output? = null,
    public val gcpFilestoreCsiDriverConfig: Output? = null,
    public val gcsFuseCsiDriverConfig: Output? = null,
    public val gkeBackupAgentConfig: Output? = null,
    public val horizontalPodAutoscaling: Output? =
        null,
    public val httpLoadBalancing: Output? = null,
    public val istioConfig: Output? = null,
    public val kalmConfig: Output? = null,
    public val networkPolicyConfig: Output? = null,
    public val parallelstoreCsiDriverConfig: Output? = null,
    public val rayOperatorConfigs: Output>? = null,
    public val statefulHaConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.container.inputs.ClusterAddonsConfigArgs =
        com.pulumi.gcp.container.inputs.ClusterAddonsConfigArgs.builder()
            .cloudrunConfig(cloudrunConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .configConnectorConfig(
                configConnectorConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .dnsCacheConfig(dnsCacheConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .gcePersistentDiskCsiDriverConfig(
                gcePersistentDiskCsiDriverConfig?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .gcpFilestoreCsiDriverConfig(
                gcpFilestoreCsiDriverConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .gcsFuseCsiDriverConfig(
                gcsFuseCsiDriverConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .gkeBackupAgentConfig(
                gkeBackupAgentConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .horizontalPodAutoscaling(
                horizontalPodAutoscaling?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .httpLoadBalancing(httpLoadBalancing?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .istioConfig(istioConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kalmConfig(kalmConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .networkPolicyConfig(
                networkPolicyConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .parallelstoreCsiDriverConfig(
                parallelstoreCsiDriverConfig?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .rayOperatorConfigs(
                rayOperatorConfigs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .statefulHaConfig(
                statefulHaConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [ClusterAddonsConfigArgs].
 */
@PulumiTagMarker
public class ClusterAddonsConfigArgsBuilder internal constructor() {
    private var cloudrunConfig: Output? = null

    private var configConnectorConfig: Output? = null

    private var dnsCacheConfig: Output? = null

    private var gcePersistentDiskCsiDriverConfig:
        Output? = null

    private var gcpFilestoreCsiDriverConfig:
        Output? = null

    private var gcsFuseCsiDriverConfig: Output? = null

    private var gkeBackupAgentConfig: Output? = null

    private var horizontalPodAutoscaling: Output? =
        null

    private var httpLoadBalancing: Output? = null

    private var istioConfig: Output? = null

    private var kalmConfig: Output? = null

    private var networkPolicyConfig: Output? = null

    private var parallelstoreCsiDriverConfig:
        Output? = null

    private var rayOperatorConfigs: Output>? = null

    private var statefulHaConfig: Output? = null

    /**
     * @param value . Structure is documented below.
     */
    @JvmName("ghnslalmipenwgtm")
    public suspend fun cloudrunConfig(`value`: Output) {
        this.cloudrunConfig = value
    }

    /**
     * @param value .
     * The status of the ConfigConnector addon. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("gfehhjdcrqfjwlvu")
    public suspend fun configConnectorConfig(`value`: Output) {
        this.configConnectorConfig = value
    }

    /**
     * @param value .
     * The status of the NodeLocal DNSCache addon. It is disabled by default.
     * Set `enabled = true` to enable.
     * **Enabling/Disabling NodeLocal DNSCache in an existing cluster is a disruptive operation.
     * All cluster nodes running GKE 1.15 and higher are recreated.**
     */
    @JvmName("pgknfvknflxjdjnj")
    public suspend fun dnsCacheConfig(`value`: Output) {
        this.dnsCacheConfig = value
    }

    /**
     * @param value .
     * Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Set `enabled = true` to enable.
     * **Note:** The Compute Engine persistent disk CSI Driver is enabled by default on newly created clusters for the following versions: Linux clusters: GKE version 1.18.10-gke.2100 or later, or 1.19.3-gke.2100 or later.
     */
    @JvmName("hxtehurwogaacoxg")
    public suspend fun gcePersistentDiskCsiDriverConfig(`value`: Output) {
        this.gcePersistentDiskCsiDriverConfig = value
    }

    /**
     * @param value The status of the Filestore CSI driver addon,
     * which allows the usage of filestore instance as volumes.
     * It is disabled by default; set `enabled = true` to enable.
     */
    @JvmName("lrvnupdkfmabgxbc")
    public suspend fun gcpFilestoreCsiDriverConfig(`value`: Output) {
        this.gcpFilestoreCsiDriverConfig = value
    }

    /**
     * @param value The status of the GCSFuse CSI driver addon,
     * which allows the usage of a gcs bucket as volumes.
     * It is disabled by default for Standard clusters; set `enabled = true` to enable.
     * It is enabled by default for Autopilot clusters with version 1.24 or later; set `enabled = true` to enable it explicitly.
     * See [Enable the Cloud Storage FUSE CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/cloud-storage-fuse-csi-driver#enable) for more information.
     */
    @JvmName("ecyjhtyynglsdckp")
    public suspend fun gcsFuseCsiDriverConfig(`value`: Output) {
        this.gcsFuseCsiDriverConfig = value
    }

    /**
     * @param value .
     * The status of the Backup for GKE agent addon. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("mamkwcxnoqrpxfue")
    public suspend fun gkeBackupAgentConfig(`value`: Output) {
        this.gkeBackupAgentConfig = value
    }

    /**
     * @param value The status of the Horizontal Pod Autoscaling
     * addon, which increases or decreases the number of replica pods a replication controller
     * has based on the resource usage of the existing pods.
     * It is enabled by default;
     * set `disabled = true` to disable.
     */
    @JvmName("uegopjcwdwnhnfje")
    public suspend fun horizontalPodAutoscaling(`value`: Output) {
        this.horizontalPodAutoscaling = value
    }

    /**
     * @param value The status of the HTTP (L7) load balancing
     * controller addon, which makes it easy to set up HTTP load balancers for services in a
     * cluster. It is enabled by default; set `disabled = true` to disable.
     */
    @JvmName("dcsebybsnemyroff")
    public suspend fun httpLoadBalancing(`value`: Output) {
        this.httpLoadBalancing = value
    }

    /**
     * @param value .
     * Structure is documented below.
     */
    @JvmName("irpufqqogoulbhbf")
    public suspend fun istioConfig(`value`: Output) {
        this.istioConfig = value
    }

    /**
     * @param value .
     * Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("jberghjgqlkqdrei")
    public suspend fun kalmConfig(`value`: Output) {
        this.kalmConfig = value
    }

    /**
     * @param value Whether we should enable the network policy addon
     * for the master.  This must be enabled in order to enable network policy for the nodes.
     * To enable this, you must also define a `network_policy` block,
     * otherwise nothing will happen.
     * It can only be disabled if the nodes already do not have network policies enabled.
     * Defaults to disabled; set `disabled = false` to enable.
     */
    @JvmName("lbevyqytlleqxtep")
    public suspend fun networkPolicyConfig(`value`: Output) {
        this.networkPolicyConfig = value
    }

    /**
     * @param value The status of the Parallelstore CSI driver addon,
     * which allows the usage of a Parallelstore instances as volumes.
     * It is disabled by default for Standard clusters; set `enabled = true` to enable.
     * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly.
     * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information.
     * This example `addons_config` disables two addons:
     */
    @JvmName("mwocpcnwknoolbmw")
    public suspend fun parallelstoreCsiDriverConfig(`value`: Output) {
        this.parallelstoreCsiDriverConfig = value
    }

    /**
     * @param value . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("folypfmwmhltnmgk")
    public suspend fun rayOperatorConfigs(`value`: Output>) {
        this.rayOperatorConfigs = value
    }

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

    /**
     * @param values . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("ikowmjjpptposbag")
    public suspend fun rayOperatorConfigs(values: List>) {
        this.rayOperatorConfigs = Output.all(values)
    }

    /**
     * @param value .
     * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications.
     * It is disabled by default for Standard clusters. Set `enabled = true` to enable.
     */
    @JvmName("gnlodynvohakwpgm")
    public suspend fun statefulHaConfig(`value`: Output) {
        this.statefulHaConfig = value
    }

    /**
     * @param value . Structure is documented below.
     */
    @JvmName("nmcxxpxjjywtnglu")
    public suspend fun cloudrunConfig(`value`: ClusterAddonsConfigCloudrunConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudrunConfig = mapped
    }

    /**
     * @param argument . Structure is documented below.
     */
    @JvmName("cpcfidgdaofhmgxi")
    public suspend fun cloudrunConfig(argument: suspend ClusterAddonsConfigCloudrunConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigCloudrunConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cloudrunConfig = mapped
    }

    /**
     * @param value .
     * The status of the ConfigConnector addon. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("jlkcrotldvdslyqf")
    public suspend fun configConnectorConfig(`value`: ClusterAddonsConfigConfigConnectorConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configConnectorConfig = mapped
    }

    /**
     * @param argument .
     * The status of the ConfigConnector addon. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("ucrbgheitkvacvnc")
    public suspend fun configConnectorConfig(argument: suspend ClusterAddonsConfigConfigConnectorConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigConfigConnectorConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.configConnectorConfig = mapped
    }

    /**
     * @param value .
     * The status of the NodeLocal DNSCache addon. It is disabled by default.
     * Set `enabled = true` to enable.
     * **Enabling/Disabling NodeLocal DNSCache in an existing cluster is a disruptive operation.
     * All cluster nodes running GKE 1.15 and higher are recreated.**
     */
    @JvmName("wbaiflwlbsdyunew")
    public suspend fun dnsCacheConfig(`value`: ClusterAddonsConfigDnsCacheConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dnsCacheConfig = mapped
    }

    /**
     * @param argument .
     * The status of the NodeLocal DNSCache addon. It is disabled by default.
     * Set `enabled = true` to enable.
     * **Enabling/Disabling NodeLocal DNSCache in an existing cluster is a disruptive operation.
     * All cluster nodes running GKE 1.15 and higher are recreated.**
     */
    @JvmName("foubwcrxlmndgxgv")
    public suspend fun dnsCacheConfig(argument: suspend ClusterAddonsConfigDnsCacheConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigDnsCacheConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.dnsCacheConfig = mapped
    }

    /**
     * @param value .
     * Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Set `enabled = true` to enable.
     * **Note:** The Compute Engine persistent disk CSI Driver is enabled by default on newly created clusters for the following versions: Linux clusters: GKE version 1.18.10-gke.2100 or later, or 1.19.3-gke.2100 or later.
     */
    @JvmName("pjqxbiekbnbwhtym")
    public suspend fun gcePersistentDiskCsiDriverConfig(`value`: ClusterAddonsConfigGcePersistentDiskCsiDriverConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gcePersistentDiskCsiDriverConfig = mapped
    }

    /**
     * @param argument .
     * Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Set `enabled = true` to enable.
     * **Note:** The Compute Engine persistent disk CSI Driver is enabled by default on newly created clusters for the following versions: Linux clusters: GKE version 1.18.10-gke.2100 or later, or 1.19.3-gke.2100 or later.
     */
    @JvmName("vbvxgybedypgplnt")
    public suspend fun gcePersistentDiskCsiDriverConfig(argument: suspend ClusterAddonsConfigGcePersistentDiskCsiDriverConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigGcePersistentDiskCsiDriverConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.gcePersistentDiskCsiDriverConfig = mapped
    }

    /**
     * @param value The status of the Filestore CSI driver addon,
     * which allows the usage of filestore instance as volumes.
     * It is disabled by default; set `enabled = true` to enable.
     */
    @JvmName("wncmeytcwmfwijvm")
    public suspend fun gcpFilestoreCsiDriverConfig(`value`: ClusterAddonsConfigGcpFilestoreCsiDriverConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gcpFilestoreCsiDriverConfig = mapped
    }

    /**
     * @param argument The status of the Filestore CSI driver addon,
     * which allows the usage of filestore instance as volumes.
     * It is disabled by default; set `enabled = true` to enable.
     */
    @JvmName("xgqbuuhjprbmrwah")
    public suspend fun gcpFilestoreCsiDriverConfig(argument: suspend ClusterAddonsConfigGcpFilestoreCsiDriverConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigGcpFilestoreCsiDriverConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.gcpFilestoreCsiDriverConfig = mapped
    }

    /**
     * @param value The status of the GCSFuse CSI driver addon,
     * which allows the usage of a gcs bucket as volumes.
     * It is disabled by default for Standard clusters; set `enabled = true` to enable.
     * It is enabled by default for Autopilot clusters with version 1.24 or later; set `enabled = true` to enable it explicitly.
     * See [Enable the Cloud Storage FUSE CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/cloud-storage-fuse-csi-driver#enable) for more information.
     */
    @JvmName("btbkoefnpohlfkxi")
    public suspend fun gcsFuseCsiDriverConfig(`value`: ClusterAddonsConfigGcsFuseCsiDriverConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gcsFuseCsiDriverConfig = mapped
    }

    /**
     * @param argument The status of the GCSFuse CSI driver addon,
     * which allows the usage of a gcs bucket as volumes.
     * It is disabled by default for Standard clusters; set `enabled = true` to enable.
     * It is enabled by default for Autopilot clusters with version 1.24 or later; set `enabled = true` to enable it explicitly.
     * See [Enable the Cloud Storage FUSE CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/cloud-storage-fuse-csi-driver#enable) for more information.
     */
    @JvmName("oxrwtidwudhbecnq")
    public suspend fun gcsFuseCsiDriverConfig(argument: suspend ClusterAddonsConfigGcsFuseCsiDriverConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigGcsFuseCsiDriverConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.gcsFuseCsiDriverConfig = mapped
    }

    /**
     * @param value .
     * The status of the Backup for GKE agent addon. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("xwkyhwmmhtwasfqh")
    public suspend fun gkeBackupAgentConfig(`value`: ClusterAddonsConfigGkeBackupAgentConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gkeBackupAgentConfig = mapped
    }

    /**
     * @param argument .
     * The status of the Backup for GKE agent addon. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("eajifcfwbsqvdmqp")
    public suspend fun gkeBackupAgentConfig(argument: suspend ClusterAddonsConfigGkeBackupAgentConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigGkeBackupAgentConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.gkeBackupAgentConfig = mapped
    }

    /**
     * @param value The status of the Horizontal Pod Autoscaling
     * addon, which increases or decreases the number of replica pods a replication controller
     * has based on the resource usage of the existing pods.
     * It is enabled by default;
     * set `disabled = true` to disable.
     */
    @JvmName("wfvtdswqgkvdapie")
    public suspend fun horizontalPodAutoscaling(`value`: ClusterAddonsConfigHorizontalPodAutoscalingArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.horizontalPodAutoscaling = mapped
    }

    /**
     * @param argument The status of the Horizontal Pod Autoscaling
     * addon, which increases or decreases the number of replica pods a replication controller
     * has based on the resource usage of the existing pods.
     * It is enabled by default;
     * set `disabled = true` to disable.
     */
    @JvmName("ntnownncfwrdpmcn")
    public suspend fun horizontalPodAutoscaling(argument: suspend ClusterAddonsConfigHorizontalPodAutoscalingArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigHorizontalPodAutoscalingArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.horizontalPodAutoscaling = mapped
    }

    /**
     * @param value The status of the HTTP (L7) load balancing
     * controller addon, which makes it easy to set up HTTP load balancers for services in a
     * cluster. It is enabled by default; set `disabled = true` to disable.
     */
    @JvmName("kwkjxgnpydfvuqpr")
    public suspend fun httpLoadBalancing(`value`: ClusterAddonsConfigHttpLoadBalancingArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.httpLoadBalancing = mapped
    }

    /**
     * @param argument The status of the HTTP (L7) load balancing
     * controller addon, which makes it easy to set up HTTP load balancers for services in a
     * cluster. It is enabled by default; set `disabled = true` to disable.
     */
    @JvmName("maxeijgvghysnvmg")
    public suspend fun httpLoadBalancing(argument: suspend ClusterAddonsConfigHttpLoadBalancingArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigHttpLoadBalancingArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.httpLoadBalancing = mapped
    }

    /**
     * @param value .
     * Structure is documented below.
     */
    @JvmName("krukmpfpkfhywctu")
    public suspend fun istioConfig(`value`: ClusterAddonsConfigIstioConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.istioConfig = mapped
    }

    /**
     * @param argument .
     * Structure is documented below.
     */
    @JvmName("bsjcqjncofhpqxcb")
    public suspend fun istioConfig(argument: suspend ClusterAddonsConfigIstioConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigIstioConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.istioConfig = mapped
    }

    /**
     * @param value .
     * Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("rbocntwosnlwjawg")
    public suspend fun kalmConfig(`value`: ClusterAddonsConfigKalmConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kalmConfig = mapped
    }

    /**
     * @param argument .
     * Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set `enabled = true` to enable.
     */
    @JvmName("hudulxnttugregtk")
    public suspend fun kalmConfig(argument: suspend ClusterAddonsConfigKalmConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigKalmConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.kalmConfig = mapped
    }

    /**
     * @param value Whether we should enable the network policy addon
     * for the master.  This must be enabled in order to enable network policy for the nodes.
     * To enable this, you must also define a `network_policy` block,
     * otherwise nothing will happen.
     * It can only be disabled if the nodes already do not have network policies enabled.
     * Defaults to disabled; set `disabled = false` to enable.
     */
    @JvmName("mnsogfxbtlvuimfn")
    public suspend fun networkPolicyConfig(`value`: ClusterAddonsConfigNetworkPolicyConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.networkPolicyConfig = mapped
    }

    /**
     * @param argument Whether we should enable the network policy addon
     * for the master.  This must be enabled in order to enable network policy for the nodes.
     * To enable this, you must also define a `network_policy` block,
     * otherwise nothing will happen.
     * It can only be disabled if the nodes already do not have network policies enabled.
     * Defaults to disabled; set `disabled = false` to enable.
     */
    @JvmName("krimcdocqxmcaqlt")
    public suspend fun networkPolicyConfig(argument: suspend ClusterAddonsConfigNetworkPolicyConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigNetworkPolicyConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.networkPolicyConfig = mapped
    }

    /**
     * @param value The status of the Parallelstore CSI driver addon,
     * which allows the usage of a Parallelstore instances as volumes.
     * It is disabled by default for Standard clusters; set `enabled = true` to enable.
     * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly.
     * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information.
     * This example `addons_config` disables two addons:
     */
    @JvmName("bwpmgjkammduplwf")
    public suspend fun parallelstoreCsiDriverConfig(`value`: ClusterAddonsConfigParallelstoreCsiDriverConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.parallelstoreCsiDriverConfig = mapped
    }

    /**
     * @param argument The status of the Parallelstore CSI driver addon,
     * which allows the usage of a Parallelstore instances as volumes.
     * It is disabled by default for Standard clusters; set `enabled = true` to enable.
     * It is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly.
     * See [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information.
     * This example `addons_config` disables two addons:
     */
    @JvmName("aghlmmrderynxnuv")
    public suspend fun parallelstoreCsiDriverConfig(argument: suspend ClusterAddonsConfigParallelstoreCsiDriverConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigParallelstoreCsiDriverConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.parallelstoreCsiDriverConfig = mapped
    }

    /**
     * @param value . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("khdylvtvmfdnbuwc")
    public suspend fun rayOperatorConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rayOperatorConfigs = mapped
    }

    /**
     * @param argument . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("vdpudilbouyhyfbq")
    public suspend fun rayOperatorConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ClusterAddonsConfigRayOperatorConfigArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.rayOperatorConfigs = mapped
    }

    /**
     * @param argument . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("accjphbqdnjxqfor")
    public suspend fun rayOperatorConfigs(vararg argument: suspend ClusterAddonsConfigRayOperatorConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ClusterAddonsConfigRayOperatorConfigArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.rayOperatorConfigs = mapped
    }

    /**
     * @param argument . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("drakaxbcbofqlkmw")
    public suspend fun rayOperatorConfigs(argument: suspend ClusterAddonsConfigRayOperatorConfigArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ClusterAddonsConfigRayOperatorConfigArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.rayOperatorConfigs = mapped
    }

    /**
     * @param values . The status of the [Ray Operator
   * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).
     * It is disabled by default. Set `enabled = true` to enable. The minimum
     * cluster version to enable Ray is 1.30.0-gke.1747000.
     * Ray Operator config has optional subfields
     * `ray_cluster_logging_config.enabled` and
     * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging
     * and monitoring respectively. See [Collect and view logs and metrics for Ray
   * clusters on
   * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)
     * for more information.
     */
    @JvmName("ykrxbesgtpitsica")
    public suspend fun rayOperatorConfigs(vararg values: ClusterAddonsConfigRayOperatorConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.rayOperatorConfigs = mapped
    }

    /**
     * @param value .
     * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications.
     * It is disabled by default for Standard clusters. Set `enabled = true` to enable.
     */
    @JvmName("nwvcsklmeibyvwgw")
    public suspend fun statefulHaConfig(`value`: ClusterAddonsConfigStatefulHaConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.statefulHaConfig = mapped
    }

    /**
     * @param argument .
     * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications.
     * It is disabled by default for Standard clusters. Set `enabled = true` to enable.
     */
    @JvmName("qqfygaartqakhtcn")
    public suspend fun statefulHaConfig(argument: suspend ClusterAddonsConfigStatefulHaConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ClusterAddonsConfigStatefulHaConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.statefulHaConfig = mapped
    }

    internal fun build(): ClusterAddonsConfigArgs = ClusterAddonsConfigArgs(
        cloudrunConfig = cloudrunConfig,
        configConnectorConfig = configConnectorConfig,
        dnsCacheConfig = dnsCacheConfig,
        gcePersistentDiskCsiDriverConfig = gcePersistentDiskCsiDriverConfig,
        gcpFilestoreCsiDriverConfig = gcpFilestoreCsiDriverConfig,
        gcsFuseCsiDriverConfig = gcsFuseCsiDriverConfig,
        gkeBackupAgentConfig = gkeBackupAgentConfig,
        horizontalPodAutoscaling = horizontalPodAutoscaling,
        httpLoadBalancing = httpLoadBalancing,
        istioConfig = istioConfig,
        kalmConfig = kalmConfig,
        networkPolicyConfig = networkPolicyConfig,
        parallelstoreCsiDriverConfig = parallelstoreCsiDriverConfig,
        rayOperatorConfigs = rayOperatorConfigs,
        statefulHaConfig = statefulHaConfig,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy