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

com.pulumi.azure.appservice.kotlin.inputs.LinuxWebAppAuthSettingsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azure.appservice.kotlin.inputs

import com.pulumi.azure.appservice.inputs.LinuxWebAppAuthSettingsArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Double
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property activeDirectory An `active_directory` block as defined above.
 * @property additionalLoginParameters Specifies a map of login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.
 * @property allowedExternalRedirectUrls Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Linux Web App.
 * @property defaultProvider The default authentication provider to use when multiple providers are configured. Possible values include: `BuiltInAuthenticationProviderAzureActiveDirectory`, `BuiltInAuthenticationProviderFacebook`, `BuiltInAuthenticationProviderGoogle`, `BuiltInAuthenticationProviderMicrosoftAccount`, `BuiltInAuthenticationProviderTwitter`, `BuiltInAuthenticationProviderGithub`
 * > **NOTE:** This setting is only needed if multiple providers are configured, and the `unauthenticated_client_action` is set to "RedirectToLoginPage".
 * @property enabled Should the Authentication / Authorization feature be enabled for the Linux Web App?
 * @property facebook A `facebook` block as defined below.
 * @property github A `github` block as defined below.
 * @property google A `google` block as defined below.
 * @property issuer The OpenID Connect Issuer URI that represents the entity that issues access tokens for this Linux Web App.
 * > **NOTE:** When using Azure Active Directory, this value is the URI of the directory tenant, e.g. .
 * @property microsoft A `microsoft` block as defined below.
 * @property runtimeVersion The RuntimeVersion of the Authentication / Authorization feature in use for the Linux Web App.
 * @property tokenRefreshExtensionHours The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours.
 * @property tokenStoreEnabled Should the Linux Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`.
 * @property twitter A `twitter` block as defined below.
 * @property unauthenticatedClientAction The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.
 */
public data class LinuxWebAppAuthSettingsArgs(
    public val activeDirectory: Output? = null,
    public val additionalLoginParameters: Output>? = null,
    public val allowedExternalRedirectUrls: Output>? = null,
    public val defaultProvider: Output? = null,
    public val enabled: Output,
    public val facebook: Output? = null,
    public val github: Output? = null,
    public val google: Output? = null,
    public val issuer: Output? = null,
    public val microsoft: Output? = null,
    public val runtimeVersion: Output? = null,
    public val tokenRefreshExtensionHours: Output? = null,
    public val tokenStoreEnabled: Output? = null,
    public val twitter: Output? = null,
    public val unauthenticatedClientAction: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.appservice.inputs.LinuxWebAppAuthSettingsArgs =
        com.pulumi.azure.appservice.inputs.LinuxWebAppAuthSettingsArgs.builder()
            .activeDirectory(activeDirectory?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .additionalLoginParameters(
                additionalLoginParameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .allowedExternalRedirectUrls(
                allowedExternalRedirectUrls?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .defaultProvider(defaultProvider?.applyValue({ args0 -> args0 }))
            .enabled(enabled.applyValue({ args0 -> args0 }))
            .facebook(facebook?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .github(github?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .google(google?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .issuer(issuer?.applyValue({ args0 -> args0 }))
            .microsoft(microsoft?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .runtimeVersion(runtimeVersion?.applyValue({ args0 -> args0 }))
            .tokenRefreshExtensionHours(tokenRefreshExtensionHours?.applyValue({ args0 -> args0 }))
            .tokenStoreEnabled(tokenStoreEnabled?.applyValue({ args0 -> args0 }))
            .twitter(twitter?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .unauthenticatedClientAction(unauthenticatedClientAction?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [LinuxWebAppAuthSettingsArgs].
 */
@PulumiTagMarker
public class LinuxWebAppAuthSettingsArgsBuilder internal constructor() {
    private var activeDirectory: Output? = null

    private var additionalLoginParameters: Output>? = null

    private var allowedExternalRedirectUrls: Output>? = null

    private var defaultProvider: Output? = null

    private var enabled: Output? = null

    private var facebook: Output? = null

    private var github: Output? = null

    private var google: Output? = null

    private var issuer: Output? = null

    private var microsoft: Output? = null

    private var runtimeVersion: Output? = null

    private var tokenRefreshExtensionHours: Output? = null

    private var tokenStoreEnabled: Output? = null

    private var twitter: Output? = null

    private var unauthenticatedClientAction: Output? = null

    /**
     * @param value An `active_directory` block as defined above.
     */
    @JvmName("hynefoyopevnekyg")
    public suspend fun activeDirectory(`value`: Output) {
        this.activeDirectory = value
    }

    /**
     * @param value Specifies a map of login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.
     */
    @JvmName("nbkfgfvwhmchtrjx")
    public suspend fun additionalLoginParameters(`value`: Output>) {
        this.additionalLoginParameters = value
    }

    /**
     * @param value Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Linux Web App.
     */
    @JvmName("xpapceitdnxabcix")
    public suspend fun allowedExternalRedirectUrls(`value`: Output>) {
        this.allowedExternalRedirectUrls = value
    }

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

    /**
     * @param values Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Linux Web App.
     */
    @JvmName("kiexuqqcquunutoi")
    public suspend fun allowedExternalRedirectUrls(values: List>) {
        this.allowedExternalRedirectUrls = Output.all(values)
    }

    /**
     * @param value The default authentication provider to use when multiple providers are configured. Possible values include: `BuiltInAuthenticationProviderAzureActiveDirectory`, `BuiltInAuthenticationProviderFacebook`, `BuiltInAuthenticationProviderGoogle`, `BuiltInAuthenticationProviderMicrosoftAccount`, `BuiltInAuthenticationProviderTwitter`, `BuiltInAuthenticationProviderGithub`
     * > **NOTE:** This setting is only needed if multiple providers are configured, and the `unauthenticated_client_action` is set to "RedirectToLoginPage".
     */
    @JvmName("pqgalgdsuryjxeus")
    public suspend fun defaultProvider(`value`: Output) {
        this.defaultProvider = value
    }

    /**
     * @param value Should the Authentication / Authorization feature be enabled for the Linux Web App?
     */
    @JvmName("btandtfleopmfjgs")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

    /**
     * @param value A `facebook` block as defined below.
     */
    @JvmName("levllfbpwpyvhdvu")
    public suspend fun facebook(`value`: Output) {
        this.facebook = value
    }

    /**
     * @param value A `github` block as defined below.
     */
    @JvmName("lsathnwuaxvuiwht")
    public suspend fun github(`value`: Output) {
        this.github = value
    }

    /**
     * @param value A `google` block as defined below.
     */
    @JvmName("gbjlpxlldtbrbcxn")
    public suspend fun google(`value`: Output) {
        this.google = value
    }

    /**
     * @param value The OpenID Connect Issuer URI that represents the entity that issues access tokens for this Linux Web App.
     * > **NOTE:** When using Azure Active Directory, this value is the URI of the directory tenant, e.g. .
     */
    @JvmName("olvfbyfxbxgehkvk")
    public suspend fun issuer(`value`: Output) {
        this.issuer = value
    }

    /**
     * @param value A `microsoft` block as defined below.
     */
    @JvmName("mdmclbfurvtmekfb")
    public suspend fun microsoft(`value`: Output) {
        this.microsoft = value
    }

    /**
     * @param value The RuntimeVersion of the Authentication / Authorization feature in use for the Linux Web App.
     */
    @JvmName("ivrkqfkuebnonnxy")
    public suspend fun runtimeVersion(`value`: Output) {
        this.runtimeVersion = value
    }

    /**
     * @param value The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours.
     */
    @JvmName("qedctmbnlvewockg")
    public suspend fun tokenRefreshExtensionHours(`value`: Output) {
        this.tokenRefreshExtensionHours = value
    }

    /**
     * @param value Should the Linux Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`.
     */
    @JvmName("aflokfpmcegicpcn")
    public suspend fun tokenStoreEnabled(`value`: Output) {
        this.tokenStoreEnabled = value
    }

    /**
     * @param value A `twitter` block as defined below.
     */
    @JvmName("aytojrxxvejfjjry")
    public suspend fun twitter(`value`: Output) {
        this.twitter = value
    }

    /**
     * @param value The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.
     */
    @JvmName("rjfqgbbphkgyerak")
    public suspend fun unauthenticatedClientAction(`value`: Output) {
        this.unauthenticatedClientAction = value
    }

    /**
     * @param value An `active_directory` block as defined above.
     */
    @JvmName("pgayjhkbpgjdbbfd")
    public suspend fun activeDirectory(`value`: LinuxWebAppAuthSettingsActiveDirectoryArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.activeDirectory = mapped
    }

    /**
     * @param argument An `active_directory` block as defined above.
     */
    @JvmName("pfvvdxjgcbaxnsbi")
    public suspend fun activeDirectory(argument: suspend LinuxWebAppAuthSettingsActiveDirectoryArgsBuilder.() -> Unit) {
        val toBeMapped = LinuxWebAppAuthSettingsActiveDirectoryArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.activeDirectory = mapped
    }

    /**
     * @param value Specifies a map of login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.
     */
    @JvmName("nccdvxfvyqquhrxd")
    public suspend fun additionalLoginParameters(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalLoginParameters = mapped
    }

    /**
     * @param values Specifies a map of login Parameters to send to the OpenID Connect authorization endpoint when a user logs in.
     */
    @JvmName("taojtcmcouxyxqvw")
    public fun additionalLoginParameters(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalLoginParameters = mapped
    }

    /**
     * @param value Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Linux Web App.
     */
    @JvmName("itxmvaytwnkfonie")
    public suspend fun allowedExternalRedirectUrls(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedExternalRedirectUrls = mapped
    }

    /**
     * @param values Specifies a list of External URLs that can be redirected to as part of logging in or logging out of the Linux Web App.
     */
    @JvmName("xyonmqewvrffnxua")
    public suspend fun allowedExternalRedirectUrls(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedExternalRedirectUrls = mapped
    }

    /**
     * @param value The default authentication provider to use when multiple providers are configured. Possible values include: `BuiltInAuthenticationProviderAzureActiveDirectory`, `BuiltInAuthenticationProviderFacebook`, `BuiltInAuthenticationProviderGoogle`, `BuiltInAuthenticationProviderMicrosoftAccount`, `BuiltInAuthenticationProviderTwitter`, `BuiltInAuthenticationProviderGithub`
     * > **NOTE:** This setting is only needed if multiple providers are configured, and the `unauthenticated_client_action` is set to "RedirectToLoginPage".
     */
    @JvmName("fnatgjlbcwakjkqo")
    public suspend fun defaultProvider(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultProvider = mapped
    }

    /**
     * @param value Should the Authentication / Authorization feature be enabled for the Linux Web App?
     */
    @JvmName("ggobviydgovftxky")
    public suspend fun enabled(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.enabled = mapped
    }

    /**
     * @param value A `facebook` block as defined below.
     */
    @JvmName("cyrnojjwcihkvpie")
    public suspend fun facebook(`value`: LinuxWebAppAuthSettingsFacebookArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.facebook = mapped
    }

    /**
     * @param argument A `facebook` block as defined below.
     */
    @JvmName("uyhbtwtbqlpwyggk")
    public suspend fun facebook(argument: suspend LinuxWebAppAuthSettingsFacebookArgsBuilder.() -> Unit) {
        val toBeMapped = LinuxWebAppAuthSettingsFacebookArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.facebook = mapped
    }

    /**
     * @param value A `github` block as defined below.
     */
    @JvmName("mbbbwtyuaiotjych")
    public suspend fun github(`value`: LinuxWebAppAuthSettingsGithubArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.github = mapped
    }

    /**
     * @param argument A `github` block as defined below.
     */
    @JvmName("nsuvehbawssulvrk")
    public suspend fun github(argument: suspend LinuxWebAppAuthSettingsGithubArgsBuilder.() -> Unit) {
        val toBeMapped = LinuxWebAppAuthSettingsGithubArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.github = mapped
    }

    /**
     * @param value A `google` block as defined below.
     */
    @JvmName("ryvjdpctyyxuhqeq")
    public suspend fun google(`value`: LinuxWebAppAuthSettingsGoogleArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.google = mapped
    }

    /**
     * @param argument A `google` block as defined below.
     */
    @JvmName("fbisjksffafkufrm")
    public suspend fun google(argument: suspend LinuxWebAppAuthSettingsGoogleArgsBuilder.() -> Unit) {
        val toBeMapped = LinuxWebAppAuthSettingsGoogleArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.google = mapped
    }

    /**
     * @param value The OpenID Connect Issuer URI that represents the entity that issues access tokens for this Linux Web App.
     * > **NOTE:** When using Azure Active Directory, this value is the URI of the directory tenant, e.g. .
     */
    @JvmName("gvkccnykfpdvoqti")
    public suspend fun issuer(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.issuer = mapped
    }

    /**
     * @param value A `microsoft` block as defined below.
     */
    @JvmName("rnmxxdqvbccaocaj")
    public suspend fun microsoft(`value`: LinuxWebAppAuthSettingsMicrosoftArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoft = mapped
    }

    /**
     * @param argument A `microsoft` block as defined below.
     */
    @JvmName("pvrnbivcsvxufvjn")
    public suspend fun microsoft(argument: suspend LinuxWebAppAuthSettingsMicrosoftArgsBuilder.() -> Unit) {
        val toBeMapped = LinuxWebAppAuthSettingsMicrosoftArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.microsoft = mapped
    }

    /**
     * @param value The RuntimeVersion of the Authentication / Authorization feature in use for the Linux Web App.
     */
    @JvmName("pnhkpamdfuvovhuy")
    public suspend fun runtimeVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runtimeVersion = mapped
    }

    /**
     * @param value The number of hours after session token expiration that a session token can be used to call the token refresh API. Defaults to `72` hours.
     */
    @JvmName("lanuutpqyethvgbk")
    public suspend fun tokenRefreshExtensionHours(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tokenRefreshExtensionHours = mapped
    }

    /**
     * @param value Should the Linux Web App durably store platform-specific security tokens that are obtained during login flows? Defaults to `false`.
     */
    @JvmName("xmkhsyshsbrcjldr")
    public suspend fun tokenStoreEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tokenStoreEnabled = mapped
    }

    /**
     * @param value A `twitter` block as defined below.
     */
    @JvmName("nfmyvtbgiimtskhx")
    public suspend fun twitter(`value`: LinuxWebAppAuthSettingsTwitterArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.twitter = mapped
    }

    /**
     * @param argument A `twitter` block as defined below.
     */
    @JvmName("pihpqihfsaetvovi")
    public suspend fun twitter(argument: suspend LinuxWebAppAuthSettingsTwitterArgsBuilder.() -> Unit) {
        val toBeMapped = LinuxWebAppAuthSettingsTwitterArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.twitter = mapped
    }

    /**
     * @param value The action to take when an unauthenticated client attempts to access the app. Possible values include: `RedirectToLoginPage`, `AllowAnonymous`.
     */
    @JvmName("jvamltdpvikunfbm")
    public suspend fun unauthenticatedClientAction(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.unauthenticatedClientAction = mapped
    }

    internal fun build(): LinuxWebAppAuthSettingsArgs = LinuxWebAppAuthSettingsArgs(
        activeDirectory = activeDirectory,
        additionalLoginParameters = additionalLoginParameters,
        allowedExternalRedirectUrls = allowedExternalRedirectUrls,
        defaultProvider = defaultProvider,
        enabled = enabled ?: throw PulumiNullFieldException("enabled"),
        facebook = facebook,
        github = github,
        google = google,
        issuer = issuer,
        microsoft = microsoft,
        runtimeVersion = runtimeVersion,
        tokenRefreshExtensionHours = tokenRefreshExtensionHours,
        tokenStoreEnabled = tokenStoreEnabled,
        twitter = twitter,
        unauthenticatedClientAction = unauthenticatedClientAction,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy