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

com.pulumi.gcp.dataflow.kotlin.inputs.PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs.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.dataflow.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.dataflow.inputs.PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property additionalExperiments Additional experiment flags for the job.
 * @property additionalUserLabels Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. An object containing a list of key/value pairs.
 * 'Example: { "name": "wrench", "mass": "1kg", "count": "3" }.'
 * 'An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.'
 * @property enableStreamingEngine Whether to enable Streaming Engine for the job.
 * @property flexrsGoal Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs
 * https://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#FlexResourceSchedulingGoal
 * Possible values are: `FLEXRS_UNSPECIFIED`, `FLEXRS_SPEED_OPTIMIZED`, `FLEXRS_COST_OPTIMIZED`.
 * @property ipConfiguration Configuration for VM IPs.
 * https://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#WorkerIPAddressConfiguration
 * Possible values are: `WORKER_IP_UNSPECIFIED`, `WORKER_IP_PUBLIC`, `WORKER_IP_PRIVATE`.
 * @property kmsKeyName 'Name for the Cloud KMS key for the job. The key format is: projects//locations//keyRings//cryptoKeys/'
 * @property machineType The machine type to use for the job. Defaults to the value from the template if not specified.
 * @property maxWorkers The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.
 * @property network Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
 * @property numWorkers The initial number of Compute Engine instances for the job.
 * @property serviceAccountEmail The email address of the service account to run the job as.
 * @property subnetwork Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must use the complete URL.
 * @property tempLocation The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with gs://.
 * @property workerRegion The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with workerZone. If neither workerRegion nor workerZone is specified, default to the control plane's region.
 * @property workerZone The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with workerRegion. If neither workerRegion nor workerZone is specified, a zone in the control plane's region is chosen based on available capacity. If both workerZone and zone are set, workerZone takes precedence.
 * @property zone The Compute Engine availability zone for launching worker instances to run your pipeline. In the future, workerZone will take precedence.
 */
public data class PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs(
    public val additionalExperiments: Output>? = null,
    public val additionalUserLabels: Output>? = null,
    public val enableStreamingEngine: Output? = null,
    public val flexrsGoal: Output? = null,
    public val ipConfiguration: Output? = null,
    public val kmsKeyName: Output? = null,
    public val machineType: Output? = null,
    public val maxWorkers: Output? = null,
    public val network: Output? = null,
    public val numWorkers: Output? = null,
    public val serviceAccountEmail: Output? = null,
    public val subnetwork: Output? = null,
    public val tempLocation: Output? = null,
    public val workerRegion: Output? = null,
    public val workerZone: Output? = null,
    public val zone: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.dataflow.inputs.PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs =
        com.pulumi.gcp.dataflow.inputs.PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs.builder()
            .additionalExperiments(additionalExperiments?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .additionalUserLabels(
                additionalUserLabels?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .enableStreamingEngine(enableStreamingEngine?.applyValue({ args0 -> args0 }))
            .flexrsGoal(flexrsGoal?.applyValue({ args0 -> args0 }))
            .ipConfiguration(ipConfiguration?.applyValue({ args0 -> args0 }))
            .kmsKeyName(kmsKeyName?.applyValue({ args0 -> args0 }))
            .machineType(machineType?.applyValue({ args0 -> args0 }))
            .maxWorkers(maxWorkers?.applyValue({ args0 -> args0 }))
            .network(network?.applyValue({ args0 -> args0 }))
            .numWorkers(numWorkers?.applyValue({ args0 -> args0 }))
            .serviceAccountEmail(serviceAccountEmail?.applyValue({ args0 -> args0 }))
            .subnetwork(subnetwork?.applyValue({ args0 -> args0 }))
            .tempLocation(tempLocation?.applyValue({ args0 -> args0 }))
            .workerRegion(workerRegion?.applyValue({ args0 -> args0 }))
            .workerZone(workerZone?.applyValue({ args0 -> args0 }))
            .zone(zone?.applyValue({ args0 -> args0 })).build()
}

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

    private var additionalUserLabels: Output>? = null

    private var enableStreamingEngine: Output? = null

    private var flexrsGoal: Output? = null

    private var ipConfiguration: Output? = null

    private var kmsKeyName: Output? = null

    private var machineType: Output? = null

    private var maxWorkers: Output? = null

    private var network: Output? = null

    private var numWorkers: Output? = null

    private var serviceAccountEmail: Output? = null

    private var subnetwork: Output? = null

    private var tempLocation: Output? = null

    private var workerRegion: Output? = null

    private var workerZone: Output? = null

    private var zone: Output? = null

    /**
     * @param value Additional experiment flags for the job.
     */
    @JvmName("tmmrhlfjbmhgusqe")
    public suspend fun additionalExperiments(`value`: Output>) {
        this.additionalExperiments = value
    }

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

    /**
     * @param values Additional experiment flags for the job.
     */
    @JvmName("lqparjtxpqqbboqk")
    public suspend fun additionalExperiments(values: List>) {
        this.additionalExperiments = Output.all(values)
    }

    /**
     * @param value Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. An object containing a list of key/value pairs.
     * 'Example: { "name": "wrench", "mass": "1kg", "count": "3" }.'
     * 'An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.'
     */
    @JvmName("ctgvwwykubkisjsf")
    public suspend fun additionalUserLabels(`value`: Output>) {
        this.additionalUserLabels = value
    }

    /**
     * @param value Whether to enable Streaming Engine for the job.
     */
    @JvmName("vawmgxkpmuqvhdhm")
    public suspend fun enableStreamingEngine(`value`: Output) {
        this.enableStreamingEngine = value
    }

    /**
     * @param value Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs
     * https://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#FlexResourceSchedulingGoal
     * Possible values are: `FLEXRS_UNSPECIFIED`, `FLEXRS_SPEED_OPTIMIZED`, `FLEXRS_COST_OPTIMIZED`.
     */
    @JvmName("klvtnycqtaqjridw")
    public suspend fun flexrsGoal(`value`: Output) {
        this.flexrsGoal = value
    }

    /**
     * @param value Configuration for VM IPs.
     * https://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#WorkerIPAddressConfiguration
     * Possible values are: `WORKER_IP_UNSPECIFIED`, `WORKER_IP_PUBLIC`, `WORKER_IP_PRIVATE`.
     */
    @JvmName("uadnsdsbdopfmnvr")
    public suspend fun ipConfiguration(`value`: Output) {
        this.ipConfiguration = value
    }

    /**
     * @param value 'Name for the Cloud KMS key for the job. The key format is: projects//locations//keyRings//cryptoKeys/'
     */
    @JvmName("xcjwkvqoxxoeqtjd")
    public suspend fun kmsKeyName(`value`: Output) {
        this.kmsKeyName = value
    }

    /**
     * @param value The machine type to use for the job. Defaults to the value from the template if not specified.
     */
    @JvmName("ccruaejghonckbyp")
    public suspend fun machineType(`value`: Output) {
        this.machineType = value
    }

    /**
     * @param value The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.
     */
    @JvmName("ehrclfpfhsugxjuu")
    public suspend fun maxWorkers(`value`: Output) {
        this.maxWorkers = value
    }

    /**
     * @param value Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
     */
    @JvmName("elyiwpvabvrtxmcs")
    public suspend fun network(`value`: Output) {
        this.network = value
    }

    /**
     * @param value The initial number of Compute Engine instances for the job.
     */
    @JvmName("iddjywejanhworxy")
    public suspend fun numWorkers(`value`: Output) {
        this.numWorkers = value
    }

    /**
     * @param value The email address of the service account to run the job as.
     */
    @JvmName("dhcogowoudkvucyo")
    public suspend fun serviceAccountEmail(`value`: Output) {
        this.serviceAccountEmail = value
    }

    /**
     * @param value Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must use the complete URL.
     */
    @JvmName("oglrykkrwttbmmib")
    public suspend fun subnetwork(`value`: Output) {
        this.subnetwork = value
    }

    /**
     * @param value The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with gs://.
     */
    @JvmName("ctoehdiuybexnshy")
    public suspend fun tempLocation(`value`: Output) {
        this.tempLocation = value
    }

    /**
     * @param value The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with workerZone. If neither workerRegion nor workerZone is specified, default to the control plane's region.
     */
    @JvmName("crwebhbumpgjvgoe")
    public suspend fun workerRegion(`value`: Output) {
        this.workerRegion = value
    }

    /**
     * @param value The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with workerRegion. If neither workerRegion nor workerZone is specified, a zone in the control plane's region is chosen based on available capacity. If both workerZone and zone are set, workerZone takes precedence.
     */
    @JvmName("yxfmvdbjqlmckibg")
    public suspend fun workerZone(`value`: Output) {
        this.workerZone = value
    }

    /**
     * @param value The Compute Engine availability zone for launching worker instances to run your pipeline. In the future, workerZone will take precedence.
     */
    @JvmName("pmkemaemwyufvryx")
    public suspend fun zone(`value`: Output) {
        this.zone = value
    }

    /**
     * @param value Additional experiment flags for the job.
     */
    @JvmName("notdeumubjnkpdyw")
    public suspend fun additionalExperiments(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalExperiments = mapped
    }

    /**
     * @param values Additional experiment flags for the job.
     */
    @JvmName("dtdvmqteomkvpsah")
    public suspend fun additionalExperiments(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalExperiments = mapped
    }

    /**
     * @param value Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. An object containing a list of key/value pairs.
     * 'Example: { "name": "wrench", "mass": "1kg", "count": "3" }.'
     * 'An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.'
     */
    @JvmName("twttvlycycqlhqwc")
    public suspend fun additionalUserLabels(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalUserLabels = mapped
    }

    /**
     * @param values Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. An object containing a list of key/value pairs.
     * 'Example: { "name": "wrench", "mass": "1kg", "count": "3" }.'
     * 'An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.'
     */
    @JvmName("mrnypghgdvpfimhv")
    public fun additionalUserLabels(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalUserLabels = mapped
    }

    /**
     * @param value Whether to enable Streaming Engine for the job.
     */
    @JvmName("ourygwpuwiscqmml")
    public suspend fun enableStreamingEngine(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableStreamingEngine = mapped
    }

    /**
     * @param value Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs
     * https://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#FlexResourceSchedulingGoal
     * Possible values are: `FLEXRS_UNSPECIFIED`, `FLEXRS_SPEED_OPTIMIZED`, `FLEXRS_COST_OPTIMIZED`.
     */
    @JvmName("dnfmocikijxyxgnx")
    public suspend fun flexrsGoal(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.flexrsGoal = mapped
    }

    /**
     * @param value Configuration for VM IPs.
     * https://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#WorkerIPAddressConfiguration
     * Possible values are: `WORKER_IP_UNSPECIFIED`, `WORKER_IP_PUBLIC`, `WORKER_IP_PRIVATE`.
     */
    @JvmName("nqeuagegwnbrgiyr")
    public suspend fun ipConfiguration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipConfiguration = mapped
    }

    /**
     * @param value 'Name for the Cloud KMS key for the job. The key format is: projects//locations//keyRings//cryptoKeys/'
     */
    @JvmName("okduouvefkhkgrrs")
    public suspend fun kmsKeyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyName = mapped
    }

    /**
     * @param value The machine type to use for the job. Defaults to the value from the template if not specified.
     */
    @JvmName("knvsvbhftrudkgqu")
    public suspend fun machineType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.machineType = mapped
    }

    /**
     * @param value The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.
     */
    @JvmName("oloinroiojkotulc")
    public suspend fun maxWorkers(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxWorkers = mapped
    }

    /**
     * @param value Network to which VMs will be assigned. If empty or unspecified, the service will use the network "default".
     */
    @JvmName("ryaddsxmctgtkuyh")
    public suspend fun network(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.network = mapped
    }

    /**
     * @param value The initial number of Compute Engine instances for the job.
     */
    @JvmName("mjjktaxesnxlkinq")
    public suspend fun numWorkers(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.numWorkers = mapped
    }

    /**
     * @param value The email address of the service account to run the job as.
     */
    @JvmName("efyirbcmlswdirss")
    public suspend fun serviceAccountEmail(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceAccountEmail = mapped
    }

    /**
     * @param value Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK" or "regions/REGION/subnetworks/SUBNETWORK". If the subnetwork is located in a Shared VPC network, you must use the complete URL.
     */
    @JvmName("bxumipksqqxfnlff")
    public suspend fun subnetwork(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetwork = mapped
    }

    /**
     * @param value The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with gs://.
     */
    @JvmName("shkpqpkbjdpnylgr")
    public suspend fun tempLocation(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tempLocation = mapped
    }

    /**
     * @param value The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1". Mutually exclusive with workerZone. If neither workerRegion nor workerZone is specified, default to the control plane's region.
     */
    @JvmName("fnqcwttachibnmar")
    public suspend fun workerRegion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workerRegion = mapped
    }

    /**
     * @param value The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. "us-west1-a". Mutually exclusive with workerRegion. If neither workerRegion nor workerZone is specified, a zone in the control plane's region is chosen based on available capacity. If both workerZone and zone are set, workerZone takes precedence.
     */
    @JvmName("jwpbgrhfqrlkdejv")
    public suspend fun workerZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.workerZone = mapped
    }

    /**
     * @param value The Compute Engine availability zone for launching worker instances to run your pipeline. In the future, workerZone will take precedence.
     */
    @JvmName("emmxwtalvwcxjkug")
    public suspend fun zone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.zone = mapped
    }

    internal fun build(): PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs =
        PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironmentArgs(
            additionalExperiments = additionalExperiments,
            additionalUserLabels = additionalUserLabels,
            enableStreamingEngine = enableStreamingEngine,
            flexrsGoal = flexrsGoal,
            ipConfiguration = ipConfiguration,
            kmsKeyName = kmsKeyName,
            machineType = machineType,
            maxWorkers = maxWorkers,
            network = network,
            numWorkers = numWorkers,
            serviceAccountEmail = serviceAccountEmail,
            subnetwork = subnetwork,
            tempLocation = tempLocation,
            workerRegion = workerRegion,
            workerZone = workerZone,
            zone = zone,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy