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

com.pulumi.awsnative.wafv2.kotlin.inputs.WebAclManagedRuleGroupConfigArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.wafv2.kotlin.inputs

import com.pulumi.awsnative.wafv2.inputs.WebAclManagedRuleGroupConfigArgs.builder
import com.pulumi.awsnative.wafv2.kotlin.enums.WebAclManagedRuleGroupConfigPayloadType
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.jvm.JvmName

/**
 * ManagedRuleGroupConfig.
 * @property awsManagedRulesAcfpRuleSet Additional configuration for using the account creation fraud prevention (ACFP) managed rule group, `AWSManagedRulesACFPRuleSet` . Use this to provide account creation request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to account creation requests.
 * For information about using the ACFP managed rule group, see [AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-acfp.html) and [AWS WAF Fraud Control account creation fraud prevention (ACFP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-acfp.html) in the *AWS WAF Developer Guide* .
 * @property awsManagedRulesAtpRuleSet Additional configuration for using the account takeover prevention (ATP) managed rule group, `AWSManagedRulesATPRuleSet` . Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests.
 * This configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration.
 * For information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention (ATP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention (ATP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the *AWS WAF Developer Guide* .
 * @property awsManagedRulesBotControlRuleSet Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the *AWS WAF Developer Guide* .
 * @property loginPath > Instead of this setting, provide your configuration under `AWSManagedRulesATPRuleSet` .
 * @property passwordField > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
 * @property payloadType > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
 * @property usernameField > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
 */
public data class WebAclManagedRuleGroupConfigArgs(
    public val awsManagedRulesAcfpRuleSet: Output? = null,
    public val awsManagedRulesAtpRuleSet: Output? = null,
    public val awsManagedRulesBotControlRuleSet: Output? =
        null,
    public val loginPath: Output? = null,
    public val passwordField: Output? = null,
    public val payloadType: Output? = null,
    public val usernameField: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.wafv2.inputs.WebAclManagedRuleGroupConfigArgs =
        com.pulumi.awsnative.wafv2.inputs.WebAclManagedRuleGroupConfigArgs.builder()
            .awsManagedRulesAcfpRuleSet(
                awsManagedRulesAcfpRuleSet?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .awsManagedRulesAtpRuleSet(
                awsManagedRulesAtpRuleSet?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .awsManagedRulesBotControlRuleSet(
                awsManagedRulesBotControlRuleSet?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .loginPath(loginPath?.applyValue({ args0 -> args0 }))
            .passwordField(passwordField?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .payloadType(payloadType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .usernameField(usernameField?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [WebAclManagedRuleGroupConfigArgs].
 */
@PulumiTagMarker
public class WebAclManagedRuleGroupConfigArgsBuilder internal constructor() {
    private var awsManagedRulesAcfpRuleSet: Output? = null

    private var awsManagedRulesAtpRuleSet: Output? = null

    private var awsManagedRulesBotControlRuleSet: Output? =
        null

    private var loginPath: Output? = null

    private var passwordField: Output? = null

    private var payloadType: Output? = null

    private var usernameField: Output? = null

    /**
     * @param value Additional configuration for using the account creation fraud prevention (ACFP) managed rule group, `AWSManagedRulesACFPRuleSet` . Use this to provide account creation request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to account creation requests.
     * For information about using the ACFP managed rule group, see [AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-acfp.html) and [AWS WAF Fraud Control account creation fraud prevention (ACFP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-acfp.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("bigqmhplwqwrmeyv")
    public suspend fun awsManagedRulesAcfpRuleSet(`value`: Output) {
        this.awsManagedRulesAcfpRuleSet = value
    }

    /**
     * @param value Additional configuration for using the account takeover prevention (ATP) managed rule group, `AWSManagedRulesATPRuleSet` . Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests.
     * This configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration.
     * For information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention (ATP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention (ATP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("vkuypytpfdioteey")
    public suspend fun awsManagedRulesAtpRuleSet(`value`: Output) {
        this.awsManagedRulesAtpRuleSet = value
    }

    /**
     * @param value Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("nsffljidwvggircd")
    public suspend fun awsManagedRulesBotControlRuleSet(`value`: Output) {
        this.awsManagedRulesBotControlRuleSet = value
    }

    /**
     * @param value > Instead of this setting, provide your configuration under `AWSManagedRulesATPRuleSet` .
     */
    @JvmName("bofbqhrhsgtlhyqm")
    public suspend fun loginPath(`value`: Output) {
        this.loginPath = value
    }

    /**
     * @param value > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("chubouxsymufymyy")
    public suspend fun passwordField(`value`: Output) {
        this.passwordField = value
    }

    /**
     * @param value > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("vkglgguvugtialkd")
    public suspend fun payloadType(`value`: Output) {
        this.payloadType = value
    }

    /**
     * @param value > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("vjldgnrhqnlcflqj")
    public suspend fun usernameField(`value`: Output) {
        this.usernameField = value
    }

    /**
     * @param value Additional configuration for using the account creation fraud prevention (ACFP) managed rule group, `AWSManagedRulesACFPRuleSet` . Use this to provide account creation request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to account creation requests.
     * For information about using the ACFP managed rule group, see [AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-acfp.html) and [AWS WAF Fraud Control account creation fraud prevention (ACFP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-acfp.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("xnjvcsspfmliuwci")
    public suspend fun awsManagedRulesAcfpRuleSet(`value`: WebAclAwsManagedRulesAcfpRuleSetArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.awsManagedRulesAcfpRuleSet = mapped
    }

    /**
     * @param argument Additional configuration for using the account creation fraud prevention (ACFP) managed rule group, `AWSManagedRulesACFPRuleSet` . Use this to provide account creation request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to account creation requests.
     * For information about using the ACFP managed rule group, see [AWS WAF Fraud Control account creation fraud prevention (ACFP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-acfp.html) and [AWS WAF Fraud Control account creation fraud prevention (ACFP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-acfp.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("iqgeogkoajkkfdjq")
    public suspend fun awsManagedRulesAcfpRuleSet(argument: suspend WebAclAwsManagedRulesAcfpRuleSetArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclAwsManagedRulesAcfpRuleSetArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.awsManagedRulesAcfpRuleSet = mapped
    }

    /**
     * @param value Additional configuration for using the account takeover prevention (ATP) managed rule group, `AWSManagedRulesATPRuleSet` . Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests.
     * This configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration.
     * For information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention (ATP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention (ATP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("vtbhgwkejprykdfg")
    public suspend fun awsManagedRulesAtpRuleSet(`value`: WebAclAwsManagedRulesAtpRuleSetArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.awsManagedRulesAtpRuleSet = mapped
    }

    /**
     * @param argument Additional configuration for using the account takeover prevention (ATP) managed rule group, `AWSManagedRulesATPRuleSet` . Use this to provide login request information to the rule group. For web ACLs that protect CloudFront distributions, use this to also provide the information about how your distribution responds to login requests.
     * This configuration replaces the individual configuration fields in `ManagedRuleGroupConfig` and provides additional feature configuration.
     * For information about using the ATP managed rule group, see [AWS WAF Fraud Control account takeover prevention (ATP) rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-atp.html) and [AWS WAF Fraud Control account takeover prevention (ATP)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-atp.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("rvbojlxqyngpmswh")
    public suspend fun awsManagedRulesAtpRuleSet(argument: suspend WebAclAwsManagedRulesAtpRuleSetArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclAwsManagedRulesAtpRuleSetArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.awsManagedRulesAtpRuleSet = mapped
    }

    /**
     * @param value Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("tdrnypfqictlvtwl")
    public suspend fun awsManagedRulesBotControlRuleSet(`value`: WebAclAwsManagedRulesBotControlRuleSetArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.awsManagedRulesBotControlRuleSet = mapped
    }

    /**
     * @param argument Additional configuration for using the Bot Control managed rule group. Use this to specify the inspection level that you want to use. For information about using the Bot Control managed rule group, see [AWS WAF Bot Control rule group](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-bot.html) and [AWS WAF Bot Control](https://docs.aws.amazon.com/waf/latest/developerguide/waf-bot-control.html) in the *AWS WAF Developer Guide* .
     */
    @JvmName("xojjbqeafqgmrwiw")
    public suspend fun awsManagedRulesBotControlRuleSet(argument: suspend WebAclAwsManagedRulesBotControlRuleSetArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclAwsManagedRulesBotControlRuleSetArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.awsManagedRulesBotControlRuleSet = mapped
    }

    /**
     * @param value > Instead of this setting, provide your configuration under `AWSManagedRulesATPRuleSet` .
     */
    @JvmName("rvtfaoflpdamiyat")
    public suspend fun loginPath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loginPath = mapped
    }

    /**
     * @param value > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("mmmmmblbtftquugv")
    public suspend fun passwordField(`value`: WebAclFieldIdentifierArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.passwordField = mapped
    }

    /**
     * @param argument > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("dnjcbtajyhevbdfb")
    public suspend fun passwordField(argument: suspend WebAclFieldIdentifierArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclFieldIdentifierArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.passwordField = mapped
    }

    /**
     * @param value > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("kayqitcxvsleixdc")
    public suspend fun payloadType(`value`: WebAclManagedRuleGroupConfigPayloadType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.payloadType = mapped
    }

    /**
     * @param value > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("kowrsqhjkmxofylq")
    public suspend fun usernameField(`value`: WebAclFieldIdentifierArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.usernameField = mapped
    }

    /**
     * @param argument > Instead of this setting, provide your configuration under the request inspection configuration for `AWSManagedRulesATPRuleSet` or `AWSManagedRulesACFPRuleSet` .
     */
    @JvmName("tyryhlmquhnpiedc")
    public suspend fun usernameField(argument: suspend WebAclFieldIdentifierArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclFieldIdentifierArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.usernameField = mapped
    }

    internal fun build(): WebAclManagedRuleGroupConfigArgs = WebAclManagedRuleGroupConfigArgs(
        awsManagedRulesAcfpRuleSet = awsManagedRulesAcfpRuleSet,
        awsManagedRulesAtpRuleSet = awsManagedRulesAtpRuleSet,
        awsManagedRulesBotControlRuleSet = awsManagedRulesBotControlRuleSet,
        loginPath = loginPath,
        passwordField = passwordField,
        payloadType = payloadType,
        usernameField = usernameField,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy