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

com.pulumi.aws.wafv2.kotlin.inputs.RuleGroupRuleStatementGeoMatchStatementArgs.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.RuleGroupRuleStatementGeoMatchStatementArgs.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 countryCodes An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.
 * @property forwardedIpConfig The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details.
 */
public data class RuleGroupRuleStatementGeoMatchStatementArgs(
    public val countryCodes: Output>,
    public val forwardedIpConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementGeoMatchStatementArgs =
        com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementGeoMatchStatementArgs.builder()
            .countryCodes(countryCodes.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .forwardedIpConfig(
                forwardedIpConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

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

    private var forwardedIpConfig:
        Output? = null

    /**
     * @param value An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.
     */
    @JvmName("eooakrjrcufmdwxs")
    public suspend fun countryCodes(`value`: Output>) {
        this.countryCodes = value
    }

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

    /**
     * @param values An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.
     */
    @JvmName("xxvokqrlaegjfitc")
    public suspend fun countryCodes(values: List>) {
        this.countryCodes = Output.all(values)
    }

    /**
     * @param value The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details.
     */
    @JvmName("qlviqahqixqymryi")
    public suspend fun forwardedIpConfig(`value`: Output) {
        this.forwardedIpConfig = value
    }

    /**
     * @param value An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.
     */
    @JvmName("dstjjifcsaalnmpa")
    public suspend fun countryCodes(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.countryCodes = mapped
    }

    /**
     * @param values An array of two-character country codes, for example, [ "US", "CN" ], from the alpha-2 country ISO codes of the `ISO 3166` international standard. See the [documentation](https://docs.aws.amazon.com/waf/latest/APIReference/API_GeoMatchStatement.html) for valid values.
     */
    @JvmName("olumwqjgjuucitip")
    public suspend fun countryCodes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.countryCodes = mapped
    }

    /**
     * @param value The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details.
     */
    @JvmName("sgkndskvdwqvefvi")
    public suspend fun forwardedIpConfig(`value`: RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.forwardedIpConfig = mapped
    }

    /**
     * @param argument The configuration for inspecting IP addresses in an HTTP header that you specify, instead of using the IP address that's reported by the web request origin. See Forwarded IP Config below for details.
     */
    @JvmName("qambpemuehyvtdnn")
    public suspend fun forwardedIpConfig(argument: suspend RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            RuleGroupRuleStatementGeoMatchStatementForwardedIpConfigArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.forwardedIpConfig = mapped
    }

    internal fun build(): RuleGroupRuleStatementGeoMatchStatementArgs =
        RuleGroupRuleStatementGeoMatchStatementArgs(
            countryCodes = countryCodes ?: throw PulumiNullFieldException("countryCodes"),
            forwardedIpConfig = forwardedIpConfig,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy