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

com.pulumi.azurenative.resources.kotlin.inputs.DeploymentStackPropertiesActionOnUnmanageArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.resources.kotlin.inputs

import com.pulumi.azurenative.resources.inputs.DeploymentStackPropertiesActionOnUnmanageArgs.builder
import com.pulumi.azurenative.resources.kotlin.enums.DeploymentStacksDeleteDetachEnum
import com.pulumi.core.Either
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 kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Defines the behavior of resources that are not managed immediately after the stack is updated.
 * @property managementGroups Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
 * @property resourceGroups Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
 * @property resources Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
 */
public data class DeploymentStackPropertiesActionOnUnmanageArgs(
    public val managementGroups: Output>? = null,
    public val resourceGroups: Output>? = null,
    public val resources: Output>,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.resources.inputs.DeploymentStackPropertiesActionOnUnmanageArgs =
        com.pulumi.azurenative.resources.inputs.DeploymentStackPropertiesActionOnUnmanageArgs.builder()
            .managementGroups(
                managementGroups?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .resourceGroups(
                resourceGroups?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .resources(
                resources.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            ).build()
}

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

    private var resourceGroups: Output>? = null

    private var resources: Output>? = null

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("tpgmjpewegtcevkk")
    public suspend fun managementGroups(`value`: Output>) {
        this.managementGroups = value
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("jcwpmtbqrhejnnyp")
    public suspend fun resourceGroups(`value`: Output>) {
        this.resourceGroups = value
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("cwmfnaqyulxjeqbh")
    public suspend fun resources(`value`: Output>) {
        this.resources = value
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("oigcsypfrthxlhax")
    public suspend fun managementGroups(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managementGroups = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("rqbtdtmbprpppnoy")
    public fun managementGroups(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managementGroups = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("dicadrqcdhlcrixv")
    public fun managementGroups(`value`: DeploymentStacksDeleteDetachEnum) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managementGroups = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("argsfetlpiomylqp")
    public suspend fun resourceGroups(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroups = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("xqfuhsivwivyfeiy")
    public fun resourceGroups(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resourceGroups = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("edsaquejahanjoff")
    public fun resourceGroups(`value`: DeploymentStacksDeleteDetachEnum) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resourceGroups = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("jkehgcblyrrinnxn")
    public suspend fun resources(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resources = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("soibtwmpiluelcpq")
    public fun resources(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resources = mapped
    }

    /**
     * @param value Specifies the action that should be taken on the resource when the deployment stack is deleted. Delete will attempt to delete the resource from Azure. Detach will leave the resource in it's current state.
     */
    @JvmName("gpxscwaejkkrjpyh")
    public fun resources(`value`: DeploymentStacksDeleteDetachEnum) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resources = mapped
    }

    internal fun build(): DeploymentStackPropertiesActionOnUnmanageArgs =
        DeploymentStackPropertiesActionOnUnmanageArgs(
            managementGroups = managementGroups,
            resourceGroups = resourceGroups,
            resources = resources ?: throw PulumiNullFieldException("resources"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy