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

com.pulumi.googlenative.containeranalysis.v1alpha1.kotlin.inputs.SlsaRecipeArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.googlenative.containeranalysis.v1alpha1.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.containeranalysis.v1alpha1.inputs.SlsaRecipeArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Steps taken to build the artifact. For a TaskRun, typically each container corresponds to one step in the recipe.
 * @property arguments Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different.
 * @property definedInMaterial Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64.
 * @property entryPoint String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use.
 * @property environment Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different.
 * @property type URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
 */
public data class SlsaRecipeArgs(
    public val arguments: Output>? = null,
    public val definedInMaterial: Output? = null,
    public val entryPoint: Output? = null,
    public val environment: Output>? = null,
    public val type: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.googlenative.containeranalysis.v1alpha1.inputs.SlsaRecipeArgs =
        com.pulumi.googlenative.containeranalysis.v1alpha1.inputs.SlsaRecipeArgs.builder()
            .arguments(
                arguments?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .definedInMaterial(definedInMaterial?.applyValue({ args0 -> args0 }))
            .entryPoint(entryPoint?.applyValue({ args0 -> args0 }))
            .environment(
                environment?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .type(type?.applyValue({ args0 -> args0 })).build()
}

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

    private var definedInMaterial: Output? = null

    private var entryPoint: Output? = null

    private var environment: Output>? = null

    private var type: Output? = null

    /**
     * @param value Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different.
     */
    @JvmName("lghbjucehqfikcbb")
    public suspend fun arguments(`value`: Output>) {
        this.arguments = value
    }

    /**
     * @param value Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64.
     */
    @JvmName("tkeixahblpxoxlps")
    public suspend fun definedInMaterial(`value`: Output) {
        this.definedInMaterial = value
    }

    /**
     * @param value String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use.
     */
    @JvmName("cpklcvhrissmhwkj")
    public suspend fun entryPoint(`value`: Output) {
        this.entryPoint = value
    }

    /**
     * @param value Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different.
     */
    @JvmName("lwoudnaupdysmqqo")
    public suspend fun environment(`value`: Output>) {
        this.environment = value
    }

    /**
     * @param value URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
     */
    @JvmName("cswvwnwnlsyrruoi")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different.
     */
    @JvmName("fevkwfiniqqeahhi")
    public suspend fun arguments(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.arguments = mapped
    }

    /**
     * @param values Collection of all external inputs that influenced the build on top of recipe.definedInMaterial and recipe.entryPoint. For example, if the recipe type were "make", then this might be the flags passed to make aside from the target, which is captured in recipe.entryPoint. Depending on the recipe Type, the structure may be different.
     */
    @JvmName("jamkaurabhlrryqv")
    public fun arguments(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.arguments = mapped
    }

    /**
     * @param value Index in materials containing the recipe steps that are not implied by recipe.type. For example, if the recipe type were "make", then this would point to the source containing the Makefile, not the make program itself. Set to -1 if the recipe doesn't come from a material, as zero is default unset value for int64.
     */
    @JvmName("seqeiecbvcguijnv")
    public suspend fun definedInMaterial(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.definedInMaterial = mapped
    }

    /**
     * @param value String identifying the entry point into the build. This is often a path to a configuration file and/or a target label within that file. The syntax and meaning are defined by recipe.type. For example, if the recipe type were "make", then this would reference the directory in which to run make as well as which target to use.
     */
    @JvmName("mtqajjxuwvihogyv")
    public suspend fun entryPoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.entryPoint = mapped
    }

    /**
     * @param value Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different.
     */
    @JvmName("kcpfrgtngdrfpxur")
    public suspend fun environment(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.environment = mapped
    }

    /**
     * @param values Any other builder-controlled inputs necessary for correctly evaluating the recipe. Usually only needed for reproducing the build but not evaluated as part of policy. Depending on the recipe Type, the structure may be different.
     */
    @JvmName("atkucyjxgjstoayv")
    public fun environment(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.environment = mapped
    }

    /**
     * @param value URI indicating what type of recipe was performed. It determines the meaning of recipe.entryPoint, recipe.arguments, recipe.environment, and materials.
     */
    @JvmName("ahlukjfmnfcckpro")
    public suspend fun type(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): SlsaRecipeArgs = SlsaRecipeArgs(
        arguments = arguments,
        definedInMaterial = definedInMaterial,
        entryPoint = entryPoint,
        environment = environment,
        type = type,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy