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

com.pulumi.awsnative.codepipeline.kotlin.inputs.PipelineActionDeclarationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.codepipeline.kotlin.inputs

import com.pulumi.awsnative.codepipeline.inputs.PipelineActionDeclarationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Represents information about an action declaration.
 * @property actionTypeId Specifies the action type and the provider of the action.
 * @property configuration The action's configuration. These are key-value pairs that specify input values for an action.
 * @property inputArtifacts The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
 * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
 * @property name The action declaration's name.
 * @property namespace The variable namespace associated with the action. All variables produced as output by this action fall under this namespace.
 * @property outputArtifacts The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
 * @property region The action declaration's AWS Region, such as us-east-1.
 * @property roleArn The ARN of the IAM service role that performs the declared action. This is assumed through the roleArn for the pipeline.
 * @property runOrder The order in which actions are run.
 * @property timeoutInMinutes A timeout duration in minutes that can be applied against the ActionType’s default timeout value specified in Quotas for AWS CodePipeline. This attribute is available only to the manual approval ActionType.
 */
public data class PipelineActionDeclarationArgs(
    public val actionTypeId: Output,
    public val configuration: Output? = null,
    public val inputArtifacts: Output>? = null,
    public val name: Output,
    public val namespace: Output? = null,
    public val outputArtifacts: Output>? = null,
    public val region: Output? = null,
    public val roleArn: Output? = null,
    public val runOrder: Output? = null,
    public val timeoutInMinutes: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.codepipeline.inputs.PipelineActionDeclarationArgs =
        com.pulumi.awsnative.codepipeline.inputs.PipelineActionDeclarationArgs.builder()
            .actionTypeId(actionTypeId.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .configuration(configuration?.applyValue({ args0 -> args0 }))
            .inputArtifacts(
                inputArtifacts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .name(name.applyValue({ args0 -> args0 }))
            .namespace(namespace?.applyValue({ args0 -> args0 }))
            .outputArtifacts(
                outputArtifacts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .region(region?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .runOrder(runOrder?.applyValue({ args0 -> args0 }))
            .timeoutInMinutes(timeoutInMinutes?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [PipelineActionDeclarationArgs].
 */
@PulumiTagMarker
public class PipelineActionDeclarationArgsBuilder internal constructor() {
    private var actionTypeId: Output? = null

    private var configuration: Output? = null

    private var inputArtifacts: Output>? = null

    private var name: Output? = null

    private var namespace: Output? = null

    private var outputArtifacts: Output>? = null

    private var region: Output? = null

    private var roleArn: Output? = null

    private var runOrder: Output? = null

    private var timeoutInMinutes: Output? = null

    /**
     * @param value Specifies the action type and the provider of the action.
     */
    @JvmName("vbvscknhacvlbuhx")
    public suspend fun actionTypeId(`value`: Output) {
        this.actionTypeId = value
    }

    /**
     * @param value The action's configuration. These are key-value pairs that specify input values for an action.
     */
    @JvmName("nfpsgjtxbmkqtisn")
    public suspend fun configuration(`value`: Output) {
        this.configuration = value
    }

    /**
     * @param value The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("svdlijvhtpjuosbm")
    public suspend fun inputArtifacts(`value`: Output>) {
        this.inputArtifacts = value
    }

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

    /**
     * @param values The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("glpxhaevqkkhxnyp")
    public suspend fun inputArtifacts(values: List>) {
        this.inputArtifacts = Output.all(values)
    }

    /**
     * @param value The action declaration's name.
     */
    @JvmName("bvyuhblwphqsphxa")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The variable namespace associated with the action. All variables produced as output by this action fall under this namespace.
     */
    @JvmName("ohmllrnljndtebwr")
    public suspend fun namespace(`value`: Output) {
        this.namespace = value
    }

    /**
     * @param value The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("axqfdkikyiducwsu")
    public suspend fun outputArtifacts(`value`: Output>) {
        this.outputArtifacts = value
    }

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

    /**
     * @param values The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("rkygoygrvqcsrfmr")
    public suspend fun outputArtifacts(values: List>) {
        this.outputArtifacts = Output.all(values)
    }

    /**
     * @param value The action declaration's AWS Region, such as us-east-1.
     */
    @JvmName("bqsyyyylxcpgedyg")
    public suspend fun region(`value`: Output) {
        this.region = value
    }

    /**
     * @param value The ARN of the IAM service role that performs the declared action. This is assumed through the roleArn for the pipeline.
     */
    @JvmName("koqbqvteguwmxjoi")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value The order in which actions are run.
     */
    @JvmName("qmoaictivkdirgoh")
    public suspend fun runOrder(`value`: Output) {
        this.runOrder = value
    }

    /**
     * @param value A timeout duration in minutes that can be applied against the ActionType’s default timeout value specified in Quotas for AWS CodePipeline. This attribute is available only to the manual approval ActionType.
     */
    @JvmName("oquxwuluqhgayxix")
    public suspend fun timeoutInMinutes(`value`: Output) {
        this.timeoutInMinutes = value
    }

    /**
     * @param value Specifies the action type and the provider of the action.
     */
    @JvmName("njtmvuwpciqaxqvj")
    public suspend fun actionTypeId(`value`: PipelineActionTypeIdArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.actionTypeId = mapped
    }

    /**
     * @param argument Specifies the action type and the provider of the action.
     */
    @JvmName("ydeyseuglauplxuy")
    public suspend fun actionTypeId(argument: suspend PipelineActionTypeIdArgsBuilder.() -> Unit) {
        val toBeMapped = PipelineActionTypeIdArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.actionTypeId = mapped
    }

    /**
     * @param value The action's configuration. These are key-value pairs that specify input values for an action.
     */
    @JvmName("mwgsjjjkfsmmblpl")
    public suspend fun configuration(`value`: Any?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configuration = mapped
    }

    /**
     * @param value The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("xiubtcxcwwdqucvh")
    public suspend fun inputArtifacts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inputArtifacts = mapped
    }

    /**
     * @param argument The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("aqomdgggljsiwqww")
    public suspend fun inputArtifacts(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PipelineInputArtifactArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.inputArtifacts = mapped
    }

    /**
     * @param argument The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("pmeihctgmmlhgbua")
    public suspend fun inputArtifacts(vararg argument: suspend PipelineInputArtifactArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PipelineInputArtifactArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.inputArtifacts = mapped
    }

    /**
     * @param argument The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("ubdytqqedijpkmso")
    public suspend fun inputArtifacts(argument: suspend PipelineInputArtifactArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(PipelineInputArtifactArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.inputArtifacts = mapped
    }

    /**
     * @param values The name or ID of the artifact consumed by the action, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of input artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     * > For a CodeBuild action with multiple input artifacts, one of your input sources must be designated the PrimarySource. For more information, see the [CodeBuild action reference page](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CodeBuild.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("kcpimlgyxtrwbeog")
    public suspend fun inputArtifacts(vararg values: PipelineInputArtifactArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.inputArtifacts = mapped
    }

    /**
     * @param value The action declaration's name.
     */
    @JvmName("dqlmkwaikowqbgfl")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The variable namespace associated with the action. All variables produced as output by this action fall under this namespace.
     */
    @JvmName("lhywvhbybwkclhsg")
    public suspend fun namespace(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namespace = mapped
    }

    /**
     * @param value The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("ekcskhetfowmgovu")
    public suspend fun outputArtifacts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputArtifacts = mapped
    }

    /**
     * @param argument The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("lnbsndojvbobfotr")
    public suspend fun outputArtifacts(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            PipelineOutputArtifactArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.outputArtifacts = mapped
    }

    /**
     * @param argument The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("pyduigrjjchrwqlh")
    public suspend fun outputArtifacts(vararg argument: suspend PipelineOutputArtifactArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            PipelineOutputArtifactArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.outputArtifacts = mapped
    }

    /**
     * @param argument The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("wmeqffxfoxumelwf")
    public suspend fun outputArtifacts(argument: suspend PipelineOutputArtifactArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(PipelineOutputArtifactArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.outputArtifacts = mapped
    }

    /**
     * @param values The name or ID of the result of the action declaration, such as a test or build artifact. While the field is not a required parameter, most actions have an action configuration that requires a specified quantity of output artifacts. To refer to the action configuration specification by action provider, see the [Action structure reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) in the *AWS CodePipeline User Guide* .
     */
    @JvmName("xhxsvamqneopccyu")
    public suspend fun outputArtifacts(vararg values: PipelineOutputArtifactArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.outputArtifacts = mapped
    }

    /**
     * @param value The action declaration's AWS Region, such as us-east-1.
     */
    @JvmName("oxcrljrttuvabpeb")
    public suspend fun region(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.region = mapped
    }

    /**
     * @param value The ARN of the IAM service role that performs the declared action. This is assumed through the roleArn for the pipeline.
     */
    @JvmName("fyhwcwlygqasffre")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value The order in which actions are run.
     */
    @JvmName("lgjmidbnbrcgvhrk")
    public suspend fun runOrder(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runOrder = mapped
    }

    /**
     * @param value A timeout duration in minutes that can be applied against the ActionType’s default timeout value specified in Quotas for AWS CodePipeline. This attribute is available only to the manual approval ActionType.
     */
    @JvmName("lcxlshvbbbudsnja")
    public suspend fun timeoutInMinutes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeoutInMinutes = mapped
    }

    internal fun build(): PipelineActionDeclarationArgs = PipelineActionDeclarationArgs(
        actionTypeId = actionTypeId ?: throw PulumiNullFieldException("actionTypeId"),
        configuration = configuration,
        inputArtifacts = inputArtifacts,
        name = name ?: throw PulumiNullFieldException("name"),
        namespace = namespace,
        outputArtifacts = outputArtifacts,
        region = region,
        roleArn = roleArn,
        runOrder = runOrder,
        timeoutInMinutes = timeoutInMinutes,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy