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

com.pulumi.aws.pipes.kotlin.inputs.PipeTargetParametersBatchJobParametersContainerOverridesArgs.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: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.pipes.kotlin.inputs

import com.pulumi.aws.pipes.inputs.PipeTargetParametersBatchJobParametersContainerOverridesArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property commands List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.
 * @property environments The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
 * @property instanceType The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided.
 * @property resourceRequirements The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
 */
public data class PipeTargetParametersBatchJobParametersContainerOverridesArgs(
    public val commands: Output>? = null,
    public val environments: Output>? = null,
    public val instanceType: Output? = null,
    public val resourceRequirements: Output>? =
        null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.pipes.inputs.PipeTargetParametersBatchJobParametersContainerOverridesArgs =
        com.pulumi.aws.pipes.inputs.PipeTargetParametersBatchJobParametersContainerOverridesArgs.builder()
            .commands(commands?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .environments(
                environments?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .instanceType(instanceType?.applyValue({ args0 -> args0 }))
            .resourceRequirements(
                resourceRequirements?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

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

    private var environments:
        Output>? = null

    private var instanceType: Output? = null

    private var resourceRequirements:
        Output>? =
        null

    /**
     * @param value List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.
     */
    @JvmName("wnvyaeqiikabwskq")
    public suspend fun commands(`value`: Output>) {
        this.commands = value
    }

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

    /**
     * @param values List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.
     */
    @JvmName("uxvflidawttquabi")
    public suspend fun commands(values: List>) {
        this.commands = Output.all(values)
    }

    /**
     * @param value The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("kapblqtxabbeeahi")
    public suspend fun environments(`value`: Output>) {
        this.environments = value
    }

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

    /**
     * @param values The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("ydtjmqwmremmbffx")
    public suspend fun environments(values: List>) {
        this.environments = Output.all(values)
    }

    /**
     * @param value The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided.
     */
    @JvmName("uyxvrbfqcvqecyhl")
    public suspend fun instanceType(`value`: Output) {
        this.instanceType = value
    }

    /**
     * @param value The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("sxjhwyenimequghk")
    public suspend fun resourceRequirements(`value`: Output>) {
        this.resourceRequirements = value
    }

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

    /**
     * @param values The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("qunglecjmsbtwxrb")
    public suspend fun resourceRequirements(values: List>) {
        this.resourceRequirements = Output.all(values)
    }

    /**
     * @param value List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.
     */
    @JvmName("mlvrhovntfvmguti")
    public suspend fun commands(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.commands = mapped
    }

    /**
     * @param values List of commands to send to the container that overrides the default command from the Docker image or the task definition. You must also specify a container name.
     */
    @JvmName("xpnphkxetutvwvqo")
    public suspend fun commands(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.commands = mapped
    }

    /**
     * @param value The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("lwwddnepebhjhjua")
    public suspend fun environments(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.environments = mapped
    }

    /**
     * @param argument The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("ueapfiusuthdrkkx")
    public suspend fun environments(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.environments = mapped
    }

    /**
     * @param argument The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("lgpqpvrgjjybrlxh")
    public suspend fun environments(vararg argument: suspend PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.environments = mapped
    }

    /**
     * @param argument The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("darboqgvxvblgyln")
    public suspend fun environments(argument: suspend PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.environments = mapped
    }

    /**
     * @param values The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name. Detailed below.
     */
    @JvmName("tsppisuphpbqndhm")
    public suspend fun environments(vararg values: PipeTargetParametersBatchJobParametersContainerOverridesEnvironmentArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.environments = mapped
    }

    /**
     * @param value The instance type to use for a multi-node parallel job. This parameter isn't applicable to single-node container jobs or jobs that run on Fargate resources, and shouldn't be provided.
     */
    @JvmName("ovaevuvdymadgphy")
    public suspend fun instanceType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instanceType = mapped
    }

    /**
     * @param value The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("atpukmbqpagdcywb")
    public suspend fun resourceRequirements(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceRequirements = mapped
    }

    /**
     * @param argument The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("kgjmbiwdroratnvr")
    public suspend fun resourceRequirements(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.resourceRequirements = mapped
    }

    /**
     * @param argument The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("talvijxsnahtfmjv")
    public suspend fun resourceRequirements(vararg argument: suspend PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.resourceRequirements = mapped
    }

    /**
     * @param argument The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("uouytwgjsjmqqnam")
    public suspend fun resourceRequirements(argument: suspend PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.resourceRequirements = mapped
    }

    /**
     * @param values The type and amount of a resource to assign to a container, instead of the default value from the task definition. The only supported resource is a GPU. Detailed below.
     */
    @JvmName("raaknxvchwlfsnaw")
    public suspend fun resourceRequirements(vararg values: PipeTargetParametersBatchJobParametersContainerOverridesResourceRequirementArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resourceRequirements = mapped
    }

    internal fun build(): PipeTargetParametersBatchJobParametersContainerOverridesArgs =
        PipeTargetParametersBatchJobParametersContainerOverridesArgs(
            commands = commands,
            environments = environments,
            instanceType = instanceType,
            resourceRequirements = resourceRequirements,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy