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

com.pulumi.gcp.cloudbuild.kotlin.outputs.TriggerBuildStep.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.cloudbuild.kotlin.outputs

import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List

/**
 *
 * @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 TriggerBuildStep(
    public val allowExitCodes: List? = null,
    public val allowFailure: Boolean? = null,
    public val args: List? = null,
    public val dir: String? = null,
    public val entrypoint: String? = null,
    public val envs: List? = null,
    public val id: String? = null,
    public val name: String,
    public val script: String? = null,
    public val secretEnvs: List? = null,
    public val timeout: String? = null,
    public val timing: String? = null,
    public val volumes: List? = null,
    public val waitFors: List? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.gcp.cloudbuild.outputs.TriggerBuildStep): TriggerBuildStep = TriggerBuildStep(
            allowExitCodes = javaType.allowExitCodes().map({ args0 -> args0 }),
            allowFailure = javaType.allowFailure().map({ args0 -> args0 }).orElse(null),
            args = javaType.args().map({ args0 -> args0 }),
            dir = javaType.dir().map({ args0 -> args0 }).orElse(null),
            entrypoint = javaType.entrypoint().map({ args0 -> args0 }).orElse(null),
            envs = javaType.envs().map({ args0 -> args0 }),
            id = javaType.id().map({ args0 -> args0 }).orElse(null),
            name = javaType.name(),
            script = javaType.script().map({ args0 -> args0 }).orElse(null),
            secretEnvs = javaType.secretEnvs().map({ args0 -> args0 }),
            timeout = javaType.timeout().map({ args0 -> args0 }).orElse(null),
            timing = javaType.timing().map({ args0 -> args0 }).orElse(null),
            volumes = javaType.volumes().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.gcp.cloudbuild.kotlin.outputs.TriggerBuildStepVolume.Companion.toKotlin(args0)
                })
            }),
            waitFors = javaType.waitFors().map({ args0 -> args0 }),
        )
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy