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

com.pulumi.gcp.composer.kotlin.inputs.EnvironmentConfigArgs.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.composer.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property airflowUri The URI of the Apache Airflow Web UI hosted within this
 * environment.
 * @property dagGcsPrefix The Cloud Storage prefix of the DAGs for this environment.
 * Although Cloud Storage objects reside in a flat namespace, a
 * hierarchical file tree can be simulated using '/'-delimited
 * object name prefixes. DAG objects for this environment
 * reside in a simulated directory with this prefix.
 * @property dataRetentionConfig The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
 * @property databaseConfig The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property enablePrivateBuildsOnly Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
 * @property enablePrivateEnvironment Optional. If true, a private Composer environment will be created.
 * @property encryptionConfig The encryption options for the Composer environment and its dependencies.
 * @property environmentSize The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
 * @property gkeCluster The Kubernetes Engine cluster used to run this environment.
 * @property maintenanceWindow The configuration for Cloud Composer maintenance window.
 * @property masterAuthorizedNetworksConfig Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
 * @property nodeConfig The configuration used for the Kubernetes Engine cluster.
 * @property nodeCount The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property privateEnvironmentConfig The configuration used for the Private IP Cloud Composer environment.
 * @property recoveryConfig The recovery configuration settings for the Cloud Composer environment
 * @property resilienceMode Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-*.*.* and newer.
 * @property softwareConfig The configuration settings for software inside the environment.
 * @property webServerConfig The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
 * @property webServerNetworkAccessControl Network-level access control policy for the Airflow web server.
 * @property workloadsConfig The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
 */
public data class EnvironmentConfigArgs(
    public val airflowUri: Output? = null,
    public val dagGcsPrefix: Output? = null,
    public val dataRetentionConfig: Output? = null,
    public val databaseConfig: Output? = null,
    public val enablePrivateBuildsOnly: Output? = null,
    public val enablePrivateEnvironment: Output? = null,
    public val encryptionConfig: Output? = null,
    public val environmentSize: Output? = null,
    public val gkeCluster: Output? = null,
    public val maintenanceWindow: Output? = null,
    public val masterAuthorizedNetworksConfig: Output? = null,
    public val nodeConfig: Output? = null,
    public val nodeCount: Output? = null,
    public val privateEnvironmentConfig: Output? =
        null,
    public val recoveryConfig: Output? = null,
    public val resilienceMode: Output? = null,
    public val softwareConfig: Output? = null,
    public val webServerConfig: Output? = null,
    public val webServerNetworkAccessControl: Output? = null,
    public val workloadsConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs =
        com.pulumi.gcp.composer.inputs.EnvironmentConfigArgs.builder()
            .airflowUri(airflowUri?.applyValue({ args0 -> args0 }))
            .dagGcsPrefix(dagGcsPrefix?.applyValue({ args0 -> args0 }))
            .dataRetentionConfig(
                dataRetentionConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .databaseConfig(databaseConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .enablePrivateBuildsOnly(enablePrivateBuildsOnly?.applyValue({ args0 -> args0 }))
            .enablePrivateEnvironment(enablePrivateEnvironment?.applyValue({ args0 -> args0 }))
            .encryptionConfig(encryptionConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .environmentSize(environmentSize?.applyValue({ args0 -> args0 }))
            .gkeCluster(gkeCluster?.applyValue({ args0 -> args0 }))
            .maintenanceWindow(maintenanceWindow?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .masterAuthorizedNetworksConfig(
                masterAuthorizedNetworksConfig?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .nodeConfig(nodeConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .nodeCount(nodeCount?.applyValue({ args0 -> args0 }))
            .privateEnvironmentConfig(
                privateEnvironmentConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .recoveryConfig(recoveryConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .resilienceMode(resilienceMode?.applyValue({ args0 -> args0 }))
            .softwareConfig(softwareConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .webServerConfig(webServerConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .webServerNetworkAccessControl(
                webServerNetworkAccessControl?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .workloadsConfig(
                workloadsConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [EnvironmentConfigArgs].
 */
@PulumiTagMarker
public class EnvironmentConfigArgsBuilder internal constructor() {
    private var airflowUri: Output? = null

    private var dagGcsPrefix: Output? = null

    private var dataRetentionConfig: Output? = null

    private var databaseConfig: Output? = null

    private var enablePrivateBuildsOnly: Output? = null

    private var enablePrivateEnvironment: Output? = null

    private var encryptionConfig: Output? = null

    private var environmentSize: Output? = null

    private var gkeCluster: Output? = null

    private var maintenanceWindow: Output? = null

    private var masterAuthorizedNetworksConfig:
        Output? = null

    private var nodeConfig: Output? = null

    private var nodeCount: Output? = null

    private var privateEnvironmentConfig: Output? =
        null

    private var recoveryConfig: Output? = null

    private var resilienceMode: Output? = null

    private var softwareConfig: Output? = null

    private var webServerConfig: Output? = null

    private var webServerNetworkAccessControl:
        Output? = null

    private var workloadsConfig: Output? = null

    /**
     * @param value The URI of the Apache Airflow Web UI hosted within this
     * environment.
     */
    @JvmName("atjvadcyuafskghi")
    public suspend fun airflowUri(`value`: Output) {
        this.airflowUri = value
    }

    /**
     * @param value The Cloud Storage prefix of the DAGs for this environment.
     * Although Cloud Storage objects reside in a flat namespace, a
     * hierarchical file tree can be simulated using '/'-delimited
     * object name prefixes. DAG objects for this environment
     * reside in a simulated directory with this prefix.
     */
    @JvmName("batlvouswfnsgifk")
    public suspend fun dagGcsPrefix(`value`: Output) {
        this.dagGcsPrefix = value
    }

    /**
     * @param value The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
     */
    @JvmName("bfcyshdqntvwjyls")
    public suspend fun dataRetentionConfig(`value`: Output) {
        this.dataRetentionConfig = value
    }

    /**
     * @param value The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("lteyouxrdugursjv")
    public suspend fun databaseConfig(`value`: Output) {
        this.databaseConfig = value
    }

    /**
     * @param value Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
     */
    @JvmName("thrmaugoqjrmhccq")
    public suspend fun enablePrivateBuildsOnly(`value`: Output) {
        this.enablePrivateBuildsOnly = value
    }

    /**
     * @param value Optional. If true, a private Composer environment will be created.
     */
    @JvmName("hjytgveqfgeybari")
    public suspend fun enablePrivateEnvironment(`value`: Output) {
        this.enablePrivateEnvironment = value
    }

    /**
     * @param value The encryption options for the Composer environment and its dependencies.
     */
    @JvmName("gnmwmbdqcijjjnrw")
    public suspend fun encryptionConfig(`value`: Output) {
        this.encryptionConfig = value
    }

    /**
     * @param value The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
     */
    @JvmName("cyldficlfvrokysl")
    public suspend fun environmentSize(`value`: Output) {
        this.environmentSize = value
    }

    /**
     * @param value The Kubernetes Engine cluster used to run this environment.
     */
    @JvmName("cftujiagrpycadbq")
    public suspend fun gkeCluster(`value`: Output) {
        this.gkeCluster = value
    }

    /**
     * @param value The configuration for Cloud Composer maintenance window.
     */
    @JvmName("hqctqqyvqotgnsuw")
    public suspend fun maintenanceWindow(`value`: Output) {
        this.maintenanceWindow = value
    }

    /**
     * @param value Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
     */
    @JvmName("ndvetkokhoekcriw")
    public suspend fun masterAuthorizedNetworksConfig(`value`: Output) {
        this.masterAuthorizedNetworksConfig = value
    }

    /**
     * @param value The configuration used for the Kubernetes Engine cluster.
     */
    @JvmName("hyvcnuhrvvjqxqav")
    public suspend fun nodeConfig(`value`: Output) {
        this.nodeConfig = value
    }

    /**
     * @param value The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("llkunhtjronbsbak")
    public suspend fun nodeCount(`value`: Output) {
        this.nodeCount = value
    }

    /**
     * @param value The configuration used for the Private IP Cloud Composer environment.
     */
    @JvmName("nihvmeuyaedtaeuq")
    public suspend fun privateEnvironmentConfig(`value`: Output) {
        this.privateEnvironmentConfig = value
    }

    /**
     * @param value The recovery configuration settings for the Cloud Composer environment
     */
    @JvmName("gtoknlkfhrxyctbh")
    public suspend fun recoveryConfig(`value`: Output) {
        this.recoveryConfig = value
    }

    /**
     * @param value Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-*.*.* and newer.
     */
    @JvmName("ptwskuorjbvfjcgu")
    public suspend fun resilienceMode(`value`: Output) {
        this.resilienceMode = value
    }

    /**
     * @param value The configuration settings for software inside the environment.
     */
    @JvmName("yacbjdsvtgvyaywr")
    public suspend fun softwareConfig(`value`: Output) {
        this.softwareConfig = value
    }

    /**
     * @param value The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("wnmtuqxtrowliywk")
    public suspend fun webServerConfig(`value`: Output) {
        this.webServerConfig = value
    }

    /**
     * @param value Network-level access control policy for the Airflow web server.
     */
    @JvmName("mepthfxxcsuubgxl")
    public suspend fun webServerNetworkAccessControl(`value`: Output) {
        this.webServerNetworkAccessControl = value
    }

    /**
     * @param value The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
     */
    @JvmName("tucekunjxmywturi")
    public suspend fun workloadsConfig(`value`: Output) {
        this.workloadsConfig = value
    }

    /**
     * @param value The URI of the Apache Airflow Web UI hosted within this
     * environment.
     */
    @JvmName("hlkxrxtrqsnbptgl")
    public suspend fun airflowUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.airflowUri = mapped
    }

    /**
     * @param value The Cloud Storage prefix of the DAGs for this environment.
     * Although Cloud Storage objects reside in a flat namespace, a
     * hierarchical file tree can be simulated using '/'-delimited
     * object name prefixes. DAG objects for this environment
     * reside in a simulated directory with this prefix.
     */
    @JvmName("rblycdcuqrcfwdmu")
    public suspend fun dagGcsPrefix(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dagGcsPrefix = mapped
    }

    /**
     * @param value The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
     */
    @JvmName("dolomaivkufgmqoj")
    public suspend fun dataRetentionConfig(`value`: EnvironmentConfigDataRetentionConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataRetentionConfig = mapped
    }

    /**
     * @param argument The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer
     */
    @JvmName("xlpbinnkolvqrtlo")
    public suspend fun dataRetentionConfig(argument: suspend EnvironmentConfigDataRetentionConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigDataRetentionConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.dataRetentionConfig = mapped
    }

    /**
     * @param value The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("grqshttyndemanxg")
    public suspend fun databaseConfig(`value`: EnvironmentConfigDatabaseConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.databaseConfig = mapped
    }

    /**
     * @param argument The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("shlfxlkvaqdpmnlu")
    public suspend fun databaseConfig(argument: suspend EnvironmentConfigDatabaseConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigDatabaseConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.databaseConfig = mapped
    }

    /**
     * @param value Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.
     */
    @JvmName("fnyuefatyvdtdxpj")
    public suspend fun enablePrivateBuildsOnly(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enablePrivateBuildsOnly = mapped
    }

    /**
     * @param value Optional. If true, a private Composer environment will be created.
     */
    @JvmName("nlwvxedbbqqnkfaw")
    public suspend fun enablePrivateEnvironment(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enablePrivateEnvironment = mapped
    }

    /**
     * @param value The encryption options for the Composer environment and its dependencies.
     */
    @JvmName("pkighxjvilddchyy")
    public suspend fun encryptionConfig(`value`: EnvironmentConfigEncryptionConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encryptionConfig = mapped
    }

    /**
     * @param argument The encryption options for the Composer environment and its dependencies.
     */
    @JvmName("iyiaujqwlukaxtmk")
    public suspend fun encryptionConfig(argument: suspend EnvironmentConfigEncryptionConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigEncryptionConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.encryptionConfig = mapped
    }

    /**
     * @param value The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
     */
    @JvmName("hrwgwunflmvwjcft")
    public suspend fun environmentSize(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.environmentSize = mapped
    }

    /**
     * @param value The Kubernetes Engine cluster used to run this environment.
     */
    @JvmName("xksvqmllpcxbimqu")
    public suspend fun gkeCluster(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gkeCluster = mapped
    }

    /**
     * @param value The configuration for Cloud Composer maintenance window.
     */
    @JvmName("ftbglsfhmqioprua")
    public suspend fun maintenanceWindow(`value`: EnvironmentConfigMaintenanceWindowArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maintenanceWindow = mapped
    }

    /**
     * @param argument The configuration for Cloud Composer maintenance window.
     */
    @JvmName("wvxiyrudxgjgebgv")
    public suspend fun maintenanceWindow(argument: suspend EnvironmentConfigMaintenanceWindowArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigMaintenanceWindowArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.maintenanceWindow = mapped
    }

    /**
     * @param value Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
     */
    @JvmName("skidlpiohppibind")
    public suspend fun masterAuthorizedNetworksConfig(`value`: EnvironmentConfigMasterAuthorizedNetworksConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.masterAuthorizedNetworksConfig = mapped
    }

    /**
     * @param argument Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.
     */
    @JvmName("etylfwedfgqxlhgo")
    public suspend fun masterAuthorizedNetworksConfig(argument: suspend EnvironmentConfigMasterAuthorizedNetworksConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigMasterAuthorizedNetworksConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.masterAuthorizedNetworksConfig = mapped
    }

    /**
     * @param value The configuration used for the Kubernetes Engine cluster.
     */
    @JvmName("ehxsjjysykbtocag")
    public suspend fun nodeConfig(`value`: EnvironmentConfigNodeConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeConfig = mapped
    }

    /**
     * @param argument The configuration used for the Kubernetes Engine cluster.
     */
    @JvmName("uxkldsnghyarxywx")
    public suspend fun nodeConfig(argument: suspend EnvironmentConfigNodeConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigNodeConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.nodeConfig = mapped
    }

    /**
     * @param value The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("jwbopvdfbhpddxge")
    public suspend fun nodeCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeCount = mapped
    }

    /**
     * @param value The configuration used for the Private IP Cloud Composer environment.
     */
    @JvmName("kgkduyroxdopwoep")
    public suspend fun privateEnvironmentConfig(`value`: EnvironmentConfigPrivateEnvironmentConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privateEnvironmentConfig = mapped
    }

    /**
     * @param argument The configuration used for the Private IP Cloud Composer environment.
     */
    @JvmName("fwofynurgmokxlhq")
    public suspend fun privateEnvironmentConfig(argument: suspend EnvironmentConfigPrivateEnvironmentConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigPrivateEnvironmentConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.privateEnvironmentConfig = mapped
    }

    /**
     * @param value The recovery configuration settings for the Cloud Composer environment
     */
    @JvmName("qbftrbhhaoasshvt")
    public suspend fun recoveryConfig(`value`: EnvironmentConfigRecoveryConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.recoveryConfig = mapped
    }

    /**
     * @param argument The recovery configuration settings for the Cloud Composer environment
     */
    @JvmName("fbabyjnbiuiacmxy")
    public suspend fun recoveryConfig(argument: suspend EnvironmentConfigRecoveryConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigRecoveryConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.recoveryConfig = mapped
    }

    /**
     * @param value Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-*.*.* and newer.
     */
    @JvmName("mcohrlyxavsitcls")
    public suspend fun resilienceMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resilienceMode = mapped
    }

    /**
     * @param value The configuration settings for software inside the environment.
     */
    @JvmName("ccigxuipxxhskxbs")
    public suspend fun softwareConfig(`value`: EnvironmentConfigSoftwareConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.softwareConfig = mapped
    }

    /**
     * @param argument The configuration settings for software inside the environment.
     */
    @JvmName("xxwihuweeyfimvdf")
    public suspend fun softwareConfig(argument: suspend EnvironmentConfigSoftwareConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigSoftwareConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.softwareConfig = mapped
    }

    /**
     * @param value The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("jvciltfvxbdeolrf")
    public suspend fun webServerConfig(`value`: EnvironmentConfigWebServerConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.webServerConfig = mapped
    }

    /**
     * @param argument The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.
     */
    @JvmName("nqjkgwwiinjeqepe")
    public suspend fun webServerConfig(argument: suspend EnvironmentConfigWebServerConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigWebServerConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.webServerConfig = mapped
    }

    /**
     * @param value Network-level access control policy for the Airflow web server.
     */
    @JvmName("grjyumwdoguavytp")
    public suspend fun webServerNetworkAccessControl(`value`: EnvironmentConfigWebServerNetworkAccessControlArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.webServerNetworkAccessControl = mapped
    }

    /**
     * @param argument Network-level access control policy for the Airflow web server.
     */
    @JvmName("xmppfceqgsdajghk")
    public suspend fun webServerNetworkAccessControl(argument: suspend EnvironmentConfigWebServerNetworkAccessControlArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigWebServerNetworkAccessControlArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.webServerNetworkAccessControl = mapped
    }

    /**
     * @param value The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
     */
    @JvmName("kehpvivdjqyevgdj")
    public suspend fun workloadsConfig(`value`: EnvironmentConfigWorkloadsConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workloadsConfig = mapped
    }

    /**
     * @param argument The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.
     */
    @JvmName("ihfgnpgnocotpqsi")
    public suspend fun workloadsConfig(argument: suspend EnvironmentConfigWorkloadsConfigArgsBuilder.() -> Unit) {
        val toBeMapped = EnvironmentConfigWorkloadsConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.workloadsConfig = mapped
    }

    internal fun build(): EnvironmentConfigArgs = EnvironmentConfigArgs(
        airflowUri = airflowUri,
        dagGcsPrefix = dagGcsPrefix,
        dataRetentionConfig = dataRetentionConfig,
        databaseConfig = databaseConfig,
        enablePrivateBuildsOnly = enablePrivateBuildsOnly,
        enablePrivateEnvironment = enablePrivateEnvironment,
        encryptionConfig = encryptionConfig,
        environmentSize = environmentSize,
        gkeCluster = gkeCluster,
        maintenanceWindow = maintenanceWindow,
        masterAuthorizedNetworksConfig = masterAuthorizedNetworksConfig,
        nodeConfig = nodeConfig,
        nodeCount = nodeCount,
        privateEnvironmentConfig = privateEnvironmentConfig,
        recoveryConfig = recoveryConfig,
        resilienceMode = resilienceMode,
        softwareConfig = softwareConfig,
        webServerConfig = webServerConfig,
        webServerNetworkAccessControl = webServerNetworkAccessControl,
        workloadsConfig = workloadsConfig,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy