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

com.pulumi.awsnative.shield.kotlin.inputs.ProtectionApplicationLayerAutomaticResponseConfigurationArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.shield.kotlin.inputs

import com.pulumi.awsnative.shield.inputs.ProtectionApplicationLayerAutomaticResponseConfigurationArgs.builder
import com.pulumi.awsnative.shield.kotlin.enums.ProtectionApplicationLayerAutomaticResponseConfigurationStatus
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.Suppress
import kotlin.jvm.JvmName

/**
 * The automatic application layer DDoS mitigation settings for a Protection. This configuration determines whether Shield Advanced automatically manages rules in the web ACL in order to respond to application layer events that Shield Advanced determines to be DDoS attacks.
 * @property action Specifies the action setting that Shield Advanced should use in the AWS WAF rules that it creates on behalf of the protected resource in response to DDoS attacks. You specify this as part of the configuration for the automatic application layer DDoS mitigation feature, when you enable or update automatic mitigation. Shield Advanced creates the AWS WAF rules in a Shield Advanced-managed rule group, inside the web ACL that you have associated with the resource.
 * @property status Indicates whether automatic application layer DDoS mitigation is enabled for the protection.
 */
public data class ProtectionApplicationLayerAutomaticResponseConfigurationArgs(
    public val action: Output>,
    public val status: Output,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.shield.inputs.ProtectionApplicationLayerAutomaticResponseConfigurationArgs =
        com.pulumi.awsnative.shield.inputs.ProtectionApplicationLayerAutomaticResponseConfigurationArgs.builder()
            .action(
                action.applyValue({ args0 ->
                    args0.transform({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .status(status.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

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

    private var status: Output? = null

    /**
     * @param value Specifies the action setting that Shield Advanced should use in the AWS WAF rules that it creates on behalf of the protected resource in response to DDoS attacks. You specify this as part of the configuration for the automatic application layer DDoS mitigation feature, when you enable or update automatic mitigation. Shield Advanced creates the AWS WAF rules in a Shield Advanced-managed rule group, inside the web ACL that you have associated with the resource.
     */
    @JvmName("agwueuaqxgetuaxb")
    public suspend fun action(`value`: Output>) {
        this.action = value
    }

    /**
     * @param value Indicates whether automatic application layer DDoS mitigation is enabled for the protection.
     */
    @JvmName("cuyvrueducweirpf")
    public suspend fun status(`value`: Output) {
        this.status = value
    }

    /**
     * @param value Specifies the action setting that Shield Advanced should use in the AWS WAF rules that it creates on behalf of the protected resource in response to DDoS attacks. You specify this as part of the configuration for the automatic application layer DDoS mitigation feature, when you enable or update automatic mitigation. Shield Advanced creates the AWS WAF rules in a Shield Advanced-managed rule group, inside the web ACL that you have associated with the resource.
     */
    @JvmName("wannmhjrfwaresyb")
    public suspend fun action(`value`: Either) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.action = mapped
    }

    /**
     * @param value Specifies the action setting that Shield Advanced should use in the AWS WAF rules that it creates on behalf of the protected resource in response to DDoS attacks. You specify this as part of the configuration for the automatic application layer DDoS mitigation feature, when you enable or update automatic mitigation. Shield Advanced creates the AWS WAF rules in a Shield Advanced-managed rule group, inside the web ACL that you have associated with the resource.
     */
    @JvmName("sdaanbsuyklwuncp")
    public fun action(`value`: ProtectionApplicationLayerAutomaticResponseConfigurationAction0PropertiesArgs) {
        val toBeMapped =
            Either.ofLeft<
                ProtectionApplicationLayerAutomaticResponseConfigurationAction0PropertiesArgs,
                ProtectionApplicationLayerAutomaticResponseConfigurationAction1PropertiesArgs,
                >(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.action = mapped
    }

    /**
     * @param value Specifies the action setting that Shield Advanced should use in the AWS WAF rules that it creates on behalf of the protected resource in response to DDoS attacks. You specify this as part of the configuration for the automatic application layer DDoS mitigation feature, when you enable or update automatic mitigation. Shield Advanced creates the AWS WAF rules in a Shield Advanced-managed rule group, inside the web ACL that you have associated with the resource.
     */
    @JvmName("ywwlkgklxesvnxvn")
    public fun action(`value`: ProtectionApplicationLayerAutomaticResponseConfigurationAction1PropertiesArgs) {
        val toBeMapped =
            Either.ofRight<
                ProtectionApplicationLayerAutomaticResponseConfigurationAction0PropertiesArgs,
                ProtectionApplicationLayerAutomaticResponseConfigurationAction1PropertiesArgs,
                >(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.action = mapped
    }

    /**
     * @param value Indicates whether automatic application layer DDoS mitigation is enabled for the protection.
     */
    @JvmName("ofgsetixsqsndjsf")
    public suspend fun status(`value`: ProtectionApplicationLayerAutomaticResponseConfigurationStatus) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.status = mapped
    }

    internal fun build(): ProtectionApplicationLayerAutomaticResponseConfigurationArgs =
        ProtectionApplicationLayerAutomaticResponseConfigurationArgs(
            action = action ?: throw PulumiNullFieldException("action"),
            status = status ?: throw PulumiNullFieldException("status"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy