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

com.pulumi.aws.wafv2.kotlin.inputs.WebAclRuleStatementRateBasedStatementCustomKeyArgs.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.WebAclRuleStatementRateBasedStatementCustomKeyArgs.builder
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.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property cookie Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
 * @property forwardedIp Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
 * @property header Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
 * @property httpMethod Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
 * @property ip Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
 * @property labelNamespace Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
 * @property queryArgument Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
 * @property queryString Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
 * @property uriPath Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
 */
public data class WebAclRuleStatementRateBasedStatementCustomKeyArgs(
    public val cookie: Output? = null,
    public val forwardedIp: Output? =
        null,
    public val `header`: Output? = null,
    public val httpMethod: Output? =
        null,
    public val ip: Output? = null,
    public val labelNamespace: Output? = null,
    public val queryArgument: Output? =
        null,
    public val queryString: Output? =
        null,
    public val uriPath: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyArgs =
        com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyArgs.builder()
            .cookie(cookie?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .forwardedIp(forwardedIp?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .`header`(`header`?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .httpMethod(httpMethod?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .ip(ip?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .labelNamespace(labelNamespace?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .queryArgument(queryArgument?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .queryString(queryString?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .uriPath(uriPath?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [WebAclRuleStatementRateBasedStatementCustomKeyArgs].
 */
@PulumiTagMarker
public class WebAclRuleStatementRateBasedStatementCustomKeyArgsBuilder internal constructor() {
    private var cookie: Output? = null

    private var forwardedIp: Output? =
        null

    private var `header`: Output? = null

    private var httpMethod: Output? =
        null

    private var ip: Output? = null

    private var labelNamespace:
        Output? = null

    private var queryArgument:
        Output? = null

    private var queryString: Output? =
        null

    private var uriPath: Output? = null

    /**
     * @param value Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
     */
    @JvmName("tgepsedcoaivwuxb")
    public suspend fun cookie(`value`: Output) {
        this.cookie = value
    }

    /**
     * @param value Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
     */
    @JvmName("cnsidbxsmpmdgbvt")
    public suspend fun forwardedIp(`value`: Output) {
        this.forwardedIp = value
    }

    /**
     * @param value Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
     */
    @JvmName("gnadhtmslvxclswe")
    public suspend fun `header`(`value`: Output) {
        this.`header` = value
    }

    /**
     * @param value Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
     */
    @JvmName("uqgsgcdyiwvawujt")
    public suspend fun httpMethod(`value`: Output) {
        this.httpMethod = value
    }

    /**
     * @param value Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
     */
    @JvmName("xqicareffilhykeb")
    public suspend fun ip(`value`: Output) {
        this.ip = value
    }

    /**
     * @param value Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
     */
    @JvmName("hnbufoddouwnsltl")
    public suspend fun labelNamespace(`value`: Output) {
        this.labelNamespace = value
    }

    /**
     * @param value Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
     */
    @JvmName("ragecyrdaglkbijh")
    public suspend fun queryArgument(`value`: Output) {
        this.queryArgument = value
    }

    /**
     * @param value Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
     */
    @JvmName("jyqyewnmistoubdx")
    public suspend fun queryString(`value`: Output) {
        this.queryString = value
    }

    /**
     * @param value Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
     */
    @JvmName("ukwjrsnpayxxllkt")
    public suspend fun uriPath(`value`: Output) {
        this.uriPath = value
    }

    /**
     * @param value Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
     */
    @JvmName("wdiyltewmkivvckg")
    public suspend fun cookie(`value`: WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cookie = mapped
    }

    /**
     * @param argument Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
     */
    @JvmName("iujbhaifqffsobbd")
    public suspend fun cookie(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyCookieArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclRuleStatementRateBasedStatementCustomKeyCookieArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.cookie = mapped
    }

    /**
     * @param value Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
     */
    @JvmName("ujoteikdtueoamcs")
    public suspend fun forwardedIp(`value`: WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forwardedIp = mapped
    }

    /**
     * @param argument Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
     */
    @JvmName("omrchkagqjygxwbn")
    public suspend fun forwardedIp(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.forwardedIp = mapped
    }

    /**
     * @param value Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
     */
    @JvmName("uyamgoiftgerdcxh")
    public suspend fun `header`(`value`: WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.`header` = mapped
    }

    /**
     * @param argument Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
     */
    @JvmName("xwhfaythslitqfxc")
    public suspend fun `header`(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.`header` = mapped
    }

    /**
     * @param value Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
     */
    @JvmName("jndbdwcekmjjtudg")
    public suspend fun httpMethod(`value`: WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.httpMethod = mapped
    }

    /**
     * @param argument Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
     */
    @JvmName("aduocvtamgfhqrfm")
    public suspend fun httpMethod(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.httpMethod = mapped
    }

    /**
     * @param value Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
     */
    @JvmName("okfhttlqcepocpmp")
    public suspend fun ip(`value`: WebAclRuleStatementRateBasedStatementCustomKeyIpArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ip = mapped
    }

    /**
     * @param argument Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
     */
    @JvmName("bdscctaytrbkrkwy")
    public suspend fun ip(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyIpArgsBuilder.() -> Unit) {
        val toBeMapped = WebAclRuleStatementRateBasedStatementCustomKeyIpArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.ip = mapped
    }

    /**
     * @param value Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
     */
    @JvmName("glqbhlsowlqnqtag")
    public suspend fun labelNamespace(`value`: WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.labelNamespace = mapped
    }

    /**
     * @param argument Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
     */
    @JvmName("kbaewexysihxfkjt")
    public suspend fun labelNamespace(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.labelNamespace = mapped
    }

    /**
     * @param value Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
     */
    @JvmName("flpcclyswhjkpyod")
    public suspend fun queryArgument(`value`: WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.queryArgument = mapped
    }

    /**
     * @param argument Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
     */
    @JvmName("fiuabmbkfqbmrjdk")
    public suspend fun queryArgument(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.queryArgument = mapped
    }

    /**
     * @param value Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
     */
    @JvmName("nvhfxbixucifiaue")
    public suspend fun queryString(`value`: WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.queryString = mapped
    }

    /**
     * @param argument Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
     */
    @JvmName("cqymgdkekqafepkw")
    public suspend fun queryString(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.queryString = mapped
    }

    /**
     * @param value Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
     */
    @JvmName("omljkitoemxmysjb")
    public suspend fun uriPath(`value`: WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.uriPath = mapped
    }

    /**
     * @param argument Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
     */
    @JvmName("piahuchsorvgidpm")
    public suspend fun uriPath(argument: suspend WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgsBuilder.() -> Unit) {
        val toBeMapped =
            WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.uriPath = mapped
    }

    internal fun build(): WebAclRuleStatementRateBasedStatementCustomKeyArgs =
        WebAclRuleStatementRateBasedStatementCustomKeyArgs(
            cookie = cookie,
            forwardedIp = forwardedIp,
            `header` = `header`,
            httpMethod = httpMethod,
            ip = ip,
            labelNamespace = labelNamespace,
            queryArgument = queryArgument,
            queryString = queryString,
            uriPath = uriPath,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy