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

com.pulumi.gcp.compute.kotlin.inputs.RegionNetworkFirewallPolicyWithRulesRuleMatchArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.gcp.compute.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.compute.inputs.RegionNetworkFirewallPolicyWithRulesRuleMatchArgs.builder
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 destAddressGroups Address groups which should be matched against the traffic destination.
 * Maximum number of destination address groups is 10.
 * @property destFqdns Fully Qualified Domain Name (FQDN) which should be matched against
 * traffic destination. Maximum number of destination fqdn allowed is 100.
 * @property destIpRanges Destination IP address range in CIDR format. Required for
 * EGRESS rules.
 * @property destRegionCodes Region codes whose IP addresses will be used to match for destination
 * of traffic. Should be specified as 2 letter country code defined as per
 * ISO 3166 alpha-2 country codes. ex."US"
 * Maximum number of destination region codes allowed is 5000.
 * @property destThreatIntelligences Names of Network Threat Intelligence lists.
 * The IPs in these lists will be matched against traffic destination.
 * @property layer4Configs Pairs of IP protocols and ports that the rule should match.
 * Structure is documented below.
 * @property srcAddressGroups Address groups which should be matched against the traffic source.
 * Maximum number of source address groups is 10.
 * @property srcFqdns Fully Qualified Domain Name (FQDN) which should be matched against
 * traffic source. Maximum number of source fqdn allowed is 100.
 * @property srcIpRanges Source IP address range in CIDR format. Required for
 * INGRESS rules.
 * @property srcRegionCodes Region codes whose IP addresses will be used to match for source
 * of traffic. Should be specified as 2 letter country code defined as per
 * ISO 3166 alpha-2 country codes. ex."US"
 * Maximum number of source region codes allowed is 5000.
 * @property srcSecureTags List of secure tag values, which should be matched at the source
 * of the traffic.
 * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
 * and there is no srcIpRange, this rule will be ignored.
 * Maximum number of source tag values allowed is 256.
 * Structure is documented below.
 * The `layer4_config` block supports:
 * @property srcThreatIntelligences Names of Network Threat Intelligence lists.
 * The IPs in these lists will be matched against traffic source.
 */
public data class RegionNetworkFirewallPolicyWithRulesRuleMatchArgs(
    public val destAddressGroups: Output>? = null,
    public val destFqdns: Output>? = null,
    public val destIpRanges: Output>? = null,
    public val destRegionCodes: Output>? = null,
    public val destThreatIntelligences: Output>? = null,
    public val layer4Configs: Output>,
    public val srcAddressGroups: Output>? = null,
    public val srcFqdns: Output>? = null,
    public val srcIpRanges: Output>? = null,
    public val srcRegionCodes: Output>? = null,
    public val srcSecureTags: Output>? = null,
    public val srcThreatIntelligences: Output>? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.compute.inputs.RegionNetworkFirewallPolicyWithRulesRuleMatchArgs =
        com.pulumi.gcp.compute.inputs.RegionNetworkFirewallPolicyWithRulesRuleMatchArgs.builder()
            .destAddressGroups(destAddressGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .destFqdns(destFqdns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .destIpRanges(destIpRanges?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .destRegionCodes(destRegionCodes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .destThreatIntelligences(
                destThreatIntelligences?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .layer4Configs(
                layer4Configs.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .srcAddressGroups(srcAddressGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .srcFqdns(srcFqdns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .srcIpRanges(srcIpRanges?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .srcRegionCodes(srcRegionCodes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .srcSecureTags(
                srcSecureTags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .srcThreatIntelligences(
                srcThreatIntelligences?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            ).build()
}

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

    private var destFqdns: Output>? = null

    private var destIpRanges: Output>? = null

    private var destRegionCodes: Output>? = null

    private var destThreatIntelligences: Output>? = null

    private var layer4Configs:
        Output>? = null

    private var srcAddressGroups: Output>? = null

    private var srcFqdns: Output>? = null

    private var srcIpRanges: Output>? = null

    private var srcRegionCodes: Output>? = null

    private var srcSecureTags:
        Output>? = null

    private var srcThreatIntelligences: Output>? = null

    /**
     * @param value Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     */
    @JvmName("dvabqerstjiqkflr")
    public suspend fun destAddressGroups(`value`: Output>) {
        this.destAddressGroups = value
    }

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

    /**
     * @param values Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     */
    @JvmName("dasdwvxjinelpqfe")
    public suspend fun destAddressGroups(values: List>) {
        this.destAddressGroups = Output.all(values)
    }

    /**
     * @param value Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination. Maximum number of destination fqdn allowed is 100.
     */
    @JvmName("ukwrdnjgmpvbggps")
    public suspend fun destFqdns(`value`: Output>) {
        this.destFqdns = value
    }

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

    /**
     * @param values Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination. Maximum number of destination fqdn allowed is 100.
     */
    @JvmName("dopfxjeceqkbjtrc")
    public suspend fun destFqdns(values: List>) {
        this.destFqdns = Output.all(values)
    }

    /**
     * @param value Destination IP address range in CIDR format. Required for
     * EGRESS rules.
     */
    @JvmName("wemelnhjrvcrgkts")
    public suspend fun destIpRanges(`value`: Output>) {
        this.destIpRanges = value
    }

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

    /**
     * @param values Destination IP address range in CIDR format. Required for
     * EGRESS rules.
     */
    @JvmName("ymfnkwtoosqvslvw")
    public suspend fun destIpRanges(values: List>) {
        this.destIpRanges = Output.all(values)
    }

    /**
     * @param value Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of destination region codes allowed is 5000.
     */
    @JvmName("ywwseqfywakwixiu")
    public suspend fun destRegionCodes(`value`: Output>) {
        this.destRegionCodes = value
    }

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

    /**
     * @param values Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of destination region codes allowed is 5000.
     */
    @JvmName("eiaeoypwkqxnvxxd")
    public suspend fun destRegionCodes(values: List>) {
        this.destRegionCodes = Output.all(values)
    }

    /**
     * @param value Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     */
    @JvmName("mvnkxldxoigmxawj")
    public suspend fun destThreatIntelligences(`value`: Output>) {
        this.destThreatIntelligences = value
    }

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

    /**
     * @param values Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     */
    @JvmName("qymbvrwthombqyqr")
    public suspend fun destThreatIntelligences(values: List>) {
        this.destThreatIntelligences = Output.all(values)
    }

    /**
     * @param value Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("ictwakfphuxqpjyu")
    public suspend fun layer4Configs(`value`: Output>) {
        this.layer4Configs = value
    }

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

    /**
     * @param values Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("bulaysxerwrnhifs")
    public suspend fun layer4Configs(values: List>) {
        this.layer4Configs = Output.all(values)
    }

    /**
     * @param value Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     */
    @JvmName("wnbdipygubvotaea")
    public suspend fun srcAddressGroups(`value`: Output>) {
        this.srcAddressGroups = value
    }

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

    /**
     * @param values Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     */
    @JvmName("nksxrppyixbpixxu")
    public suspend fun srcAddressGroups(values: List>) {
        this.srcAddressGroups = Output.all(values)
    }

    /**
     * @param value Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source. Maximum number of source fqdn allowed is 100.
     */
    @JvmName("asyokgckghddhbsw")
    public suspend fun srcFqdns(`value`: Output>) {
        this.srcFqdns = value
    }

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

    /**
     * @param values Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source. Maximum number of source fqdn allowed is 100.
     */
    @JvmName("cgkmfvvpuotjbgub")
    public suspend fun srcFqdns(values: List>) {
        this.srcFqdns = Output.all(values)
    }

    /**
     * @param value Source IP address range in CIDR format. Required for
     * INGRESS rules.
     */
    @JvmName("bkuggairpmnprrpx")
    public suspend fun srcIpRanges(`value`: Output>) {
        this.srcIpRanges = value
    }

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

    /**
     * @param values Source IP address range in CIDR format. Required for
     * INGRESS rules.
     */
    @JvmName("favyacucptmixwnr")
    public suspend fun srcIpRanges(values: List>) {
        this.srcIpRanges = Output.all(values)
    }

    /**
     * @param value Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     */
    @JvmName("reescntvslkxrbsv")
    public suspend fun srcRegionCodes(`value`: Output>) {
        this.srcRegionCodes = value
    }

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

    /**
     * @param values Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     */
    @JvmName("oaasuidwyvkowvso")
    public suspend fun srcRegionCodes(values: List>) {
        this.srcRegionCodes = Output.all(values)
    }

    /**
     * @param value List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("abbmwbsaiugplnnr")
    public suspend fun srcSecureTags(`value`: Output>) {
        this.srcSecureTags = value
    }

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

    /**
     * @param values List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("vohljtvkaugeroop")
    public suspend fun srcSecureTags(values: List>) {
        this.srcSecureTags = Output.all(values)
    }

    /**
     * @param value Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     */
    @JvmName("jcfyyxoaifatikav")
    public suspend fun srcThreatIntelligences(`value`: Output>) {
        this.srcThreatIntelligences = value
    }

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

    /**
     * @param values Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     */
    @JvmName("manvqwqwygufoqvj")
    public suspend fun srcThreatIntelligences(values: List>) {
        this.srcThreatIntelligences = Output.all(values)
    }

    /**
     * @param value Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     */
    @JvmName("sbpqyovhytcuybdh")
    public suspend fun destAddressGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destAddressGroups = mapped
    }

    /**
     * @param values Address groups which should be matched against the traffic destination.
     * Maximum number of destination address groups is 10.
     */
    @JvmName("ussmgoqqjvfhlwvh")
    public suspend fun destAddressGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destAddressGroups = mapped
    }

    /**
     * @param value Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination. Maximum number of destination fqdn allowed is 100.
     */
    @JvmName("yyqbqwpsvodlnhll")
    public suspend fun destFqdns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destFqdns = mapped
    }

    /**
     * @param values Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic destination. Maximum number of destination fqdn allowed is 100.
     */
    @JvmName("bojqgoteijtfioil")
    public suspend fun destFqdns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destFqdns = mapped
    }

    /**
     * @param value Destination IP address range in CIDR format. Required for
     * EGRESS rules.
     */
    @JvmName("gpsxbhsiykfndywc")
    public suspend fun destIpRanges(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destIpRanges = mapped
    }

    /**
     * @param values Destination IP address range in CIDR format. Required for
     * EGRESS rules.
     */
    @JvmName("mfnlfgilgljpnfgx")
    public suspend fun destIpRanges(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destIpRanges = mapped
    }

    /**
     * @param value Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of destination region codes allowed is 5000.
     */
    @JvmName("tkwrkfxgdpjwjiun")
    public suspend fun destRegionCodes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destRegionCodes = mapped
    }

    /**
     * @param values Region codes whose IP addresses will be used to match for destination
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of destination region codes allowed is 5000.
     */
    @JvmName("nexdrtccluqmtrgk")
    public suspend fun destRegionCodes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destRegionCodes = mapped
    }

    /**
     * @param value Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     */
    @JvmName("kaohlkxqffxkgokj")
    public suspend fun destThreatIntelligences(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.destThreatIntelligences = mapped
    }

    /**
     * @param values Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic destination.
     */
    @JvmName("shyfspvuutwldvgb")
    public suspend fun destThreatIntelligences(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.destThreatIntelligences = mapped
    }

    /**
     * @param value Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("ggyrpvcgscgtlipt")
    public suspend fun layer4Configs(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.layer4Configs = mapped
    }

    /**
     * @param argument Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("bwutiwqqpkkwmovb")
    public suspend fun layer4Configs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.layer4Configs = mapped
    }

    /**
     * @param argument Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("sagnptfdarxvbvqi")
    public suspend fun layer4Configs(vararg argument: suspend RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.layer4Configs = mapped
    }

    /**
     * @param argument Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("sqhglffaomcapuyl")
    public suspend fun layer4Configs(argument: suspend RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.layer4Configs = mapped
    }

    /**
     * @param values Pairs of IP protocols and ports that the rule should match.
     * Structure is documented below.
     */
    @JvmName("lcyuvdekpmnvevym")
    public suspend fun layer4Configs(vararg values: RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4ConfigArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.layer4Configs = mapped
    }

    /**
     * @param value Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     */
    @JvmName("mjjqalaebrjlwhtl")
    public suspend fun srcAddressGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srcAddressGroups = mapped
    }

    /**
     * @param values Address groups which should be matched against the traffic source.
     * Maximum number of source address groups is 10.
     */
    @JvmName("cphteolqkuiccgvh")
    public suspend fun srcAddressGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.srcAddressGroups = mapped
    }

    /**
     * @param value Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source. Maximum number of source fqdn allowed is 100.
     */
    @JvmName("tqifjxmwivkvlwet")
    public suspend fun srcFqdns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srcFqdns = mapped
    }

    /**
     * @param values Fully Qualified Domain Name (FQDN) which should be matched against
     * traffic source. Maximum number of source fqdn allowed is 100.
     */
    @JvmName("qgmotjjuvksbljwp")
    public suspend fun srcFqdns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.srcFqdns = mapped
    }

    /**
     * @param value Source IP address range in CIDR format. Required for
     * INGRESS rules.
     */
    @JvmName("mdqoucsvnhjfaaij")
    public suspend fun srcIpRanges(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srcIpRanges = mapped
    }

    /**
     * @param values Source IP address range in CIDR format. Required for
     * INGRESS rules.
     */
    @JvmName("jdxakeuftiesnwwf")
    public suspend fun srcIpRanges(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.srcIpRanges = mapped
    }

    /**
     * @param value Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     */
    @JvmName("ivlxxqdevliaoufb")
    public suspend fun srcRegionCodes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srcRegionCodes = mapped
    }

    /**
     * @param values Region codes whose IP addresses will be used to match for source
     * of traffic. Should be specified as 2 letter country code defined as per
     * ISO 3166 alpha-2 country codes. ex."US"
     * Maximum number of source region codes allowed is 5000.
     */
    @JvmName("jtsfxoqndjmiguiu")
    public suspend fun srcRegionCodes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.srcRegionCodes = mapped
    }

    /**
     * @param value List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("buathhshvbpsvygb")
    public suspend fun srcSecureTags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srcSecureTags = mapped
    }

    /**
     * @param argument List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("acmriejhlbgtmsqk")
    public suspend fun srcSecureTags(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.srcSecureTags = mapped
    }

    /**
     * @param argument List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("ieoshljkdknlvdku")
    public suspend fun srcSecureTags(vararg argument: suspend RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.srcSecureTags = mapped
    }

    /**
     * @param argument List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("mybskpctineckwfg")
    public suspend fun srcSecureTags(argument: suspend RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.srcSecureTags = mapped
    }

    /**
     * @param values List of secure tag values, which should be matched at the source
     * of the traffic.
     * For INGRESS rule, if all the srcSecureTag are INEFFECTIVE,
     * and there is no srcIpRange, this rule will be ignored.
     * Maximum number of source tag values allowed is 256.
     * Structure is documented below.
     * The `layer4_config` block supports:
     */
    @JvmName("sqhnowbnqqlcehep")
    public suspend fun srcSecureTags(vararg values: RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.srcSecureTags = mapped
    }

    /**
     * @param value Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     */
    @JvmName("tudyjdqprviiupow")
    public suspend fun srcThreatIntelligences(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.srcThreatIntelligences = mapped
    }

    /**
     * @param values Names of Network Threat Intelligence lists.
     * The IPs in these lists will be matched against traffic source.
     */
    @JvmName("ayyrqnpfhiohaglg")
    public suspend fun srcThreatIntelligences(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.srcThreatIntelligences = mapped
    }

    internal fun build(): RegionNetworkFirewallPolicyWithRulesRuleMatchArgs =
        RegionNetworkFirewallPolicyWithRulesRuleMatchArgs(
            destAddressGroups = destAddressGroups,
            destFqdns = destFqdns,
            destIpRanges = destIpRanges,
            destRegionCodes = destRegionCodes,
            destThreatIntelligences = destThreatIntelligences,
            layer4Configs = layer4Configs ?: throw PulumiNullFieldException("layer4Configs"),
            srcAddressGroups = srcAddressGroups,
            srcFqdns = srcFqdns,
            srcIpRanges = srcIpRanges,
            srcRegionCodes = srcRegionCodes,
            srcSecureTags = srcSecureTags,
            srcThreatIntelligences = srcThreatIntelligences,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy