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

com.pulumi.aws.wafv2.kotlin.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs.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: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.wafv2.kotlin.inputs

import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs.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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property managedRuleGroupConfigs Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
 * @property name Name of the managed rule group.
 * @property ruleActionOverrides Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
 * @property scopeDownStatement Narrows the scope of the statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details.
 * @property vendorName Name of the managed rule group vendor.
 * @property version Version of the managed rule group. You can set `Version_1.0` or `Version_1.1` etc. If you want to use the default version, do not set anything.
 */
public data class WebAclRuleStatementManagedRuleGroupStatementArgs(
    public val managedRuleGroupConfigs: Output>? = null,
    public val name: Output,
    public val ruleActionOverrides: Output>? = null,
    public val scopeDownStatement: Output? = null,
    public val vendorName: Output,
    public val version: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs =
        com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs.builder()
            .managedRuleGroupConfigs(
                managedRuleGroupConfigs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .name(name.applyValue({ args0 -> args0 }))
            .ruleActionOverrides(
                ruleActionOverrides?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .scopeDownStatement(
                scopeDownStatement?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .vendorName(vendorName.applyValue({ args0 -> args0 }))
            .version(version?.applyValue({ args0 -> args0 })).build()
}

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

    private var name: Output? = null

    private var ruleActionOverrides:
        Output>? = null

    private var scopeDownStatement:
        Output? = null

    private var vendorName: Output? = null

    private var version: Output? = null

    /**
     * @param value Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("sdqkusurdihqaxws")
    public suspend fun managedRuleGroupConfigs(`value`: Output>) {
        this.managedRuleGroupConfigs = value
    }

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

    /**
     * @param values Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("kecniwpcwcvvhsuw")
    public suspend fun managedRuleGroupConfigs(values: List>) {
        this.managedRuleGroupConfigs = Output.all(values)
    }

    /**
     * @param value Name of the managed rule group.
     */
    @JvmName("ciutpdugsofvppqq")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("lkofimfvqfmgtxys")
    public suspend fun ruleActionOverrides(`value`: Output>) {
        this.ruleActionOverrides = value
    }

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

    /**
     * @param values Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("sdhkqqsqkxdoyhio")
    public suspend fun ruleActionOverrides(values: List>) {
        this.ruleActionOverrides = Output.all(values)
    }

    /**
     * @param value Narrows the scope of the statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details.
     */
    @JvmName("dxschlxjbkubgyav")
    public suspend fun scopeDownStatement(`value`: Output) {
        this.scopeDownStatement = value
    }

    /**
     * @param value Name of the managed rule group vendor.
     */
    @JvmName("twppfvrxdtbqnrgx")
    public suspend fun vendorName(`value`: Output) {
        this.vendorName = value
    }

    /**
     * @param value Version of the managed rule group. You can set `Version_1.0` or `Version_1.1` etc. If you want to use the default version, do not set anything.
     */
    @JvmName("xaanccltetnkrdny")
    public suspend fun version(`value`: Output) {
        this.version = value
    }

    /**
     * @param value Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("ammqfykoyybjqxgk")
    public suspend fun managedRuleGroupConfigs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedRuleGroupConfigs = mapped
    }

    /**
     * @param argument Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("fxanaswewfbxdnev")
    public suspend fun managedRuleGroupConfigs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.managedRuleGroupConfigs = mapped
    }

    /**
     * @param argument Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("bstsmmhlokxxbfoj")
    public suspend fun managedRuleGroupConfigs(vararg argument: suspend WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.managedRuleGroupConfigs = mapped
    }

    /**
     * @param argument Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("yadmurpwudyxonhw")
    public suspend fun managedRuleGroupConfigs(argument: suspend WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.managedRuleGroupConfigs = mapped
    }

    /**
     * @param values Additional information that's used by a managed rule group. Only one rule attribute is allowed in each config. See `managed_rule_group_configs` for more details
     */
    @JvmName("toordtfrggrcfqoj")
    public suspend fun managedRuleGroupConfigs(vararg values: WebAclRuleStatementManagedRuleGroupStatementManagedRuleGroupConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managedRuleGroupConfigs = mapped
    }

    /**
     * @param value Name of the managed rule group.
     */
    @JvmName("sdrolurwrxkytyul")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("ejtlixgddepkrhnj")
    public suspend fun ruleActionOverrides(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ruleActionOverrides = mapped
    }

    /**
     * @param argument Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("klxpunivjohwbebp")
    public suspend fun ruleActionOverrides(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.ruleActionOverrides = mapped
    }

    /**
     * @param argument Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("jjiqyfqtingfqyod")
    public suspend fun ruleActionOverrides(vararg argument: suspend WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.ruleActionOverrides = mapped
    }

    /**
     * @param argument Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("surumaltcrosgfjw")
    public suspend fun ruleActionOverrides(argument: suspend WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.ruleActionOverrides = mapped
    }

    /**
     * @param values Action settings to use in the place of the rule actions that are configured inside the rule group. You specify one override for each rule whose action you want to change. See `rule_action_override` below for details.
     */
    @JvmName("snbyhcaascxfwndq")
    public suspend fun ruleActionOverrides(vararg values: WebAclRuleStatementManagedRuleGroupStatementRuleActionOverrideArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ruleActionOverrides = mapped
    }

    /**
     * @param value Narrows the scope of the statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details.
     */
    @JvmName("uootvxtjuapgriaj")
    public suspend fun scopeDownStatement(`value`: WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scopeDownStatement = mapped
    }

    /**
     * @param argument Narrows the scope of the statement to matching web requests. This can be any nestable statement, and you can nest statements at any level below this scope-down statement. See `statement` above for details.
     */
    @JvmName("krvkgitjlxfeayyh")
    public suspend fun scopeDownStatement(argument: suspend WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.scopeDownStatement = mapped
    }

    /**
     * @param value Name of the managed rule group vendor.
     */
    @JvmName("aacqdituywofdrji")
    public suspend fun vendorName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.vendorName = mapped
    }

    /**
     * @param value Version of the managed rule group. You can set `Version_1.0` or `Version_1.1` etc. If you want to use the default version, do not set anything.
     */
    @JvmName("rydbwdhcepatulrs")
    public suspend fun version(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.version = mapped
    }

    internal fun build(): WebAclRuleStatementManagedRuleGroupStatementArgs =
        WebAclRuleStatementManagedRuleGroupStatementArgs(
            managedRuleGroupConfigs = managedRuleGroupConfigs,
            name = name ?: throw PulumiNullFieldException("name"),
            ruleActionOverrides = ruleActionOverrides,
            scopeDownStatement = scopeDownStatement,
            vendorName = vendorName ?: throw PulumiNullFieldException("vendorName"),
            version = version,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy