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

com.pulumi.gcp.composer.kotlin.inputs.EnvironmentConfigSoftwareConfigArgs.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.EnvironmentConfigSoftwareConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property airflowConfigOverrides Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
 * @property cloudDataLineageIntegration The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer
 * @property envVariables Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
 * @property imageVersion The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
 * @property pypiPackages Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
 * @property pythonVersion The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.
 * @property schedulerCount The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.
 * @property webServerPluginsMode Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
 */
public data class EnvironmentConfigSoftwareConfigArgs(
    public val airflowConfigOverrides: Output>? = null,
    public val cloudDataLineageIntegration: Output? = null,
    public val envVariables: Output>? = null,
    public val imageVersion: Output? = null,
    public val pypiPackages: Output>? = null,
    public val pythonVersion: Output? = null,
    public val schedulerCount: Output? = null,
    public val webServerPluginsMode: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs =
        com.pulumi.gcp.composer.inputs.EnvironmentConfigSoftwareConfigArgs.builder()
            .airflowConfigOverrides(
                airflowConfigOverrides?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .cloudDataLineageIntegration(
                cloudDataLineageIntegration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .envVariables(
                envVariables?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .imageVersion(imageVersion?.applyValue({ args0 -> args0 }))
            .pypiPackages(
                pypiPackages?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .pythonVersion(pythonVersion?.applyValue({ args0 -> args0 }))
            .schedulerCount(schedulerCount?.applyValue({ args0 -> args0 }))
            .webServerPluginsMode(webServerPluginsMode?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [EnvironmentConfigSoftwareConfigArgs].
 */
@PulumiTagMarker
public class EnvironmentConfigSoftwareConfigArgsBuilder internal constructor() {
    private var airflowConfigOverrides: Output>? = null

    private var cloudDataLineageIntegration:
        Output? = null

    private var envVariables: Output>? = null

    private var imageVersion: Output? = null

    private var pypiPackages: Output>? = null

    private var pythonVersion: Output? = null

    private var schedulerCount: Output? = null

    private var webServerPluginsMode: Output? = null

    /**
     * @param value Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
     */
    @JvmName("omkodnooenxpwhlg")
    public suspend fun airflowConfigOverrides(`value`: Output>) {
        this.airflowConfigOverrides = value
    }

    /**
     * @param value The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer
     */
    @JvmName("itklakgkmkmfvfpc")
    public suspend fun cloudDataLineageIntegration(`value`: Output) {
        this.cloudDataLineageIntegration = value
    }

    /**
     * @param value Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
     */
    @JvmName("umpvaigcbqfpdhwt")
    public suspend fun envVariables(`value`: Output>) {
        this.envVariables = value
    }

    /**
     * @param value The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
     */
    @JvmName("nepflipvcqtosuwn")
    public suspend fun imageVersion(`value`: Output) {
        this.imageVersion = value
    }

    /**
     * @param value Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
     */
    @JvmName("wjdunmctrdliqmlo")
    public suspend fun pypiPackages(`value`: Output>) {
        this.pypiPackages = value
    }

    /**
     * @param value The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.
     */
    @JvmName("mvcsclpbdriocedb")
    public suspend fun pythonVersion(`value`: Output) {
        this.pythonVersion = value
    }

    /**
     * @param value The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.
     */
    @JvmName("elhpoppmqrrjubje")
    public suspend fun schedulerCount(`value`: Output) {
        this.schedulerCount = value
    }

    /**
     * @param value Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
     */
    @JvmName("lrlxuyosakjdlxti")
    public suspend fun webServerPluginsMode(`value`: Output) {
        this.webServerPluginsMode = value
    }

    /**
     * @param value Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
     */
    @JvmName("wibxarmfauvmreho")
    public suspend fun airflowConfigOverrides(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.airflowConfigOverrides = mapped
    }

    /**
     * @param values Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example "core-dags_are_paused_at_creation". Section names must not contain hyphens ("-"), opening square brackets ("["), or closing square brackets ("]"). The property name must not be empty and cannot contain "=" or ";". Section and property names cannot contain characters: "." Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.
     */
    @JvmName("gbgvyrqqnpxtirfm")
    public fun airflowConfigOverrides(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.airflowConfigOverrides = mapped
    }

    /**
     * @param value The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer
     */
    @JvmName("rtginjvkkuvonthj")
    public suspend fun cloudDataLineageIntegration(`value`: EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudDataLineageIntegration = mapped
    }

    /**
     * @param argument The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer
     */
    @JvmName("fjcggenrclulhoeo")
    public suspend fun cloudDataLineageIntegration(argument: suspend EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgsBuilder.() -> Unit) {
        val toBeMapped =
            EnvironmentConfigSoftwareConfigCloudDataLineageIntegrationArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.cloudDataLineageIntegration = mapped
    }

    /**
     * @param value Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
     */
    @JvmName("anjnqyjsivmewcey")
    public suspend fun envVariables(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.envVariables = mapped
    }

    /**
     * @param values Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.
     */
    @JvmName("dvgeaavlmuutvycf")
    public fun envVariables(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.envVariables = mapped
    }

    /**
     * @param value The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(\.[0-9]+\.[0-9]+(-preview\.[0-9]+)?)?|latest)-airflow-([0-9]+(\.[0-9]+(\.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.
     */
    @JvmName("bljimshetlmtgmdf")
    public suspend fun imageVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.imageVersion = mapped
    }

    /**
     * @param value Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
     */
    @JvmName("onsdmsyqhinhyxeu")
    public suspend fun pypiPackages(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pypiPackages = mapped
    }

    /**
     * @param values Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. "numpy"). Values are the lowercase extras and version specifier (e.g. "==1.12.0", "[devel,gcp_api]", "[devel]>=1.8.2, <1.9.2"). To specify a package without pinning it to a version specifier, use the empty string as the value.
     */
    @JvmName("shqxwyyhswrsfkhf")
    public fun pypiPackages(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.pypiPackages = mapped
    }

    /**
     * @param value The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.
     */
    @JvmName("jpcxxtttffkuoqop")
    public suspend fun pythonVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pythonVersion = mapped
    }

    /**
     * @param value The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.
     */
    @JvmName("ewupglvudndbybgb")
    public suspend fun schedulerCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.schedulerCount = mapped
    }

    /**
     * @param value Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.
     */
    @JvmName("xcgilgojtherfmkg")
    public suspend fun webServerPluginsMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.webServerPluginsMode = mapped
    }

    internal fun build(): EnvironmentConfigSoftwareConfigArgs = EnvironmentConfigSoftwareConfigArgs(
        airflowConfigOverrides = airflowConfigOverrides,
        cloudDataLineageIntegration = cloudDataLineageIntegration,
        envVariables = envVariables,
        imageVersion = imageVersion,
        pypiPackages = pypiPackages,
        pythonVersion = pythonVersion,
        schedulerCount = schedulerCount,
        webServerPluginsMode = webServerPluginsMode,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy