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

com.pulumi.awsnative.ssmincidents.kotlin.ResponsePlanArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.ssmincidents.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.ssmincidents.ResponsePlanArgs.builder
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanActionArgs
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanActionArgsBuilder
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanChatChannelArgs
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanChatChannelArgsBuilder
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanIncidentTemplateArgs
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanIncidentTemplateArgsBuilder
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanIntegrationArgs
import com.pulumi.awsnative.ssmincidents.kotlin.inputs.ResponsePlanIntegrationArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource type definition for AWS::SSMIncidents::ResponsePlan
 * @property actions The list of actions.
 * @property chatChannel The AWS Chatbot chat channel used for collaboration during an incident.
 * @property displayName The display name of the response plan.
 * @property engagements The list of engagements to use.
 * @property incidentTemplate Details used to create an incident when using this response plan.
 * @property integrations The list of integrations.
 * @property name The name of the response plan.
 * @property tags The tags to apply to the response plan.
 */
public data class ResponsePlanArgs(
    public val actions: Output>? = null,
    public val chatChannel: Output? = null,
    public val displayName: Output? = null,
    public val engagements: Output>? = null,
    public val incidentTemplate: Output? = null,
    public val integrations: Output>? = null,
    public val name: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ssmincidents.ResponsePlanArgs =
        com.pulumi.awsnative.ssmincidents.ResponsePlanArgs.builder()
            .actions(
                actions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .chatChannel(chatChannel?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .displayName(displayName?.applyValue({ args0 -> args0 }))
            .engagements(engagements?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .incidentTemplate(incidentTemplate?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .integrations(
                integrations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

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

    private var chatChannel: Output? = null

    private var displayName: Output? = null

    private var engagements: Output>? = null

    private var incidentTemplate: Output? = null

    private var integrations: Output>? = null

    private var name: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The list of actions.
     */
    @JvmName("juydhwdbslpdcipu")
    public suspend fun actions(`value`: Output>) {
        this.actions = value
    }

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

    /**
     * @param values The list of actions.
     */
    @JvmName("wuippykkutkibubw")
    public suspend fun actions(values: List>) {
        this.actions = Output.all(values)
    }

    /**
     * @param value The AWS Chatbot chat channel used for collaboration during an incident.
     */
    @JvmName("ephtqvcijlpgxhsq")
    public suspend fun chatChannel(`value`: Output) {
        this.chatChannel = value
    }

    /**
     * @param value The display name of the response plan.
     */
    @JvmName("wdliqabrhcpavrbg")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value The list of engagements to use.
     */
    @JvmName("erapnhahucasjihl")
    public suspend fun engagements(`value`: Output>) {
        this.engagements = value
    }

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

    /**
     * @param values The list of engagements to use.
     */
    @JvmName("uwovrvxwdopqoiaf")
    public suspend fun engagements(values: List>) {
        this.engagements = Output.all(values)
    }

    /**
     * @param value Details used to create an incident when using this response plan.
     */
    @JvmName("siqdlbjffngsxjkv")
    public suspend fun incidentTemplate(`value`: Output) {
        this.incidentTemplate = value
    }

    /**
     * @param value The list of integrations.
     */
    @JvmName("dhyupvlvnbbofpkn")
    public suspend fun integrations(`value`: Output>) {
        this.integrations = value
    }

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

    /**
     * @param values The list of integrations.
     */
    @JvmName("esgvpvniswotvgxo")
    public suspend fun integrations(values: List>) {
        this.integrations = Output.all(values)
    }

    /**
     * @param value The name of the response plan.
     */
    @JvmName("dtxiilipdsxatiju")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The tags to apply to the response plan.
     */
    @JvmName("xxinwqopkxmmalut")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The tags to apply to the response plan.
     */
    @JvmName("mjocdspwwedijymm")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The list of actions.
     */
    @JvmName("cacdirtuouiyeaxl")
    public suspend fun actions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.actions = mapped
    }

    /**
     * @param argument The list of actions.
     */
    @JvmName("ovlnmllhdqaftrdl")
    public suspend fun actions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ResponsePlanActionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.actions = mapped
    }

    /**
     * @param argument The list of actions.
     */
    @JvmName("urtfwiaefdwsspna")
    public suspend fun actions(vararg argument: suspend ResponsePlanActionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ResponsePlanActionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.actions = mapped
    }

    /**
     * @param argument The list of actions.
     */
    @JvmName("mjytjwgiaqukxnab")
    public suspend fun actions(argument: suspend ResponsePlanActionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ResponsePlanActionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.actions = mapped
    }

    /**
     * @param values The list of actions.
     */
    @JvmName("kjhljfbwajueudvu")
    public suspend fun actions(vararg values: ResponsePlanActionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.actions = mapped
    }

    /**
     * @param value The AWS Chatbot chat channel used for collaboration during an incident.
     */
    @JvmName("ymqdbsfpqrvssmqj")
    public suspend fun chatChannel(`value`: ResponsePlanChatChannelArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.chatChannel = mapped
    }

    /**
     * @param argument The AWS Chatbot chat channel used for collaboration during an incident.
     */
    @JvmName("nlbucnfycycqtdsh")
    public suspend fun chatChannel(argument: suspend ResponsePlanChatChannelArgsBuilder.() -> Unit) {
        val toBeMapped = ResponsePlanChatChannelArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.chatChannel = mapped
    }

    /**
     * @param value The display name of the response plan.
     */
    @JvmName("rohuopjjxgffwmrc")
    public suspend fun displayName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value The list of engagements to use.
     */
    @JvmName("qcdcqtqjtowskiap")
    public suspend fun engagements(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.engagements = mapped
    }

    /**
     * @param values The list of engagements to use.
     */
    @JvmName("rlwuxqhamgcsbaff")
    public suspend fun engagements(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.engagements = mapped
    }

    /**
     * @param value Details used to create an incident when using this response plan.
     */
    @JvmName("sdpkjefxnwnmaawd")
    public suspend fun incidentTemplate(`value`: ResponsePlanIncidentTemplateArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.incidentTemplate = mapped
    }

    /**
     * @param argument Details used to create an incident when using this response plan.
     */
    @JvmName("oxtooanulfgpeegg")
    public suspend fun incidentTemplate(argument: suspend ResponsePlanIncidentTemplateArgsBuilder.() -> Unit) {
        val toBeMapped = ResponsePlanIncidentTemplateArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.incidentTemplate = mapped
    }

    /**
     * @param value The list of integrations.
     */
    @JvmName("unkgytfngeuismhx")
    public suspend fun integrations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.integrations = mapped
    }

    /**
     * @param argument The list of integrations.
     */
    @JvmName("wbhlwhxodwlehkkw")
    public suspend fun integrations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ResponsePlanIntegrationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.integrations = mapped
    }

    /**
     * @param argument The list of integrations.
     */
    @JvmName("dpjxsdyowyfettjc")
    public suspend fun integrations(vararg argument: suspend ResponsePlanIntegrationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ResponsePlanIntegrationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.integrations = mapped
    }

    /**
     * @param argument The list of integrations.
     */
    @JvmName("yxlwwswobjwcomkj")
    public suspend fun integrations(argument: suspend ResponsePlanIntegrationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ResponsePlanIntegrationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.integrations = mapped
    }

    /**
     * @param values The list of integrations.
     */
    @JvmName("fedgjdgevlkhhjgy")
    public suspend fun integrations(vararg values: ResponsePlanIntegrationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.integrations = mapped
    }

    /**
     * @param value The name of the response plan.
     */
    @JvmName("rjhpxboxcvmdxyna")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The tags to apply to the response plan.
     */
    @JvmName("ojqrfjsvowsrgoby")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags to apply to the response plan.
     */
    @JvmName("fmdlvxilqkyvbvwl")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags to apply to the response plan.
     */
    @JvmName("hywyptpnxxqorldk")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags to apply to the response plan.
     */
    @JvmName("vffswetuiqdoqjov")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The tags to apply to the response plan.
     */
    @JvmName("tfksykonegjyyqfu")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): ResponsePlanArgs = ResponsePlanArgs(
        actions = actions,
        chatChannel = chatChannel,
        displayName = displayName,
        engagements = engagements,
        incidentTemplate = incidentTemplate,
        integrations = integrations,
        name = name,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy