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

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

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

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

import com.pulumi.azure.appservice.inputs.SlotAuthSettingsArgs.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 A `active_directory` block as defined below.
 * @property additionalLoginParams Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value".
 * @property allowedExternalRedirectUrls External URLs that can be redirected to as part of logging in or logging out of the app.
 * @property defaultProvider The default provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.
 * > **NOTE:** When using multiple providers, the default provider must be set for settings like `unauthenticated_client_action` to work.
 * @property enabled Is Authentication enabled?
 * @property facebook A `facebook` block as defined below.
 * @property google A `google` block as defined below.
 * @property issuer Issuer URI. 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 runtime version of the Authentication/Authorization module.
 * @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`.
 * @property tokenStoreEnabled If enabled the module will 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 are `AllowAnonymous` and `RedirectToLoginPage`.
 */
public data class SlotAuthSettingsArgs(
    public val activeDirectory: Output? = null,
    public val additionalLoginParams: Output>? = null,
    public val allowedExternalRedirectUrls: Output>? = null,
    public val defaultProvider: Output? = null,
    public val enabled: Output,
    public val facebook: 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.SlotAuthSettingsArgs =
        com.pulumi.azure.appservice.inputs.SlotAuthSettingsArgs.builder()
            .activeDirectory(activeDirectory?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .additionalLoginParams(
                additionalLoginParams?.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() }) }))
            .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 [SlotAuthSettingsArgs].
 */
@PulumiTagMarker
public class SlotAuthSettingsArgsBuilder internal constructor() {
    private var activeDirectory: Output? = null

    private var additionalLoginParams: Output>? = null

    private var allowedExternalRedirectUrls: Output>? = null

    private var defaultProvider: Output? = null

    private var enabled: Output? = null

    private var facebook: 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 A `active_directory` block as defined below.
     */
    @JvmName("ayesqvyirmoqprje")
    public suspend fun activeDirectory(`value`: Output) {
        this.activeDirectory = value
    }

    /**
     * @param value Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value".
     */
    @JvmName("kuaulxjjsaeuogoa")
    public suspend fun additionalLoginParams(`value`: Output>) {
        this.additionalLoginParams = value
    }

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

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

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

    /**
     * @param value The default provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.
     * > **NOTE:** When using multiple providers, the default provider must be set for settings like `unauthenticated_client_action` to work.
     */
    @JvmName("kqtieicxcivlkfcj")
    public suspend fun defaultProvider(`value`: Output) {
        this.defaultProvider = value
    }

    /**
     * @param value Is Authentication enabled?
     */
    @JvmName("hkomrgoabefprmsx")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

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

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

    /**
     * @param value Issuer URI. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. .
     */
    @JvmName("xsqmuvreqxishprk")
    public suspend fun issuer(`value`: Output) {
        this.issuer = value
    }

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

    /**
     * @param value The runtime version of the Authentication/Authorization module.
     */
    @JvmName("havwxxmpcfiucxfd")
    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`.
     */
    @JvmName("sjbtulcnekqcpdvx")
    public suspend fun tokenRefreshExtensionHours(`value`: Output) {
        this.tokenRefreshExtensionHours = value
    }

    /**
     * @param value If enabled the module will durably store platform-specific security tokens that are obtained during login flows. Defaults to `false`.
     */
    @JvmName("icjfgfkpisrrtnfs")
    public suspend fun tokenStoreEnabled(`value`: Output) {
        this.tokenStoreEnabled = value
    }

    /**
     * @param value A `twitter` block as defined below.
     */
    @JvmName("xcmyyercdlocriok")
    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 are `AllowAnonymous` and `RedirectToLoginPage`.
     */
    @JvmName("pngrivnnirumsjhq")
    public suspend fun unauthenticatedClientAction(`value`: Output) {
        this.unauthenticatedClientAction = value
    }

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

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

    /**
     * @param value Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value".
     */
    @JvmName("cpumisloydjrwlih")
    public suspend fun additionalLoginParams(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalLoginParams = mapped
    }

    /**
     * @param values Login parameters to send to the OpenID Connect authorization endpoint when a user logs in. Each parameter must be in the form "key=value".
     */
    @JvmName("xrdluqphfjtyfhvm")
    public fun additionalLoginParams(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalLoginParams = mapped
    }

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

    /**
     * @param values External URLs that can be redirected to as part of logging in or logging out of the app.
     */
    @JvmName("eapfjqlcrpbbpfxy")
    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 provider to use when multiple providers have been set up. Possible values are `AzureActiveDirectory`, `Facebook`, `Google`, `MicrosoftAccount` and `Twitter`.
     * > **NOTE:** When using multiple providers, the default provider must be set for settings like `unauthenticated_client_action` to work.
     */
    @JvmName("wkkxcfwgjihbyooc")
    public suspend fun defaultProvider(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultProvider = mapped
    }

    /**
     * @param value Is Authentication enabled?
     */
    @JvmName("addpuvchvajpiwbk")
    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("ytbnxvpdadtffmpq")
    public suspend fun facebook(`value`: SlotAuthSettingsFacebookArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.facebook = mapped
    }

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

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

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

    /**
     * @param value Issuer URI. When using Azure Active Directory, this value is the URI of the directory tenant, e.g. .
     */
    @JvmName("vnwkncxqlppiqlpd")
    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("niddtaxgukceesqj")
    public suspend fun microsoft(`value`: SlotAuthSettingsMicrosoftArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoft = mapped
    }

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

    /**
     * @param value The runtime version of the Authentication/Authorization module.
     */
    @JvmName("kbdjjpwfikumpuru")
    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`.
     */
    @JvmName("jhpvyqydpqokqand")
    public suspend fun tokenRefreshExtensionHours(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tokenRefreshExtensionHours = mapped
    }

    /**
     * @param value If enabled the module will durably store platform-specific security tokens that are obtained during login flows. Defaults to `false`.
     */
    @JvmName("hrbjbdogggcqggye")
    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("wmpcwuthxnvayjfy")
    public suspend fun twitter(`value`: SlotAuthSettingsTwitterArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.twitter = mapped
    }

    /**
     * @param argument A `twitter` block as defined below.
     */
    @JvmName("wkjoimaypyxpgeyi")
    public suspend fun twitter(argument: suspend SlotAuthSettingsTwitterArgsBuilder.() -> Unit) {
        val toBeMapped = SlotAuthSettingsTwitterArgsBuilder().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 are `AllowAnonymous` and `RedirectToLoginPage`.
     */
    @JvmName("bgjsuvksktmflykb")
    public suspend fun unauthenticatedClientAction(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.unauthenticatedClientAction = mapped
    }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy