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

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

package com.pulumi.gcp.cloudbuild.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.cloudbuild.inputs.TriggerBuildStepArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
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.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property allowExitCodes Allow this build step to fail without failing the entire build if and
 * only if the exit code is one of the specified codes.
 * If `allowFailure` is also specified, this field will take precedence.
 * @property allowFailure Allow this build step to fail without failing the entire build.
 * If false, the entire build will fail if this step fails. Otherwise, the
 * build will succeed, but this step will still have a failure status.
 * Error information will be reported in the `failureDetail` field.
 * `allowExitCodes` takes precedence over this field.
 * @property args A list of arguments that will be presented to the step when it is started.
 * If the image used to run the step's container has an entrypoint, the args
 * are used as arguments to that entrypoint. If the image does not define an
 * entrypoint, the first element in args is used as the entrypoint, and the
 * remainder will be used as arguments.
 * @property dir Working directory to use when running this step's container.
 * If this value is a relative path, it is relative to the build's working
 * directory. If this value is absolute, it may be outside the build's working
 * directory, in which case the contents of the path may not be persisted
 * across build step executions, unless a `volume` for that path is specified.
 * If the build specifies a `RepoSource` with `dir` and a step with a
 * `dir`,
 * which specifies an absolute path, the `RepoSource` `dir` is ignored
 * for the step's execution.
 * @property entrypoint Entrypoint to be used instead of the build step image's
 * default entrypoint.
 * If unset, the image's default entrypoint is used
 * @property envs A list of environment variable definitions to be used when
 * running a step.
 * The elements are of the form "KEY=VALUE" for the environment variable
 * "KEY" being given the value "VALUE".
 * @property id Unique identifier for this build step, used in `wait_for` to
 * reference this build step as a dependency.
 * @property name The name of the container image that will run this particular build step.
 * If the image is available in the host's Docker daemon's cache, it will be
 * run directly. If not, the host will attempt to pull the image first, using
 * the builder service account's credentials if necessary.
 * The Docker daemon's cache will already have the latest versions of all of
 * the officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders
 * for images and examples).
 * The Docker daemon will also have cached many of the layers for some popular
 * images, like "ubuntu", "debian", but they will be refreshed at the time
 * you attempt to use them.
 * If you built an image in a previous build step, it will be stored in the
 * host's Docker daemon's cache and is available to use as the name for a
 * later build step.
 * @property script A shell script to be executed in the step.
 * When script is provided, the user cannot specify the entrypoint or args.
 * @property secretEnvs A list of environment variables which are encrypted using
 * a Cloud Key
 * Management Service crypto key. These values must be specified in
 * the build's `Secret`.
 * @property timeout Time limit for executing this build step. If not defined,
 * the step has no
 * time limit and will be allowed to continue to run until either it
 * completes or the build itself times out.
 * @property timing Output only. Stores timing information for executing this
 * build step.
 * @property volumes List of volumes to mount into the build step.
 * Each volume is created as an empty volume prior to execution of the
 * build step. Upon completion of the build, volumes and their contents
 * are discarded.
 * Using a named volume in only one step is not valid as it is
 * indicative of a build request with an incorrect configuration.
 * Structure is documented below.
 * @property waitFors The ID(s) of the step(s) that this build step depends on.
 * This build step will not start until all the build steps in `wait_for`
 * have completed successfully. If `wait_for` is empty, this build step
 * will start when all previous build steps in the `Build.Steps` list
 * have completed successfully.
 */
public data class TriggerBuildStepArgs(
    public val allowExitCodes: Output>? = null,
    public val allowFailure: Output? = null,
    public val args: Output>? = null,
    public val dir: Output? = null,
    public val entrypoint: Output? = null,
    public val envs: Output>? = null,
    public val id: Output? = null,
    public val name: Output,
    public val script: Output? = null,
    public val secretEnvs: Output>? = null,
    public val timeout: Output? = null,
    public val timing: Output? = null,
    public val volumes: Output>? = null,
    public val waitFors: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.cloudbuild.inputs.TriggerBuildStepArgs =
        com.pulumi.gcp.cloudbuild.inputs.TriggerBuildStepArgs.builder()
            .allowExitCodes(allowExitCodes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowFailure(allowFailure?.applyValue({ args0 -> args0 }))
            .args(args?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .dir(dir?.applyValue({ args0 -> args0 }))
            .entrypoint(entrypoint?.applyValue({ args0 -> args0 }))
            .envs(envs?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .id(id?.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .script(script?.applyValue({ args0 -> args0 }))
            .secretEnvs(secretEnvs?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .timeout(timeout?.applyValue({ args0 -> args0 }))
            .timing(timing?.applyValue({ args0 -> args0 }))
            .volumes(
                volumes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .waitFors(waitFors?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

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

    private var allowFailure: Output? = null

    private var args: Output>? = null

    private var dir: Output? = null

    private var entrypoint: Output? = null

    private var envs: Output>? = null

    private var id: Output? = null

    private var name: Output? = null

    private var script: Output? = null

    private var secretEnvs: Output>? = null

    private var timeout: Output? = null

    private var timing: Output? = null

    private var volumes: Output>? = null

    private var waitFors: Output>? = null

    /**
     * @param value Allow this build step to fail without failing the entire build if and
     * only if the exit code is one of the specified codes.
     * If `allowFailure` is also specified, this field will take precedence.
     */
    @JvmName("cwjgowetostclbwo")
    public suspend fun allowExitCodes(`value`: Output>) {
        this.allowExitCodes = value
    }

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

    /**
     * @param values Allow this build step to fail without failing the entire build if and
     * only if the exit code is one of the specified codes.
     * If `allowFailure` is also specified, this field will take precedence.
     */
    @JvmName("qrngrjqxwfgyjgjw")
    public suspend fun allowExitCodes(values: List>) {
        this.allowExitCodes = Output.all(values)
    }

    /**
     * @param value Allow this build step to fail without failing the entire build.
     * If false, the entire build will fail if this step fails. Otherwise, the
     * build will succeed, but this step will still have a failure status.
     * Error information will be reported in the `failureDetail` field.
     * `allowExitCodes` takes precedence over this field.
     */
    @JvmName("mcqjslqsvskmgrfi")
    public suspend fun allowFailure(`value`: Output) {
        this.allowFailure = value
    }

    /**
     * @param value A list of arguments that will be presented to the step when it is started.
     * If the image used to run the step's container has an entrypoint, the args
     * are used as arguments to that entrypoint. If the image does not define an
     * entrypoint, the first element in args is used as the entrypoint, and the
     * remainder will be used as arguments.
     */
    @JvmName("yujwemxssnvnjlbo")
    public suspend fun args(`value`: Output>) {
        this.args = value
    }

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

    /**
     * @param values A list of arguments that will be presented to the step when it is started.
     * If the image used to run the step's container has an entrypoint, the args
     * are used as arguments to that entrypoint. If the image does not define an
     * entrypoint, the first element in args is used as the entrypoint, and the
     * remainder will be used as arguments.
     */
    @JvmName("ipbxurwjxnnlgcse")
    public suspend fun args(values: List>) {
        this.args = Output.all(values)
    }

    /**
     * @param value Working directory to use when running this step's container.
     * If this value is a relative path, it is relative to the build's working
     * directory. If this value is absolute, it may be outside the build's working
     * directory, in which case the contents of the path may not be persisted
     * across build step executions, unless a `volume` for that path is specified.
     * If the build specifies a `RepoSource` with `dir` and a step with a
     * `dir`,
     * which specifies an absolute path, the `RepoSource` `dir` is ignored
     * for the step's execution.
     */
    @JvmName("kejgxnpdqflvjbdw")
    public suspend fun dir(`value`: Output) {
        this.dir = value
    }

    /**
     * @param value Entrypoint to be used instead of the build step image's
     * default entrypoint.
     * If unset, the image's default entrypoint is used
     */
    @JvmName("djlfqtflxuuythhj")
    public suspend fun entrypoint(`value`: Output) {
        this.entrypoint = value
    }

    /**
     * @param value A list of environment variable definitions to be used when
     * running a step.
     * The elements are of the form "KEY=VALUE" for the environment variable
     * "KEY" being given the value "VALUE".
     */
    @JvmName("mvmutbtgtmsdlnhj")
    public suspend fun envs(`value`: Output>) {
        this.envs = value
    }

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

    /**
     * @param values A list of environment variable definitions to be used when
     * running a step.
     * The elements are of the form "KEY=VALUE" for the environment variable
     * "KEY" being given the value "VALUE".
     */
    @JvmName("cvfogxroobpthkts")
    public suspend fun envs(values: List>) {
        this.envs = Output.all(values)
    }

    /**
     * @param value Unique identifier for this build step, used in `wait_for` to
     * reference this build step as a dependency.
     */
    @JvmName("vpwcictkfyheicek")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value The name of the container image that will run this particular build step.
     * If the image is available in the host's Docker daemon's cache, it will be
     * run directly. If not, the host will attempt to pull the image first, using
     * the builder service account's credentials if necessary.
     * The Docker daemon's cache will already have the latest versions of all of
     * the officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders
     * for images and examples).
     * The Docker daemon will also have cached many of the layers for some popular
     * images, like "ubuntu", "debian", but they will be refreshed at the time
     * you attempt to use them.
     * If you built an image in a previous build step, it will be stored in the
     * host's Docker daemon's cache and is available to use as the name for a
     * later build step.
     */
    @JvmName("mgrvuhpyojtlwfmm")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value A shell script to be executed in the step.
     * When script is provided, the user cannot specify the entrypoint or args.
     */
    @JvmName("padisomtrivoudpw")
    public suspend fun script(`value`: Output) {
        this.script = value
    }

    /**
     * @param value A list of environment variables which are encrypted using
     * a Cloud Key
     * Management Service crypto key. These values must be specified in
     * the build's `Secret`.
     */
    @JvmName("jaurfnbhiicoetaq")
    public suspend fun secretEnvs(`value`: Output>) {
        this.secretEnvs = value
    }

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

    /**
     * @param values A list of environment variables which are encrypted using
     * a Cloud Key
     * Management Service crypto key. These values must be specified in
     * the build's `Secret`.
     */
    @JvmName("qptatqpbypvigaic")
    public suspend fun secretEnvs(values: List>) {
        this.secretEnvs = Output.all(values)
    }

    /**
     * @param value Time limit for executing this build step. If not defined,
     * the step has no
     * time limit and will be allowed to continue to run until either it
     * completes or the build itself times out.
     */
    @JvmName("nvaiuxhictwuwbah")
    public suspend fun timeout(`value`: Output) {
        this.timeout = value
    }

    /**
     * @param value Output only. Stores timing information for executing this
     * build step.
     */
    @JvmName("arumqqwsjmpsxvgc")
    public suspend fun timing(`value`: Output) {
        this.timing = value
    }

    /**
     * @param value List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("fopylkmvylkjvatf")
    public suspend fun volumes(`value`: Output>) {
        this.volumes = value
    }

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

    /**
     * @param values List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("olacpaxschjtqbju")
    public suspend fun volumes(values: List>) {
        this.volumes = Output.all(values)
    }

    /**
     * @param value The ID(s) of the step(s) that this build step depends on.
     * This build step will not start until all the build steps in `wait_for`
     * have completed successfully. If `wait_for` is empty, this build step
     * will start when all previous build steps in the `Build.Steps` list
     * have completed successfully.
     */
    @JvmName("gttgadnseupchurr")
    public suspend fun waitFors(`value`: Output>) {
        this.waitFors = value
    }

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

    /**
     * @param values The ID(s) of the step(s) that this build step depends on.
     * This build step will not start until all the build steps in `wait_for`
     * have completed successfully. If `wait_for` is empty, this build step
     * will start when all previous build steps in the `Build.Steps` list
     * have completed successfully.
     */
    @JvmName("lmjjkchybstomtot")
    public suspend fun waitFors(values: List>) {
        this.waitFors = Output.all(values)
    }

    /**
     * @param value Allow this build step to fail without failing the entire build if and
     * only if the exit code is one of the specified codes.
     * If `allowFailure` is also specified, this field will take precedence.
     */
    @JvmName("hfrbxcgjwbqruopm")
    public suspend fun allowExitCodes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowExitCodes = mapped
    }

    /**
     * @param values Allow this build step to fail without failing the entire build if and
     * only if the exit code is one of the specified codes.
     * If `allowFailure` is also specified, this field will take precedence.
     */
    @JvmName("mirlvnfkmmblfbav")
    public suspend fun allowExitCodes(vararg values: Int) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowExitCodes = mapped
    }

    /**
     * @param value Allow this build step to fail without failing the entire build.
     * If false, the entire build will fail if this step fails. Otherwise, the
     * build will succeed, but this step will still have a failure status.
     * Error information will be reported in the `failureDetail` field.
     * `allowExitCodes` takes precedence over this field.
     */
    @JvmName("honnpbrchaifpspx")
    public suspend fun allowFailure(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowFailure = mapped
    }

    /**
     * @param value A list of arguments that will be presented to the step when it is started.
     * If the image used to run the step's container has an entrypoint, the args
     * are used as arguments to that entrypoint. If the image does not define an
     * entrypoint, the first element in args is used as the entrypoint, and the
     * remainder will be used as arguments.
     */
    @JvmName("ghnjtybksyyyhumr")
    public suspend fun args(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.args = mapped
    }

    /**
     * @param values A list of arguments that will be presented to the step when it is started.
     * If the image used to run the step's container has an entrypoint, the args
     * are used as arguments to that entrypoint. If the image does not define an
     * entrypoint, the first element in args is used as the entrypoint, and the
     * remainder will be used as arguments.
     */
    @JvmName("dcefwuxromeygvad")
    public suspend fun args(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.args = mapped
    }

    /**
     * @param value Working directory to use when running this step's container.
     * If this value is a relative path, it is relative to the build's working
     * directory. If this value is absolute, it may be outside the build's working
     * directory, in which case the contents of the path may not be persisted
     * across build step executions, unless a `volume` for that path is specified.
     * If the build specifies a `RepoSource` with `dir` and a step with a
     * `dir`,
     * which specifies an absolute path, the `RepoSource` `dir` is ignored
     * for the step's execution.
     */
    @JvmName("mgrphwaoyxbyvjsv")
    public suspend fun dir(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dir = mapped
    }

    /**
     * @param value Entrypoint to be used instead of the build step image's
     * default entrypoint.
     * If unset, the image's default entrypoint is used
     */
    @JvmName("pvkkxejvkhdoekot")
    public suspend fun entrypoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.entrypoint = mapped
    }

    /**
     * @param value A list of environment variable definitions to be used when
     * running a step.
     * The elements are of the form "KEY=VALUE" for the environment variable
     * "KEY" being given the value "VALUE".
     */
    @JvmName("asljqqdqkkogqdlt")
    public suspend fun envs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.envs = mapped
    }

    /**
     * @param values A list of environment variable definitions to be used when
     * running a step.
     * The elements are of the form "KEY=VALUE" for the environment variable
     * "KEY" being given the value "VALUE".
     */
    @JvmName("oahbmgpcxovveffh")
    public suspend fun envs(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.envs = mapped
    }

    /**
     * @param value Unique identifier for this build step, used in `wait_for` to
     * reference this build step as a dependency.
     */
    @JvmName("acnaockhqmpqwpqa")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value The name of the container image that will run this particular build step.
     * If the image is available in the host's Docker daemon's cache, it will be
     * run directly. If not, the host will attempt to pull the image first, using
     * the builder service account's credentials if necessary.
     * The Docker daemon's cache will already have the latest versions of all of
     * the officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders
     * for images and examples).
     * The Docker daemon will also have cached many of the layers for some popular
     * images, like "ubuntu", "debian", but they will be refreshed at the time
     * you attempt to use them.
     * If you built an image in a previous build step, it will be stored in the
     * host's Docker daemon's cache and is available to use as the name for a
     * later build step.
     */
    @JvmName("dfrurnjynpyweuhx")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value A shell script to be executed in the step.
     * When script is provided, the user cannot specify the entrypoint or args.
     */
    @JvmName("lluauvebveftdayc")
    public suspend fun script(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.script = mapped
    }

    /**
     * @param value A list of environment variables which are encrypted using
     * a Cloud Key
     * Management Service crypto key. These values must be specified in
     * the build's `Secret`.
     */
    @JvmName("eusrxrrdslepkkrk")
    public suspend fun secretEnvs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.secretEnvs = mapped
    }

    /**
     * @param values A list of environment variables which are encrypted using
     * a Cloud Key
     * Management Service crypto key. These values must be specified in
     * the build's `Secret`.
     */
    @JvmName("bjigflkfajkavoad")
    public suspend fun secretEnvs(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secretEnvs = mapped
    }

    /**
     * @param value Time limit for executing this build step. If not defined,
     * the step has no
     * time limit and will be allowed to continue to run until either it
     * completes or the build itself times out.
     */
    @JvmName("efjjveferpqjflmo")
    public suspend fun timeout(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeout = mapped
    }

    /**
     * @param value Output only. Stores timing information for executing this
     * build step.
     */
    @JvmName("ntxswlsuldmpnimn")
    public suspend fun timing(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timing = mapped
    }

    /**
     * @param value List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("rixrmxrkhsuacque")
    public suspend fun volumes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.volumes = mapped
    }

    /**
     * @param argument List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("fygefepnkmakxqjr")
    public suspend fun volumes(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            TriggerBuildStepVolumeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.volumes = mapped
    }

    /**
     * @param argument List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("sjobdibmclgdphpr")
    public suspend fun volumes(vararg argument: suspend TriggerBuildStepVolumeArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            TriggerBuildStepVolumeArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.volumes = mapped
    }

    /**
     * @param argument List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("promtkdjlnylruwh")
    public suspend fun volumes(argument: suspend TriggerBuildStepVolumeArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TriggerBuildStepVolumeArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.volumes = mapped
    }

    /**
     * @param values List of volumes to mount into the build step.
     * Each volume is created as an empty volume prior to execution of the
     * build step. Upon completion of the build, volumes and their contents
     * are discarded.
     * Using a named volume in only one step is not valid as it is
     * indicative of a build request with an incorrect configuration.
     * Structure is documented below.
     */
    @JvmName("lrxajbcgefjdrxjt")
    public suspend fun volumes(vararg values: TriggerBuildStepVolumeArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.volumes = mapped
    }

    /**
     * @param value The ID(s) of the step(s) that this build step depends on.
     * This build step will not start until all the build steps in `wait_for`
     * have completed successfully. If `wait_for` is empty, this build step
     * will start when all previous build steps in the `Build.Steps` list
     * have completed successfully.
     */
    @JvmName("keuydwjdsnxtdwom")
    public suspend fun waitFors(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.waitFors = mapped
    }

    /**
     * @param values The ID(s) of the step(s) that this build step depends on.
     * This build step will not start until all the build steps in `wait_for`
     * have completed successfully. If `wait_for` is empty, this build step
     * will start when all previous build steps in the `Build.Steps` list
     * have completed successfully.
     */
    @JvmName("ddvuntsribpyhrpq")
    public suspend fun waitFors(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.waitFors = mapped
    }

    internal fun build(): TriggerBuildStepArgs = TriggerBuildStepArgs(
        allowExitCodes = allowExitCodes,
        allowFailure = allowFailure,
        args = args,
        dir = dir,
        entrypoint = entrypoint,
        envs = envs,
        id = id,
        name = name ?: throw PulumiNullFieldException("name"),
        script = script,
        secretEnvs = secretEnvs,
        timeout = timeout,
        timing = timing,
        volumes = volumes,
        waitFors = waitFors,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy