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

com.pulumi.cloudflare.kotlin.inputs.ZeroTrustAccessApplicationSaasAppArgs.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.ZeroTrustAccessApplicationSaasAppArgs.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 accessTokenLifetime The lifetime of the Access Token after creation. Valid units are `m` and `h`. Must be greater than or equal to 1m and less than or equal to 24h.
 * @property allowPkceWithoutClientSecret Allow PKCE flow without a client secret.
 * @property appLauncherUrl The URL where this applications tile redirects users.
 * @property authType **Modifying this attribute will force creation of a new resource.**
 * @property clientId The application client id.
 * @property clientSecret The application client secret, only returned on initial apply.
 * @property consumerServiceUrl The service provider's endpoint that is responsible for receiving and parsing a SAML assertion.
 * @property customAttributes Custom attribute mapped from IDPs.
 * @property customClaims Custom claim mapped from IDPs.
 * @property defaultRelayState The relay state used if not provided by the identity provider.
 * @property grantTypes The OIDC flows supported by this application.
 * @property groupFilterRegex A regex to filter Cloudflare groups returned in ID token and userinfo endpoint.
 * @property hybridAndImplicitOptions Hybrid and Implicit Flow options.
 * @property idpEntityId The unique identifier for the SaaS application.
 * @property nameIdFormat The format of the name identifier sent to the SaaS application.
 * @property nameIdTransformJsonata A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into a NameID value for its SAML assertion. This expression should evaluate to a singular string. The output of this expression can override the `name_id_format` setting.
 * @property publicKey The public certificate that will be used to verify identities.
 * @property redirectUris The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens.
 * @property refreshTokenOptions Refresh token grant options.
 * @property samlAttributeTransformJsonata A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into attribute assertions in the SAML response. The expression can transform id, email, name, and groups values. It can also transform fields listed in the saml*attributes or oidc*fields of the identity provider used to authenticate. The output of this expression must be a JSON object.
 * @property scopes Define the user information shared with access.
 * @property spEntityId A globally unique name for an identity or service provider.
 * @property ssoEndpoint The endpoint where the SaaS application will send login requests.
 */
public data class ZeroTrustAccessApplicationSaasAppArgs(
    public val accessTokenLifetime: Output? = null,
    public val allowPkceWithoutClientSecret: Output? = null,
    public val appLauncherUrl: Output? = null,
    public val authType: Output? = null,
    public val clientId: Output? = null,
    public val clientSecret: Output? = null,
    public val consumerServiceUrl: Output? = null,
    public val customAttributes: Output>? =
        null,
    public val customClaims: Output>? = null,
    public val defaultRelayState: Output? = null,
    public val grantTypes: Output>? = null,
    public val groupFilterRegex: Output? = null,
    public val hybridAndImplicitOptions: Output? = null,
    public val idpEntityId: Output? = null,
    public val nameIdFormat: Output? = null,
    public val nameIdTransformJsonata: Output? = null,
    public val publicKey: Output? = null,
    public val redirectUris: Output>? = null,
    public val refreshTokenOptions: Output>? = null,
    public val samlAttributeTransformJsonata: Output? = null,
    public val scopes: Output>? = null,
    public val spEntityId: Output? = null,
    public val ssoEndpoint: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.cloudflare.inputs.ZeroTrustAccessApplicationSaasAppArgs =
        com.pulumi.cloudflare.inputs.ZeroTrustAccessApplicationSaasAppArgs.builder()
            .accessTokenLifetime(accessTokenLifetime?.applyValue({ args0 -> args0 }))
            .allowPkceWithoutClientSecret(allowPkceWithoutClientSecret?.applyValue({ args0 -> args0 }))
            .appLauncherUrl(appLauncherUrl?.applyValue({ args0 -> args0 }))
            .authType(authType?.applyValue({ args0 -> args0 }))
            .clientId(clientId?.applyValue({ args0 -> args0 }))
            .clientSecret(clientSecret?.applyValue({ args0 -> args0 }))
            .consumerServiceUrl(consumerServiceUrl?.applyValue({ args0 -> args0 }))
            .customAttributes(
                customAttributes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .customClaims(
                customClaims?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .defaultRelayState(defaultRelayState?.applyValue({ args0 -> args0 }))
            .grantTypes(grantTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .groupFilterRegex(groupFilterRegex?.applyValue({ args0 -> args0 }))
            .hybridAndImplicitOptions(
                hybridAndImplicitOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .idpEntityId(idpEntityId?.applyValue({ args0 -> args0 }))
            .nameIdFormat(nameIdFormat?.applyValue({ args0 -> args0 }))
            .nameIdTransformJsonata(nameIdTransformJsonata?.applyValue({ args0 -> args0 }))
            .publicKey(publicKey?.applyValue({ args0 -> args0 }))
            .redirectUris(redirectUris?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .refreshTokenOptions(
                refreshTokenOptions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .samlAttributeTransformJsonata(samlAttributeTransformJsonata?.applyValue({ args0 -> args0 }))
            .scopes(scopes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .spEntityId(spEntityId?.applyValue({ args0 -> args0 }))
            .ssoEndpoint(ssoEndpoint?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ZeroTrustAccessApplicationSaasAppArgs].
 */
@PulumiTagMarker
public class ZeroTrustAccessApplicationSaasAppArgsBuilder internal constructor() {
    private var accessTokenLifetime: Output? = null

    private var allowPkceWithoutClientSecret: Output? = null

    private var appLauncherUrl: Output? = null

    private var authType: Output? = null

    private var clientId: Output? = null

    private var clientSecret: Output? = null

    private var consumerServiceUrl: Output? = null

    private var customAttributes: Output>? =
        null

    private var customClaims: Output>? = null

    private var defaultRelayState: Output? = null

    private var grantTypes: Output>? = null

    private var groupFilterRegex: Output? = null

    private var hybridAndImplicitOptions:
        Output? = null

    private var idpEntityId: Output? = null

    private var nameIdFormat: Output? = null

    private var nameIdTransformJsonata: Output? = null

    private var publicKey: Output? = null

    private var redirectUris: Output>? = null

    private var refreshTokenOptions:
        Output>? = null

    private var samlAttributeTransformJsonata: Output? = null

    private var scopes: Output>? = null

    private var spEntityId: Output? = null

    private var ssoEndpoint: Output? = null

    /**
     * @param value The lifetime of the Access Token after creation. Valid units are `m` and `h`. Must be greater than or equal to 1m and less than or equal to 24h.
     */
    @JvmName("hsbdisevmjejymru")
    public suspend fun accessTokenLifetime(`value`: Output) {
        this.accessTokenLifetime = value
    }

    /**
     * @param value Allow PKCE flow without a client secret.
     */
    @JvmName("dauqoubqtqoatjqm")
    public suspend fun allowPkceWithoutClientSecret(`value`: Output) {
        this.allowPkceWithoutClientSecret = value
    }

    /**
     * @param value The URL where this applications tile redirects users.
     */
    @JvmName("wcasuptmvjfrrcfd")
    public suspend fun appLauncherUrl(`value`: Output) {
        this.appLauncherUrl = value
    }

    /**
     * @param value **Modifying this attribute will force creation of a new resource.**
     */
    @JvmName("lpcpjdrgqqjkdgik")
    public suspend fun authType(`value`: Output) {
        this.authType = value
    }

    /**
     * @param value The application client id.
     */
    @JvmName("xpadkfomkargdimv")
    public suspend fun clientId(`value`: Output) {
        this.clientId = value
    }

    /**
     * @param value The application client secret, only returned on initial apply.
     */
    @JvmName("iofqctrrgvsrnhod")
    public suspend fun clientSecret(`value`: Output) {
        this.clientSecret = value
    }

    /**
     * @param value The service provider's endpoint that is responsible for receiving and parsing a SAML assertion.
     */
    @JvmName("vorrahjlxxgjiiyg")
    public suspend fun consumerServiceUrl(`value`: Output) {
        this.consumerServiceUrl = value
    }

    /**
     * @param value Custom attribute mapped from IDPs.
     */
    @JvmName("pksuykgepesdbnjw")
    public suspend fun customAttributes(`value`: Output>) {
        this.customAttributes = value
    }

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

    /**
     * @param values Custom attribute mapped from IDPs.
     */
    @JvmName("yjubpacwgbndhyqq")
    public suspend fun customAttributes(values: List>) {
        this.customAttributes = Output.all(values)
    }

    /**
     * @param value Custom claim mapped from IDPs.
     */
    @JvmName("cfkcpneyueyfwras")
    public suspend fun customClaims(`value`: Output>) {
        this.customClaims = value
    }

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

    /**
     * @param values Custom claim mapped from IDPs.
     */
    @JvmName("pdtldgprlhxuvjtb")
    public suspend fun customClaims(values: List>) {
        this.customClaims = Output.all(values)
    }

    /**
     * @param value The relay state used if not provided by the identity provider.
     */
    @JvmName("fcfvcbqfpjbbgpmo")
    public suspend fun defaultRelayState(`value`: Output) {
        this.defaultRelayState = value
    }

    /**
     * @param value The OIDC flows supported by this application.
     */
    @JvmName("rrwacmscyhekqilg")
    public suspend fun grantTypes(`value`: Output>) {
        this.grantTypes = value
    }

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

    /**
     * @param values The OIDC flows supported by this application.
     */
    @JvmName("iohvnnhoaaiewopv")
    public suspend fun grantTypes(values: List>) {
        this.grantTypes = Output.all(values)
    }

    /**
     * @param value A regex to filter Cloudflare groups returned in ID token and userinfo endpoint.
     */
    @JvmName("gcqeiusrelvtyspu")
    public suspend fun groupFilterRegex(`value`: Output) {
        this.groupFilterRegex = value
    }

    /**
     * @param value Hybrid and Implicit Flow options.
     */
    @JvmName("uqlfunxppkcjynpb")
    public suspend fun hybridAndImplicitOptions(`value`: Output) {
        this.hybridAndImplicitOptions = value
    }

    /**
     * @param value The unique identifier for the SaaS application.
     */
    @JvmName("wjfojkmqpriertcq")
    public suspend fun idpEntityId(`value`: Output) {
        this.idpEntityId = value
    }

    /**
     * @param value The format of the name identifier sent to the SaaS application.
     */
    @JvmName("mxcpmiifcxjdgtyj")
    public suspend fun nameIdFormat(`value`: Output) {
        this.nameIdFormat = value
    }

    /**
     * @param value A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into a NameID value for its SAML assertion. This expression should evaluate to a singular string. The output of this expression can override the `name_id_format` setting.
     */
    @JvmName("tibqlbywhlmttqjx")
    public suspend fun nameIdTransformJsonata(`value`: Output) {
        this.nameIdTransformJsonata = value
    }

    /**
     * @param value The public certificate that will be used to verify identities.
     */
    @JvmName("mwoyknfnpywofwff")
    public suspend fun publicKey(`value`: Output) {
        this.publicKey = value
    }

    /**
     * @param value The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens.
     */
    @JvmName("swvcxagxnrvgmucw")
    public suspend fun redirectUris(`value`: Output>) {
        this.redirectUris = value
    }

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

    /**
     * @param values The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens.
     */
    @JvmName("duaepvfcxuxpubst")
    public suspend fun redirectUris(values: List>) {
        this.redirectUris = Output.all(values)
    }

    /**
     * @param value Refresh token grant options.
     */
    @JvmName("yocelvkidnofnpai")
    public suspend fun refreshTokenOptions(`value`: Output>) {
        this.refreshTokenOptions = value
    }

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

    /**
     * @param values Refresh token grant options.
     */
    @JvmName("jbwbxthjitgpxsps")
    public suspend fun refreshTokenOptions(values: List>) {
        this.refreshTokenOptions = Output.all(values)
    }

    /**
     * @param value A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into attribute assertions in the SAML response. The expression can transform id, email, name, and groups values. It can also transform fields listed in the saml*attributes or oidc*fields of the identity provider used to authenticate. The output of this expression must be a JSON object.
     */
    @JvmName("dhjuhuiahcpyeygf")
    public suspend fun samlAttributeTransformJsonata(`value`: Output) {
        this.samlAttributeTransformJsonata = value
    }

    /**
     * @param value Define the user information shared with access.
     */
    @JvmName("atibyybcymclsqfb")
    public suspend fun scopes(`value`: Output>) {
        this.scopes = value
    }

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

    /**
     * @param values Define the user information shared with access.
     */
    @JvmName("eiunwjukpjpjkpku")
    public suspend fun scopes(values: List>) {
        this.scopes = Output.all(values)
    }

    /**
     * @param value A globally unique name for an identity or service provider.
     */
    @JvmName("wnrmpqlcgtmylajm")
    public suspend fun spEntityId(`value`: Output) {
        this.spEntityId = value
    }

    /**
     * @param value The endpoint where the SaaS application will send login requests.
     */
    @JvmName("srxbolhajnmrfslu")
    public suspend fun ssoEndpoint(`value`: Output) {
        this.ssoEndpoint = value
    }

    /**
     * @param value The lifetime of the Access Token after creation. Valid units are `m` and `h`. Must be greater than or equal to 1m and less than or equal to 24h.
     */
    @JvmName("vvtielapfvpujfff")
    public suspend fun accessTokenLifetime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.accessTokenLifetime = mapped
    }

    /**
     * @param value Allow PKCE flow without a client secret.
     */
    @JvmName("opsiehvmlieghadp")
    public suspend fun allowPkceWithoutClientSecret(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowPkceWithoutClientSecret = mapped
    }

    /**
     * @param value The URL where this applications tile redirects users.
     */
    @JvmName("awgvqdashbijaddh")
    public suspend fun appLauncherUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appLauncherUrl = mapped
    }

    /**
     * @param value **Modifying this attribute will force creation of a new resource.**
     */
    @JvmName("qnrvtpyqkgqldpbt")
    public suspend fun authType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authType = mapped
    }

    /**
     * @param value The application client id.
     */
    @JvmName("weixwqvxvorusulo")
    public suspend fun clientId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientId = mapped
    }

    /**
     * @param value The application client secret, only returned on initial apply.
     */
    @JvmName("xkcsgpqjfjakpwkm")
    public suspend fun clientSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSecret = mapped
    }

    /**
     * @param value The service provider's endpoint that is responsible for receiving and parsing a SAML assertion.
     */
    @JvmName("qlksujbmupyeqlxm")
    public suspend fun consumerServiceUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.consumerServiceUrl = mapped
    }

    /**
     * @param value Custom attribute mapped from IDPs.
     */
    @JvmName("ffnijsgmlyupspxk")
    public suspend fun customAttributes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customAttributes = mapped
    }

    /**
     * @param argument Custom attribute mapped from IDPs.
     */
    @JvmName("mfqriynrmjgurlkp")
    public suspend fun customAttributes(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessApplicationSaasAppCustomAttributeArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.customAttributes = mapped
    }

    /**
     * @param argument Custom attribute mapped from IDPs.
     */
    @JvmName("lpjqeuumerxbsxas")
    public suspend fun customAttributes(vararg argument: suspend ZeroTrustAccessApplicationSaasAppCustomAttributeArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessApplicationSaasAppCustomAttributeArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.customAttributes = mapped
    }

    /**
     * @param argument Custom attribute mapped from IDPs.
     */
    @JvmName("gjfemcrqywjveihl")
    public suspend fun customAttributes(argument: suspend ZeroTrustAccessApplicationSaasAppCustomAttributeArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ZeroTrustAccessApplicationSaasAppCustomAttributeArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.customAttributes = mapped
    }

    /**
     * @param values Custom attribute mapped from IDPs.
     */
    @JvmName("pkstftvmuxirrqhq")
    public suspend fun customAttributes(vararg values: ZeroTrustAccessApplicationSaasAppCustomAttributeArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.customAttributes = mapped
    }

    /**
     * @param value Custom claim mapped from IDPs.
     */
    @JvmName("enksroygyabdspia")
    public suspend fun customClaims(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customClaims = mapped
    }

    /**
     * @param argument Custom claim mapped from IDPs.
     */
    @JvmName("aifncyjtssrxstgl")
    public suspend fun customClaims(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessApplicationSaasAppCustomClaimArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.customClaims = mapped
    }

    /**
     * @param argument Custom claim mapped from IDPs.
     */
    @JvmName("vtpuclmwttfggqdt")
    public suspend fun customClaims(vararg argument: suspend ZeroTrustAccessApplicationSaasAppCustomClaimArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessApplicationSaasAppCustomClaimArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.customClaims = mapped
    }

    /**
     * @param argument Custom claim mapped from IDPs.
     */
    @JvmName("ugtdikojdvmisdsk")
    public suspend fun customClaims(argument: suspend ZeroTrustAccessApplicationSaasAppCustomClaimArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ZeroTrustAccessApplicationSaasAppCustomClaimArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.customClaims = mapped
    }

    /**
     * @param values Custom claim mapped from IDPs.
     */
    @JvmName("htuskkfaxbssmnll")
    public suspend fun customClaims(vararg values: ZeroTrustAccessApplicationSaasAppCustomClaimArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.customClaims = mapped
    }

    /**
     * @param value The relay state used if not provided by the identity provider.
     */
    @JvmName("cscegeyfrhbhkoxt")
    public suspend fun defaultRelayState(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultRelayState = mapped
    }

    /**
     * @param value The OIDC flows supported by this application.
     */
    @JvmName("mfoestgwxdntfqhv")
    public suspend fun grantTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.grantTypes = mapped
    }

    /**
     * @param values The OIDC flows supported by this application.
     */
    @JvmName("hdlwncjssxjsdmpj")
    public suspend fun grantTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.grantTypes = mapped
    }

    /**
     * @param value A regex to filter Cloudflare groups returned in ID token and userinfo endpoint.
     */
    @JvmName("kspvnhgfxqdnyswu")
    public suspend fun groupFilterRegex(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.groupFilterRegex = mapped
    }

    /**
     * @param value Hybrid and Implicit Flow options.
     */
    @JvmName("ukisppjpccxvjbat")
    public suspend fun hybridAndImplicitOptions(`value`: ZeroTrustAccessApplicationSaasAppHybridAndImplicitOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hybridAndImplicitOptions = mapped
    }

    /**
     * @param argument Hybrid and Implicit Flow options.
     */
    @JvmName("wmjqxesvrxdaybbb")
    public suspend fun hybridAndImplicitOptions(argument: suspend ZeroTrustAccessApplicationSaasAppHybridAndImplicitOptionsArgsBuilder.() -> Unit) {
        val toBeMapped =
            ZeroTrustAccessApplicationSaasAppHybridAndImplicitOptionsArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.hybridAndImplicitOptions = mapped
    }

    /**
     * @param value The unique identifier for the SaaS application.
     */
    @JvmName("fooudyakwmfxqfuu")
    public suspend fun idpEntityId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.idpEntityId = mapped
    }

    /**
     * @param value The format of the name identifier sent to the SaaS application.
     */
    @JvmName("mgqkqvbpjkyontwx")
    public suspend fun nameIdFormat(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nameIdFormat = mapped
    }

    /**
     * @param value A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into a NameID value for its SAML assertion. This expression should evaluate to a singular string. The output of this expression can override the `name_id_format` setting.
     */
    @JvmName("mvcwonaqhoooubax")
    public suspend fun nameIdTransformJsonata(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nameIdTransformJsonata = mapped
    }

    /**
     * @param value The public certificate that will be used to verify identities.
     */
    @JvmName("ktlvhqruwldvxfav")
    public suspend fun publicKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicKey = mapped
    }

    /**
     * @param value The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens.
     */
    @JvmName("egggipajwtcedxic")
    public suspend fun redirectUris(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.redirectUris = mapped
    }

    /**
     * @param values The permitted URL's for Cloudflare to return Authorization codes and Access/ID tokens.
     */
    @JvmName("kqiblxjkawtntiqa")
    public suspend fun redirectUris(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.redirectUris = mapped
    }

    /**
     * @param value Refresh token grant options.
     */
    @JvmName("mmvqrfafxdbiekcg")
    public suspend fun refreshTokenOptions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.refreshTokenOptions = mapped
    }

    /**
     * @param argument Refresh token grant options.
     */
    @JvmName("ydcjcsfgetoybdmt")
    public suspend fun refreshTokenOptions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessApplicationSaasAppRefreshTokenOptionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.refreshTokenOptions = mapped
    }

    /**
     * @param argument Refresh token grant options.
     */
    @JvmName("sepqnhvuvbhvkvwj")
    public suspend fun refreshTokenOptions(vararg argument: suspend ZeroTrustAccessApplicationSaasAppRefreshTokenOptionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ZeroTrustAccessApplicationSaasAppRefreshTokenOptionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.refreshTokenOptions = mapped
    }

    /**
     * @param argument Refresh token grant options.
     */
    @JvmName("psvlcboocphyhkhs")
    public suspend fun refreshTokenOptions(argument: suspend ZeroTrustAccessApplicationSaasAppRefreshTokenOptionArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ZeroTrustAccessApplicationSaasAppRefreshTokenOptionArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.refreshTokenOptions = mapped
    }

    /**
     * @param values Refresh token grant options.
     */
    @JvmName("dlgaajpubhvlrrps")
    public suspend fun refreshTokenOptions(vararg values: ZeroTrustAccessApplicationSaasAppRefreshTokenOptionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.refreshTokenOptions = mapped
    }

    /**
     * @param value A [JSONata](https://jsonata.org/) expression that transforms an application's user identities into attribute assertions in the SAML response. The expression can transform id, email, name, and groups values. It can also transform fields listed in the saml*attributes or oidc*fields of the identity provider used to authenticate. The output of this expression must be a JSON object.
     */
    @JvmName("errlfhoxmctmawyk")
    public suspend fun samlAttributeTransformJsonata(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.samlAttributeTransformJsonata = mapped
    }

    /**
     * @param value Define the user information shared with access.
     */
    @JvmName("poxbcxywteminwmi")
    public suspend fun scopes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scopes = mapped
    }

    /**
     * @param values Define the user information shared with access.
     */
    @JvmName("ohpdryfvwbfoljye")
    public suspend fun scopes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scopes = mapped
    }

    /**
     * @param value A globally unique name for an identity or service provider.
     */
    @JvmName("cvrhnfuiqydvmtdt")
    public suspend fun spEntityId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.spEntityId = mapped
    }

    /**
     * @param value The endpoint where the SaaS application will send login requests.
     */
    @JvmName("oyvsagybccuwptie")
    public suspend fun ssoEndpoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ssoEndpoint = mapped
    }

    internal fun build(): ZeroTrustAccessApplicationSaasAppArgs =
        ZeroTrustAccessApplicationSaasAppArgs(
            accessTokenLifetime = accessTokenLifetime,
            allowPkceWithoutClientSecret = allowPkceWithoutClientSecret,
            appLauncherUrl = appLauncherUrl,
            authType = authType,
            clientId = clientId,
            clientSecret = clientSecret,
            consumerServiceUrl = consumerServiceUrl,
            customAttributes = customAttributes,
            customClaims = customClaims,
            defaultRelayState = defaultRelayState,
            grantTypes = grantTypes,
            groupFilterRegex = groupFilterRegex,
            hybridAndImplicitOptions = hybridAndImplicitOptions,
            idpEntityId = idpEntityId,
            nameIdFormat = nameIdFormat,
            nameIdTransformJsonata = nameIdTransformJsonata,
            publicKey = publicKey,
            redirectUris = redirectUris,
            refreshTokenOptions = refreshTokenOptions,
            samlAttributeTransformJsonata = samlAttributeTransformJsonata,
            scopes = scopes,
            spEntityId = spEntityId,
            ssoEndpoint = ssoEndpoint,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy