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

com.pulumi.cloudflare.kotlin.inputs.ZeroTrustAccessGroupIncludeArgs.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.

The newest version!
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.cloudflare.kotlin.inputs

import com.pulumi.cloudflare.inputs.ZeroTrustAccessGroupIncludeArgs.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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property anyValidServiceToken Matches any valid Access service token.
 * @property authContexts
 * @property authMethod The type of authentication method. Refer to https://datatracker.ietf.org/doc/html/rfc8176#section-2 for possible types.
 * @property azures Matches an Azure group. Requires an Azure identity provider.
 * @property certificate Matches any valid client certificate.
 * @property commonName Matches a valid client certificate common name.
 * @property commonNames Overflow field if you need to have multiple common*name rules in a single policy.  Use in place of the singular common*name field.
 * @property devicePostures The ID of a device posture integration.
 * @property emailDomains The email domain to match.
 * @property emailLists The ID of a previously created email list.
 * @property emails The email of the user.
 * @property everyone Matches everyone.
 * @property externalEvaluations Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
 * @property geos Matches a specific country.
 * @property githubs Matches a Github organization. Requires a Github identity provider.
 * @property groups The ID of a previously created Access group.
 * @property gsuites Matches a group in Google Workspace. Requires a Google Workspace identity provider.
 * @property ipLists The ID of a previously created IP list.
 * @property ips An IPv4 or IPv6 CIDR block.
 * @property loginMethods The ID of a configured identity provider.
 * @property oktas Matches an Okta group. Requires an Okta identity provider.
 * @property samls Matches a SAML group. Requires a SAML identity provider.
 * @property serviceTokens The ID of an Access service token.
 */
public data class ZeroTrustAccessGroupIncludeArgs(
    public val anyValidServiceToken: Output? = null,
    public val authContexts: Output>? = null,
    public val authMethod: Output? = null,
    public val azures: Output>? = null,
    public val certificate: Output? = null,
    public val commonName: Output? = null,
    public val commonNames: Output>? = null,
    public val devicePostures: Output>? = null,
    public val emailDomains: Output>? = null,
    public val emailLists: Output>? = null,
    public val emails: Output>? = null,
    public val everyone: Output? = null,
    public val externalEvaluations: Output>? =
        null,
    public val geos: Output>? = null,
    public val githubs: Output>? = null,
    public val groups: Output>? = null,
    public val gsuites: Output>? = null,
    public val ipLists: Output>? = null,
    public val ips: Output>? = null,
    public val loginMethods: Output>? = null,
    public val oktas: Output>? = null,
    public val samls: Output>? = null,
    public val serviceTokens: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.cloudflare.inputs.ZeroTrustAccessGroupIncludeArgs =
        com.pulumi.cloudflare.inputs.ZeroTrustAccessGroupIncludeArgs.builder()
            .anyValidServiceToken(anyValidServiceToken?.applyValue({ args0 -> args0 }))
            .authContexts(
                authContexts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .authMethod(authMethod?.applyValue({ args0 -> args0 }))
            .azures(azures?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .certificate(certificate?.applyValue({ args0 -> args0 }))
            .commonName(commonName?.applyValue({ args0 -> args0 }))
            .commonNames(commonNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .devicePostures(devicePostures?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .emailDomains(emailDomains?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .emailLists(emailLists?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .emails(emails?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .everyone(everyone?.applyValue({ args0 -> args0 }))
            .externalEvaluations(
                externalEvaluations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .geos(geos?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .githubs(
                githubs?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .groups(groups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .gsuites(
                gsuites?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .ipLists(ipLists?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .ips(ips?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .loginMethods(loginMethods?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .oktas(oktas?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .samls(samls?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .serviceTokens(serviceTokens?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [ZeroTrustAccessGroupIncludeArgs].
 */
@PulumiTagMarker
public class ZeroTrustAccessGroupIncludeArgsBuilder internal constructor() {
    private var anyValidServiceToken: Output? = null

    private var authContexts: Output>? = null

    private var authMethod: Output? = null

    private var azures: Output>? = null

    private var certificate: Output? = null

    private var commonName: Output? = null

    private var commonNames: Output>? = null

    private var devicePostures: Output>? = null

    private var emailDomains: Output>? = null

    private var emailLists: Output>? = null

    private var emails: Output>? = null

    private var everyone: Output? = null

    private var externalEvaluations: Output>? =
        null

    private var geos: Output>? = null

    private var githubs: Output>? = null

    private var groups: Output>? = null

    private var gsuites: Output>? = null

    private var ipLists: Output>? = null

    private var ips: Output>? = null

    private var loginMethods: Output>? = null

    private var oktas: Output>? = null

    private var samls: Output>? = null

    private var serviceTokens: Output>? = null

    /**
     * @param value Matches any valid Access service token.
     */
    @JvmName("yfbljgpjyoehuyfj")
    public suspend fun anyValidServiceToken(`value`: Output) {
        this.anyValidServiceToken = value
    }

    /**
     * @param value
     */
    @JvmName("cbjlrcorvrgawxax")
    public suspend fun authContexts(`value`: Output>) {
        this.authContexts = value
    }

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

    /**
     * @param values
     */
    @JvmName("knqkdtcughtkdlip")
    public suspend fun authContexts(values: List>) {
        this.authContexts = Output.all(values)
    }

    /**
     * @param value The type of authentication method. Refer to https://datatracker.ietf.org/doc/html/rfc8176#section-2 for possible types.
     */
    @JvmName("mmmgyqgjyxcistpd")
    public suspend fun authMethod(`value`: Output) {
        this.authMethod = value
    }

    /**
     * @param value Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("tyfctkpdixclaybu")
    public suspend fun azures(`value`: Output>) {
        this.azures = value
    }

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

    /**
     * @param values Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("mkyvqboypwjsstuw")
    public suspend fun azures(values: List>) {
        this.azures = Output.all(values)
    }

    /**
     * @param value Matches any valid client certificate.
     */
    @JvmName("oycvmxwmsbypxjwc")
    public suspend fun certificate(`value`: Output) {
        this.certificate = value
    }

    /**
     * @param value Matches a valid client certificate common name.
     */
    @JvmName("osrjevhuvkqeywrq")
    public suspend fun commonName(`value`: Output) {
        this.commonName = value
    }

    /**
     * @param value Overflow field if you need to have multiple common*name rules in a single policy.  Use in place of the singular common*name field.
     */
    @JvmName("hnejbfqcdsgljqsd")
    public suspend fun commonNames(`value`: Output>) {
        this.commonNames = value
    }

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

    /**
     * @param values Overflow field if you need to have multiple common*name rules in a single policy.  Use in place of the singular common*name field.
     */
    @JvmName("xnoniegjbknymuxn")
    public suspend fun commonNames(values: List>) {
        this.commonNames = Output.all(values)
    }

    /**
     * @param value The ID of a device posture integration.
     */
    @JvmName("gfvjlrcnrwygldba")
    public suspend fun devicePostures(`value`: Output>) {
        this.devicePostures = value
    }

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

    /**
     * @param values The ID of a device posture integration.
     */
    @JvmName("ghiyobntpomrupnn")
    public suspend fun devicePostures(values: List>) {
        this.devicePostures = Output.all(values)
    }

    /**
     * @param value The email domain to match.
     */
    @JvmName("uysjgbxbwigeijud")
    public suspend fun emailDomains(`value`: Output>) {
        this.emailDomains = value
    }

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

    /**
     * @param values The email domain to match.
     */
    @JvmName("gvbklbmtbbjfhnge")
    public suspend fun emailDomains(values: List>) {
        this.emailDomains = Output.all(values)
    }

    /**
     * @param value The ID of a previously created email list.
     */
    @JvmName("xwayqtkptjunxgxv")
    public suspend fun emailLists(`value`: Output>) {
        this.emailLists = value
    }

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

    /**
     * @param values The ID of a previously created email list.
     */
    @JvmName("wvfeangaipokspdu")
    public suspend fun emailLists(values: List>) {
        this.emailLists = Output.all(values)
    }

    /**
     * @param value The email of the user.
     */
    @JvmName("bhtaqdhpiehpkghm")
    public suspend fun emails(`value`: Output>) {
        this.emails = value
    }

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

    /**
     * @param values The email of the user.
     */
    @JvmName("hutbeqsavvjyxqbs")
    public suspend fun emails(values: List>) {
        this.emails = Output.all(values)
    }

    /**
     * @param value Matches everyone.
     */
    @JvmName("yspbrurjcjetbdxu")
    public suspend fun everyone(`value`: Output) {
        this.everyone = value
    }

    /**
     * @param value Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("sregqfxxxubpnowv")
    public suspend fun externalEvaluations(`value`: Output>) {
        this.externalEvaluations = value
    }

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

    /**
     * @param values Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("vylvpabjgkkkcptj")
    public suspend fun externalEvaluations(values: List>) {
        this.externalEvaluations = Output.all(values)
    }

    /**
     * @param value Matches a specific country.
     */
    @JvmName("ytflyifnsjylvbnu")
    public suspend fun geos(`value`: Output>) {
        this.geos = value
    }

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

    /**
     * @param values Matches a specific country.
     */
    @JvmName("ypaarkbemexbmqcy")
    public suspend fun geos(values: List>) {
        this.geos = Output.all(values)
    }

    /**
     * @param value Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("ampvkttkknmrttbb")
    public suspend fun githubs(`value`: Output>) {
        this.githubs = value
    }

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

    /**
     * @param values Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("rikxdhbqllfolhhm")
    public suspend fun githubs(values: List>) {
        this.githubs = Output.all(values)
    }

    /**
     * @param value The ID of a previously created Access group.
     */
    @JvmName("skvxgfcltsyhauiw")
    public suspend fun groups(`value`: Output>) {
        this.groups = value
    }

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

    /**
     * @param values The ID of a previously created Access group.
     */
    @JvmName("gnhylsmuejpcapqh")
    public suspend fun groups(values: List>) {
        this.groups = Output.all(values)
    }

    /**
     * @param value Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("ftoyhgpdliurgxcu")
    public suspend fun gsuites(`value`: Output>) {
        this.gsuites = value
    }

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

    /**
     * @param values Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("krmwdqqhkvpqnfhx")
    public suspend fun gsuites(values: List>) {
        this.gsuites = Output.all(values)
    }

    /**
     * @param value The ID of a previously created IP list.
     */
    @JvmName("htibvcdwtdqktjak")
    public suspend fun ipLists(`value`: Output>) {
        this.ipLists = value
    }

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

    /**
     * @param values The ID of a previously created IP list.
     */
    @JvmName("cxrgjhnguknxyhln")
    public suspend fun ipLists(values: List>) {
        this.ipLists = Output.all(values)
    }

    /**
     * @param value An IPv4 or IPv6 CIDR block.
     */
    @JvmName("pytqqhkrrrjtepol")
    public suspend fun ips(`value`: Output>) {
        this.ips = value
    }

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

    /**
     * @param values An IPv4 or IPv6 CIDR block.
     */
    @JvmName("epqtngrsxrmieehj")
    public suspend fun ips(values: List>) {
        this.ips = Output.all(values)
    }

    /**
     * @param value The ID of a configured identity provider.
     */
    @JvmName("acngfiveiiotakpy")
    public suspend fun loginMethods(`value`: Output>) {
        this.loginMethods = value
    }

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

    /**
     * @param values The ID of a configured identity provider.
     */
    @JvmName("boxvrcudkarcgyxw")
    public suspend fun loginMethods(values: List>) {
        this.loginMethods = Output.all(values)
    }

    /**
     * @param value Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("teytoxadkkxgtske")
    public suspend fun oktas(`value`: Output>) {
        this.oktas = value
    }

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

    /**
     * @param values Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("jkcrdooywwqeyaog")
    public suspend fun oktas(values: List>) {
        this.oktas = Output.all(values)
    }

    /**
     * @param value Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("ghlgcbukppealyve")
    public suspend fun samls(`value`: Output>) {
        this.samls = value
    }

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

    /**
     * @param values Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("lfdfethyvjlqthdr")
    public suspend fun samls(values: List>) {
        this.samls = Output.all(values)
    }

    /**
     * @param value The ID of an Access service token.
     */
    @JvmName("piksrbnsluyipcfp")
    public suspend fun serviceTokens(`value`: Output>) {
        this.serviceTokens = value
    }

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

    /**
     * @param values The ID of an Access service token.
     */
    @JvmName("ebkdyugjluctdkqw")
    public suspend fun serviceTokens(values: List>) {
        this.serviceTokens = Output.all(values)
    }

    /**
     * @param value Matches any valid Access service token.
     */
    @JvmName("fpurlbgnnejxsvwa")
    public suspend fun anyValidServiceToken(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.anyValidServiceToken = mapped
    }

    /**
     * @param value
     */
    @JvmName("hceyrveelygtkajn")
    public suspend fun authContexts(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authContexts = mapped
    }

    /**
     * @param argument
     */
    @JvmName("ovxpiugyybotddib")
    public suspend fun authContexts(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeAuthContextArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.authContexts = mapped
    }

    /**
     * @param argument
     */
    @JvmName("vikeyqpwlvyqxpxo")
    public suspend fun authContexts(vararg argument: suspend ZeroTrustAccessGroupIncludeAuthContextArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeAuthContextArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.authContexts = mapped
    }

    /**
     * @param argument
     */
    @JvmName("vsbedxwladjdlonx")
    public suspend fun authContexts(argument: suspend ZeroTrustAccessGroupIncludeAuthContextArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeAuthContextArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.authContexts = mapped
    }

    /**
     * @param values
     */
    @JvmName("vqkaajjqxlrripdq")
    public suspend fun authContexts(vararg values: ZeroTrustAccessGroupIncludeAuthContextArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authContexts = mapped
    }

    /**
     * @param value The type of authentication method. Refer to https://datatracker.ietf.org/doc/html/rfc8176#section-2 for possible types.
     */
    @JvmName("fxdkdafskpwjaolt")
    public suspend fun authMethod(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authMethod = mapped
    }

    /**
     * @param value Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("hhbwgcbjilpyiumj")
    public suspend fun azures(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azures = mapped
    }

    /**
     * @param argument Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("yvtkgpviunuetuxp")
    public suspend fun azures(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeAzureArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.azures = mapped
    }

    /**
     * @param argument Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("jmbfxuvtemabyurd")
    public suspend fun azures(vararg argument: suspend ZeroTrustAccessGroupIncludeAzureArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeAzureArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.azures = mapped
    }

    /**
     * @param argument Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("ighinvkecypyrbag")
    public suspend fun azures(argument: suspend ZeroTrustAccessGroupIncludeAzureArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeAzureArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.azures = mapped
    }

    /**
     * @param values Matches an Azure group. Requires an Azure identity provider.
     */
    @JvmName("ygwvlcnfsshoiwmy")
    public suspend fun azures(vararg values: ZeroTrustAccessGroupIncludeAzureArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.azures = mapped
    }

    /**
     * @param value Matches any valid client certificate.
     */
    @JvmName("hpipuudkulqogxtx")
    public suspend fun certificate(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certificate = mapped
    }

    /**
     * @param value Matches a valid client certificate common name.
     */
    @JvmName("nrylvrflgxdqarai")
    public suspend fun commonName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.commonName = mapped
    }

    /**
     * @param value Overflow field if you need to have multiple common*name rules in a single policy.  Use in place of the singular common*name field.
     */
    @JvmName("gahsljhxaavnekpq")
    public suspend fun commonNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.commonNames = mapped
    }

    /**
     * @param values Overflow field if you need to have multiple common*name rules in a single policy.  Use in place of the singular common*name field.
     */
    @JvmName("cenwaupmkdqbbdgd")
    public suspend fun commonNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.commonNames = mapped
    }

    /**
     * @param value The ID of a device posture integration.
     */
    @JvmName("repkdhaayeyonkix")
    public suspend fun devicePostures(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.devicePostures = mapped
    }

    /**
     * @param values The ID of a device posture integration.
     */
    @JvmName("ycyamccorskpxxyg")
    public suspend fun devicePostures(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.devicePostures = mapped
    }

    /**
     * @param value The email domain to match.
     */
    @JvmName("rlrutydrhrdhixlb")
    public suspend fun emailDomains(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.emailDomains = mapped
    }

    /**
     * @param values The email domain to match.
     */
    @JvmName("cpyedbxrjnuywjhw")
    public suspend fun emailDomains(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.emailDomains = mapped
    }

    /**
     * @param value The ID of a previously created email list.
     */
    @JvmName("wepwlmgjehdgemro")
    public suspend fun emailLists(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.emailLists = mapped
    }

    /**
     * @param values The ID of a previously created email list.
     */
    @JvmName("dffgxjhgnyhhcxep")
    public suspend fun emailLists(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.emailLists = mapped
    }

    /**
     * @param value The email of the user.
     */
    @JvmName("vsbpkrjtuaufbblk")
    public suspend fun emails(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.emails = mapped
    }

    /**
     * @param values The email of the user.
     */
    @JvmName("strpysxijrfaxcsd")
    public suspend fun emails(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.emails = mapped
    }

    /**
     * @param value Matches everyone.
     */
    @JvmName("pjquaearvfygaeky")
    public suspend fun everyone(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.everyone = mapped
    }

    /**
     * @param value Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("jvhxmbijvlpghlry")
    public suspend fun externalEvaluations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.externalEvaluations = mapped
    }

    /**
     * @param argument Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("mevhetmhjejgxmse")
    public suspend fun externalEvaluations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeExternalEvaluationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.externalEvaluations = mapped
    }

    /**
     * @param argument Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("vhgxwlbvihvvdyox")
    public suspend fun externalEvaluations(vararg argument: suspend ZeroTrustAccessGroupIncludeExternalEvaluationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeExternalEvaluationArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.externalEvaluations = mapped
    }

    /**
     * @param argument Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("rjprakdxqkqejesk")
    public suspend fun externalEvaluations(argument: suspend ZeroTrustAccessGroupIncludeExternalEvaluationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeExternalEvaluationArgsBuilder().applySuspend
                { argument() }.build(),
        )
        val mapped = of(toBeMapped)
        this.externalEvaluations = mapped
    }

    /**
     * @param values Create Allow or Block policies which evaluate the user based on custom criteria. https://developers.cloudflare.com/cloudflare-one/policies/access/external-evaluation/.
     */
    @JvmName("xsjvwwiaitmhjslb")
    public suspend fun externalEvaluations(vararg values: ZeroTrustAccessGroupIncludeExternalEvaluationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.externalEvaluations = mapped
    }

    /**
     * @param value Matches a specific country.
     */
    @JvmName("eksuluowijucchsi")
    public suspend fun geos(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.geos = mapped
    }

    /**
     * @param values Matches a specific country.
     */
    @JvmName("uuapppewafpupbqa")
    public suspend fun geos(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.geos = mapped
    }

    /**
     * @param value Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("qsinntymvkgqgtvp")
    public suspend fun githubs(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.githubs = mapped
    }

    /**
     * @param argument Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("goirvwumnesfroyk")
    public suspend fun githubs(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeGithubArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.githubs = mapped
    }

    /**
     * @param argument Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("wfhpnnbdtxgfwiyo")
    public suspend fun githubs(vararg argument: suspend ZeroTrustAccessGroupIncludeGithubArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeGithubArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.githubs = mapped
    }

    /**
     * @param argument Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("dmoxqucveplxgiwg")
    public suspend fun githubs(argument: suspend ZeroTrustAccessGroupIncludeGithubArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeGithubArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.githubs = mapped
    }

    /**
     * @param values Matches a Github organization. Requires a Github identity provider.
     */
    @JvmName("ofmdembpgxvhgqvv")
    public suspend fun githubs(vararg values: ZeroTrustAccessGroupIncludeGithubArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.githubs = mapped
    }

    /**
     * @param value The ID of a previously created Access group.
     */
    @JvmName("tpflggbdcrejxmit")
    public suspend fun groups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.groups = mapped
    }

    /**
     * @param values The ID of a previously created Access group.
     */
    @JvmName("fxhrqtfshroqonlh")
    public suspend fun groups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.groups = mapped
    }

    /**
     * @param value Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("haewskvnelxelmvw")
    public suspend fun gsuites(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gsuites = mapped
    }

    /**
     * @param argument Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("ojfsqdkfohytwlnh")
    public suspend fun gsuites(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeGsuiteArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.gsuites = mapped
    }

    /**
     * @param argument Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("lsvipjfpxrdocglr")
    public suspend fun gsuites(vararg argument: suspend ZeroTrustAccessGroupIncludeGsuiteArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeGsuiteArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.gsuites = mapped
    }

    /**
     * @param argument Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("lmfmqiycvrrlhyry")
    public suspend fun gsuites(argument: suspend ZeroTrustAccessGroupIncludeGsuiteArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeGsuiteArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.gsuites = mapped
    }

    /**
     * @param values Matches a group in Google Workspace. Requires a Google Workspace identity provider.
     */
    @JvmName("nchhdcmqdyfvmfgc")
    public suspend fun gsuites(vararg values: ZeroTrustAccessGroupIncludeGsuiteArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.gsuites = mapped
    }

    /**
     * @param value The ID of a previously created IP list.
     */
    @JvmName("blauorhverjjpqlg")
    public suspend fun ipLists(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipLists = mapped
    }

    /**
     * @param values The ID of a previously created IP list.
     */
    @JvmName("utjiugdybekfouon")
    public suspend fun ipLists(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipLists = mapped
    }

    /**
     * @param value An IPv4 or IPv6 CIDR block.
     */
    @JvmName("lowrylgchncdmkyn")
    public suspend fun ips(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ips = mapped
    }

    /**
     * @param values An IPv4 or IPv6 CIDR block.
     */
    @JvmName("atdxptklrmymffcb")
    public suspend fun ips(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ips = mapped
    }

    /**
     * @param value The ID of a configured identity provider.
     */
    @JvmName("nmajarivfcblknvs")
    public suspend fun loginMethods(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loginMethods = mapped
    }

    /**
     * @param values The ID of a configured identity provider.
     */
    @JvmName("kgbkcgvtbwawadkj")
    public suspend fun loginMethods(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loginMethods = mapped
    }

    /**
     * @param value Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("frtirhqeypgoxojo")
    public suspend fun oktas(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.oktas = mapped
    }

    /**
     * @param argument Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("cpydvnkwnaafakhn")
    public suspend fun oktas(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeOktaArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.oktas = mapped
    }

    /**
     * @param argument Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("gbvqdnpqolhbphqb")
    public suspend fun oktas(vararg argument: suspend ZeroTrustAccessGroupIncludeOktaArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeOktaArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.oktas = mapped
    }

    /**
     * @param argument Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("ptkipvvpehbepyvn")
    public suspend fun oktas(argument: suspend ZeroTrustAccessGroupIncludeOktaArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeOktaArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.oktas = mapped
    }

    /**
     * @param values Matches an Okta group. Requires an Okta identity provider.
     */
    @JvmName("vhbuysgvcinvlyeu")
    public suspend fun oktas(vararg values: ZeroTrustAccessGroupIncludeOktaArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.oktas = mapped
    }

    /**
     * @param value Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("astsrmsoosilpxkq")
    public suspend fun samls(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.samls = mapped
    }

    /**
     * @param argument Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("yxyomumbxmnelldu")
    public suspend fun samls(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeSamlArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.samls = mapped
    }

    /**
     * @param argument Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("abqiiuyhnqvygqnl")
    public suspend fun samls(vararg argument: suspend ZeroTrustAccessGroupIncludeSamlArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessGroupIncludeSamlArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.samls = mapped
    }

    /**
     * @param argument Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("kajpdugqjpklnmti")
    public suspend fun samls(argument: suspend ZeroTrustAccessGroupIncludeSamlArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessGroupIncludeSamlArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.samls = mapped
    }

    /**
     * @param values Matches a SAML group. Requires a SAML identity provider.
     */
    @JvmName("nvbxxvocxxboswyu")
    public suspend fun samls(vararg values: ZeroTrustAccessGroupIncludeSamlArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.samls = mapped
    }

    /**
     * @param value The ID of an Access service token.
     */
    @JvmName("ptdkswukxnooulyb")
    public suspend fun serviceTokens(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceTokens = mapped
    }

    /**
     * @param values The ID of an Access service token.
     */
    @JvmName("gnmypkhiqafjxnku")
    public suspend fun serviceTokens(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.serviceTokens = mapped
    }

    internal fun build(): ZeroTrustAccessGroupIncludeArgs = ZeroTrustAccessGroupIncludeArgs(
        anyValidServiceToken = anyValidServiceToken,
        authContexts = authContexts,
        authMethod = authMethod,
        azures = azures,
        certificate = certificate,
        commonName = commonName,
        commonNames = commonNames,
        devicePostures = devicePostures,
        emailDomains = emailDomains,
        emailLists = emailLists,
        emails = emails,
        everyone = everyone,
        externalEvaluations = externalEvaluations,
        geos = geos,
        githubs = githubs,
        groups = groups,
        gsuites = gsuites,
        ipLists = ipLists,
        ips = ips,
        loginMethods = loginMethods,
        oktas = oktas,
        samls = samls,
        serviceTokens = serviceTokens,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy