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

com.pulumi.azurenative.web.kotlin.WebAppAuthSettingsSlotArgs.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.

There is a newer version: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.web.kotlin

import com.pulumi.azurenative.web.WebAppAuthSettingsSlotArgs.builder
import com.pulumi.azurenative.web.kotlin.enums.BuiltInAuthenticationProvider
import com.pulumi.azurenative.web.kotlin.enums.UnauthenticatedClientAction
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Double
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Configuration settings for the Azure App Service Authentication / Authorization feature.
 * Azure REST API version: 2022-09-01. Prior API version in Azure Native 1.x: 2020-12-01.
 * Other available API versions: 2020-10-01, 2023-01-01, 2023-12-01.
 * ## Import
 * An existing resource can be imported using its type token, name, and identifier, e.g.
 * ```sh
 * $ pulumi import azure-native:web:WebAppAuthSettingsSlot myresource1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/authsettings
 * ```
 * @property aadClaimsAuthorization Gets a JSON string containing the Azure AD Acl settings.
 * @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 allowedAudiences Allowed audience values to consider when validating JSON Web Tokens issued by
 * Azure Active Directory. Note that the ClientID value is always considered an
 * allowed audience, regardless of this setting.
 * @property allowedExternalRedirectUrls External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
 * This is an advanced setting typically only needed by Windows Store application backends.
 * Note that URLs within the current domain are always implicitly allowed.
 * @property authFilePath The path of the config file containing auth settings.
 * If the path is relative, base will the site's root directory.
 * @property clientId The Client ID of this relying party application, known as the client_id.
 * This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
 * other 3rd party OpenID Connect providers.
 * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
 * @property clientSecret The Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
 * This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
 * Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
 * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
 * @property clientSecretCertificateThumbprint An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
 * a replacement for the Client Secret. It is also optional.
 * @property clientSecretSettingName The app setting name that contains the client secret of the relying party application.
 * @property configVersion The ConfigVersion of the Authentication / Authorization feature in use for the current app.
 * The setting in this value can control the behavior of the control plane for Authentication / Authorization.
 * @property defaultProvider The default authentication provider to use when multiple providers are configured.
 * This setting is only needed if multiple providers are configured and the unauthenticated client
 * action is set to "RedirectToLoginPage".
 * @property enabled true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.
 * @property facebookAppId The App ID of the Facebook app used for login.
 * This setting is required for enabling Facebook Login.
 * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
 * @property facebookAppSecret The App Secret of the Facebook app used for Facebook Login.
 * This setting is required for enabling Facebook Login.
 * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
 * @property facebookAppSecretSettingName The app setting name that contains the app secret used for Facebook Login.
 * @property facebookOAuthScopes The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
 * This setting is optional.
 * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
 * @property gitHubClientId The Client Id of the GitHub app used for login.
 * This setting is required for enabling Github login
 * @property gitHubClientSecret The Client Secret of the GitHub app used for Github Login.
 * This setting is required for enabling Github login.
 * @property gitHubClientSecretSettingName The app setting name that contains the client secret of the Github
 * app used for GitHub Login.
 * @property gitHubOAuthScopes The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
 * This setting is optional
 * @property googleClientId The OpenID Connect Client ID for the Google web application.
 * This setting is required for enabling Google Sign-In.
 * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
 * @property googleClientSecret The client secret associated with the Google web application.
 * This setting is required for enabling Google Sign-In.
 * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
 * @property googleClientSecretSettingName The app setting name that contains the client secret associated with
 * the Google web application.
 * @property googleOAuthScopes The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
 * This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
 * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
 * @property isAuthFromFile "true" if the auth config settings should be read from a file,
 * "false" otherwise
 * @property issuer The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
 * When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
 * This URI is a case-sensitive identifier for the token issuer.
 * More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
 * @property kind Kind of resource.
 * @property microsoftAccountClientId The OAuth 2.0 client ID that was created for the app used for authentication.
 * This setting is required for enabling Microsoft Account authentication.
 * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
 * @property microsoftAccountClientSecret The OAuth 2.0 client secret that was created for the app used for authentication.
 * This setting is required for enabling Microsoft Account authentication.
 * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
 * @property microsoftAccountClientSecretSettingName The app setting name containing the OAuth 2.0 client secret that was created for the
 * app used for authentication.
 * @property microsoftAccountOAuthScopes The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
 * This setting is optional. If not specified, "wl.basic" is used as the default scope.
 * Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
 * @property name Name of web app.
 * @property resourceGroupName Name of the resource group to which the resource belongs.
 * @property runtimeVersion The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
 * The setting in this value can control the behavior of certain features in the Authentication / Authorization module.
 * @property slot Name of web app slot. If not specified then will default to production slot.
 * @property tokenRefreshExtensionHours The number of hours after session token expiration that a session token can be used to
 * call the token refresh API. The default is 72 hours.
 * @property tokenStoreEnabled true to durably store platform-specific security tokens that are obtained during login flows; otherwise, false.
 *  The default is false.
 * @property twitterConsumerKey The OAuth 1.0a consumer key of the Twitter application used for sign-in.
 * This setting is required for enabling Twitter Sign-In.
 * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
 * @property twitterConsumerSecret The OAuth 1.0a consumer secret of the Twitter application used for sign-in.
 * This setting is required for enabling Twitter Sign-In.
 * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
 * @property twitterConsumerSecretSettingName The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
 * application used for sign-in.
 * @property unauthenticatedClientAction The action to take when an unauthenticated client attempts to access the app.
 * @property validateIssuer Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such.
 */
public data class WebAppAuthSettingsSlotArgs(
    public val aadClaimsAuthorization: Output? = null,
    public val additionalLoginParams: Output>? = null,
    public val allowedAudiences: Output>? = null,
    public val allowedExternalRedirectUrls: Output>? = null,
    public val authFilePath: Output? = null,
    public val clientId: Output? = null,
    public val clientSecret: Output? = null,
    public val clientSecretCertificateThumbprint: Output? = null,
    public val clientSecretSettingName: Output? = null,
    public val configVersion: Output? = null,
    public val defaultProvider: Output? = null,
    public val enabled: Output? = null,
    public val facebookAppId: Output? = null,
    public val facebookAppSecret: Output? = null,
    public val facebookAppSecretSettingName: Output? = null,
    public val facebookOAuthScopes: Output>? = null,
    public val gitHubClientId: Output? = null,
    public val gitHubClientSecret: Output? = null,
    public val gitHubClientSecretSettingName: Output? = null,
    public val gitHubOAuthScopes: Output>? = null,
    public val googleClientId: Output? = null,
    public val googleClientSecret: Output? = null,
    public val googleClientSecretSettingName: Output? = null,
    public val googleOAuthScopes: Output>? = null,
    public val isAuthFromFile: Output? = null,
    public val issuer: Output? = null,
    public val kind: Output? = null,
    public val microsoftAccountClientId: Output? = null,
    public val microsoftAccountClientSecret: Output? = null,
    public val microsoftAccountClientSecretSettingName: Output? = null,
    public val microsoftAccountOAuthScopes: Output>? = null,
    public val name: Output? = null,
    public val resourceGroupName: Output? = null,
    public val runtimeVersion: Output? = null,
    public val slot: Output? = null,
    public val tokenRefreshExtensionHours: Output? = null,
    public val tokenStoreEnabled: Output? = null,
    public val twitterConsumerKey: Output? = null,
    public val twitterConsumerSecret: Output? = null,
    public val twitterConsumerSecretSettingName: Output? = null,
    public val unauthenticatedClientAction: Output? = null,
    public val validateIssuer: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.web.WebAppAuthSettingsSlotArgs =
        com.pulumi.azurenative.web.WebAppAuthSettingsSlotArgs.builder()
            .aadClaimsAuthorization(aadClaimsAuthorization?.applyValue({ args0 -> args0 }))
            .additionalLoginParams(additionalLoginParams?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowedAudiences(allowedAudiences?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowedExternalRedirectUrls(
                allowedExternalRedirectUrls?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .authFilePath(authFilePath?.applyValue({ args0 -> args0 }))
            .clientId(clientId?.applyValue({ args0 -> args0 }))
            .clientSecret(clientSecret?.applyValue({ args0 -> args0 }))
            .clientSecretCertificateThumbprint(
                clientSecretCertificateThumbprint?.applyValue({ args0 ->
                    args0
                }),
            )
            .clientSecretSettingName(clientSecretSettingName?.applyValue({ args0 -> args0 }))
            .configVersion(configVersion?.applyValue({ args0 -> args0 }))
            .defaultProvider(defaultProvider?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .enabled(enabled?.applyValue({ args0 -> args0 }))
            .facebookAppId(facebookAppId?.applyValue({ args0 -> args0 }))
            .facebookAppSecret(facebookAppSecret?.applyValue({ args0 -> args0 }))
            .facebookAppSecretSettingName(facebookAppSecretSettingName?.applyValue({ args0 -> args0 }))
            .facebookOAuthScopes(facebookOAuthScopes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .gitHubClientId(gitHubClientId?.applyValue({ args0 -> args0 }))
            .gitHubClientSecret(gitHubClientSecret?.applyValue({ args0 -> args0 }))
            .gitHubClientSecretSettingName(gitHubClientSecretSettingName?.applyValue({ args0 -> args0 }))
            .gitHubOAuthScopes(gitHubOAuthScopes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .googleClientId(googleClientId?.applyValue({ args0 -> args0 }))
            .googleClientSecret(googleClientSecret?.applyValue({ args0 -> args0 }))
            .googleClientSecretSettingName(googleClientSecretSettingName?.applyValue({ args0 -> args0 }))
            .googleOAuthScopes(googleOAuthScopes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .isAuthFromFile(isAuthFromFile?.applyValue({ args0 -> args0 }))
            .issuer(issuer?.applyValue({ args0 -> args0 }))
            .kind(kind?.applyValue({ args0 -> args0 }))
            .microsoftAccountClientId(microsoftAccountClientId?.applyValue({ args0 -> args0 }))
            .microsoftAccountClientSecret(microsoftAccountClientSecret?.applyValue({ args0 -> args0 }))
            .microsoftAccountClientSecretSettingName(
                microsoftAccountClientSecretSettingName?.applyValue({ args0 ->
                    args0
                }),
            )
            .microsoftAccountOAuthScopes(
                microsoftAccountOAuthScopes?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .runtimeVersion(runtimeVersion?.applyValue({ args0 -> args0 }))
            .slot(slot?.applyValue({ args0 -> args0 }))
            .tokenRefreshExtensionHours(tokenRefreshExtensionHours?.applyValue({ args0 -> args0 }))
            .tokenStoreEnabled(tokenStoreEnabled?.applyValue({ args0 -> args0 }))
            .twitterConsumerKey(twitterConsumerKey?.applyValue({ args0 -> args0 }))
            .twitterConsumerSecret(twitterConsumerSecret?.applyValue({ args0 -> args0 }))
            .twitterConsumerSecretSettingName(twitterConsumerSecretSettingName?.applyValue({ args0 -> args0 }))
            .unauthenticatedClientAction(
                unauthenticatedClientAction?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .validateIssuer(validateIssuer?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [WebAppAuthSettingsSlotArgs].
 */
@PulumiTagMarker
public class WebAppAuthSettingsSlotArgsBuilder internal constructor() {
    private var aadClaimsAuthorization: Output? = null

    private var additionalLoginParams: Output>? = null

    private var allowedAudiences: Output>? = null

    private var allowedExternalRedirectUrls: Output>? = null

    private var authFilePath: Output? = null

    private var clientId: Output? = null

    private var clientSecret: Output? = null

    private var clientSecretCertificateThumbprint: Output? = null

    private var clientSecretSettingName: Output? = null

    private var configVersion: Output? = null

    private var defaultProvider: Output? = null

    private var enabled: Output? = null

    private var facebookAppId: Output? = null

    private var facebookAppSecret: Output? = null

    private var facebookAppSecretSettingName: Output? = null

    private var facebookOAuthScopes: Output>? = null

    private var gitHubClientId: Output? = null

    private var gitHubClientSecret: Output? = null

    private var gitHubClientSecretSettingName: Output? = null

    private var gitHubOAuthScopes: Output>? = null

    private var googleClientId: Output? = null

    private var googleClientSecret: Output? = null

    private var googleClientSecretSettingName: Output? = null

    private var googleOAuthScopes: Output>? = null

    private var isAuthFromFile: Output? = null

    private var issuer: Output? = null

    private var kind: Output? = null

    private var microsoftAccountClientId: Output? = null

    private var microsoftAccountClientSecret: Output? = null

    private var microsoftAccountClientSecretSettingName: Output? = null

    private var microsoftAccountOAuthScopes: Output>? = null

    private var name: Output? = null

    private var resourceGroupName: Output? = null

    private var runtimeVersion: Output? = null

    private var slot: Output? = null

    private var tokenRefreshExtensionHours: Output? = null

    private var tokenStoreEnabled: Output? = null

    private var twitterConsumerKey: Output? = null

    private var twitterConsumerSecret: Output? = null

    private var twitterConsumerSecretSettingName: Output? = null

    private var unauthenticatedClientAction: Output? = null

    private var validateIssuer: Output? = null

    /**
     * @param value Gets a JSON string containing the Azure AD Acl settings.
     */
    @JvmName("ljphiodancesowdg")
    public suspend fun aadClaimsAuthorization(`value`: Output) {
        this.aadClaimsAuthorization = 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("lhdbpjnpulsrahct")
    public suspend fun additionalLoginParams(`value`: Output>) {
        this.additionalLoginParams = value
    }

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

    /**
     * @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("ilfmlurbgsyeulwq")
    public suspend fun additionalLoginParams(values: List>) {
        this.additionalLoginParams = Output.all(values)
    }

    /**
     * @param value Allowed audience values to consider when validating JSON Web Tokens issued by
     * Azure Active Directory. Note that the ClientID value is always considered an
     * allowed audience, regardless of this setting.
     */
    @JvmName("blhdxkydwnstfecw")
    public suspend fun allowedAudiences(`value`: Output>) {
        this.allowedAudiences = value
    }

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

    /**
     * @param values Allowed audience values to consider when validating JSON Web Tokens issued by
     * Azure Active Directory. Note that the ClientID value is always considered an
     * allowed audience, regardless of this setting.
     */
    @JvmName("mxdvscwsbobkssmi")
    public suspend fun allowedAudiences(values: List>) {
        this.allowedAudiences = Output.all(values)
    }

    /**
     * @param value External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
     * This is an advanced setting typically only needed by Windows Store application backends.
     * Note that URLs within the current domain are always implicitly allowed.
     */
    @JvmName("affyyiaflunhundx")
    public suspend fun allowedExternalRedirectUrls(`value`: Output>) {
        this.allowedExternalRedirectUrls = value
    }

    @JvmName("cplnqnsscdyeyhge")
    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. Note that the query string part of the URL is ignored.
     * This is an advanced setting typically only needed by Windows Store application backends.
     * Note that URLs within the current domain are always implicitly allowed.
     */
    @JvmName("lehpoxwhocqcadmv")
    public suspend fun allowedExternalRedirectUrls(values: List>) {
        this.allowedExternalRedirectUrls = Output.all(values)
    }

    /**
     * @param value The path of the config file containing auth settings.
     * If the path is relative, base will the site's root directory.
     */
    @JvmName("cjssaxwupvtuigxt")
    public suspend fun authFilePath(`value`: Output) {
        this.authFilePath = value
    }

    /**
     * @param value The Client ID of this relying party application, known as the client_id.
     * This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
     * other 3rd party OpenID Connect providers.
     * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
     */
    @JvmName("dxwnnpbuikogmbcu")
    public suspend fun clientId(`value`: Output) {
        this.clientId = value
    }

    /**
     * @param value The Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
     * This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
     * Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
     * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
     */
    @JvmName("shhkalahjqxljgwx")
    public suspend fun clientSecret(`value`: Output) {
        this.clientSecret = value
    }

    /**
     * @param value An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
     * a replacement for the Client Secret. It is also optional.
     */
    @JvmName("exbwoiheaolfttbv")
    public suspend fun clientSecretCertificateThumbprint(`value`: Output) {
        this.clientSecretCertificateThumbprint = value
    }

    /**
     * @param value The app setting name that contains the client secret of the relying party application.
     */
    @JvmName("tdukrfkrgfwvbava")
    public suspend fun clientSecretSettingName(`value`: Output) {
        this.clientSecretSettingName = value
    }

    /**
     * @param value The ConfigVersion of the Authentication / Authorization feature in use for the current app.
     * The setting in this value can control the behavior of the control plane for Authentication / Authorization.
     */
    @JvmName("nfwjebrthajfyrjj")
    public suspend fun configVersion(`value`: Output) {
        this.configVersion = value
    }

    /**
     * @param value The default authentication provider to use when multiple providers are configured.
     * This setting is only needed if multiple providers are configured and the unauthenticated client
     * action is set to "RedirectToLoginPage".
     */
    @JvmName("pnhxelagpabjmnbc")
    public suspend fun defaultProvider(`value`: Output) {
        this.defaultProvider = value
    }

    /**
     * @param value true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.
     */
    @JvmName("sjuytpwhvncqblgs")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

    /**
     * @param value The App ID of the Facebook app used for login.
     * This setting is required for enabling Facebook Login.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("ekligissimowirgh")
    public suspend fun facebookAppId(`value`: Output) {
        this.facebookAppId = value
    }

    /**
     * @param value The App Secret of the Facebook app used for Facebook Login.
     * This setting is required for enabling Facebook Login.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("xcxiimrvgowudvwx")
    public suspend fun facebookAppSecret(`value`: Output) {
        this.facebookAppSecret = value
    }

    /**
     * @param value The app setting name that contains the app secret used for Facebook Login.
     */
    @JvmName("xmkawyojjkrxbovo")
    public suspend fun facebookAppSecretSettingName(`value`: Output) {
        this.facebookAppSecretSettingName = value
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
     * This setting is optional.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("xkjkoiowsjkdbabt")
    public suspend fun facebookOAuthScopes(`value`: Output>) {
        this.facebookOAuthScopes = value
    }

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

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
     * This setting is optional.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("rpqeaocnjmwyxhyw")
    public suspend fun facebookOAuthScopes(values: List>) {
        this.facebookOAuthScopes = Output.all(values)
    }

    /**
     * @param value The Client Id of the GitHub app used for login.
     * This setting is required for enabling Github login
     */
    @JvmName("bxmjicijvilchqhc")
    public suspend fun gitHubClientId(`value`: Output) {
        this.gitHubClientId = value
    }

    /**
     * @param value The Client Secret of the GitHub app used for Github Login.
     * This setting is required for enabling Github login.
     */
    @JvmName("vesunyyinfjbgocm")
    public suspend fun gitHubClientSecret(`value`: Output) {
        this.gitHubClientSecret = value
    }

    /**
     * @param value The app setting name that contains the client secret of the Github
     * app used for GitHub Login.
     */
    @JvmName("mfdqmodhlhbjcpmp")
    public suspend fun gitHubClientSecretSettingName(`value`: Output) {
        this.gitHubClientSecretSettingName = value
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
     * This setting is optional
     */
    @JvmName("ymcuvuntkxqxcjee")
    public suspend fun gitHubOAuthScopes(`value`: Output>) {
        this.gitHubOAuthScopes = value
    }

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

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
     * This setting is optional
     */
    @JvmName("xynquwbocidtoros")
    public suspend fun gitHubOAuthScopes(values: List>) {
        this.gitHubOAuthScopes = Output.all(values)
    }

    /**
     * @param value The OpenID Connect Client ID for the Google web application.
     * This setting is required for enabling Google Sign-In.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("dpyqublkmbsalyyp")
    public suspend fun googleClientId(`value`: Output) {
        this.googleClientId = value
    }

    /**
     * @param value The client secret associated with the Google web application.
     * This setting is required for enabling Google Sign-In.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("vdialbkoletqwlqa")
    public suspend fun googleClientSecret(`value`: Output) {
        this.googleClientSecret = value
    }

    /**
     * @param value The app setting name that contains the client secret associated with
     * the Google web application.
     */
    @JvmName("jcnakiijrlrrnrnr")
    public suspend fun googleClientSecretSettingName(`value`: Output) {
        this.googleClientSecretSettingName = value
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
     * This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("qcqjxaryxmaqkuyn")
    public suspend fun googleOAuthScopes(`value`: Output>) {
        this.googleOAuthScopes = value
    }

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

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
     * This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("nncigtqbghyoravv")
    public suspend fun googleOAuthScopes(values: List>) {
        this.googleOAuthScopes = Output.all(values)
    }

    /**
     * @param value "true" if the auth config settings should be read from a file,
     * "false" otherwise
     */
    @JvmName("eghkupkfsadywufr")
    public suspend fun isAuthFromFile(`value`: Output) {
        this.isAuthFromFile = value
    }

    /**
     * @param value The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
     * When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
     * This URI is a case-sensitive identifier for the token issuer.
     * More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
     */
    @JvmName("obtxlkglfkhrpxpk")
    public suspend fun issuer(`value`: Output) {
        this.issuer = value
    }

    /**
     * @param value Kind of resource.
     */
    @JvmName("grxhunjpfakkybri")
    public suspend fun kind(`value`: Output) {
        this.kind = value
    }

    /**
     * @param value The OAuth 2.0 client ID that was created for the app used for authentication.
     * This setting is required for enabling Microsoft Account authentication.
     * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
     */
    @JvmName("jpsvvlbriktxquyf")
    public suspend fun microsoftAccountClientId(`value`: Output) {
        this.microsoftAccountClientId = value
    }

    /**
     * @param value The OAuth 2.0 client secret that was created for the app used for authentication.
     * This setting is required for enabling Microsoft Account authentication.
     * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
     */
    @JvmName("ybhadjtydfuhenph")
    public suspend fun microsoftAccountClientSecret(`value`: Output) {
        this.microsoftAccountClientSecret = value
    }

    /**
     * @param value The app setting name containing the OAuth 2.0 client secret that was created for the
     * app used for authentication.
     */
    @JvmName("pctcadjbypehagme")
    public suspend fun microsoftAccountClientSecretSettingName(`value`: Output) {
        this.microsoftAccountClientSecretSettingName = value
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
     * This setting is optional. If not specified, "wl.basic" is used as the default scope.
     * Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
     */
    @JvmName("bumfijdeefshnkmk")
    public suspend fun microsoftAccountOAuthScopes(`value`: Output>) {
        this.microsoftAccountOAuthScopes = value
    }

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

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
     * This setting is optional. If not specified, "wl.basic" is used as the default scope.
     * Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
     */
    @JvmName("nrmbxxyapgaohgup")
    public suspend fun microsoftAccountOAuthScopes(values: List>) {
        this.microsoftAccountOAuthScopes = Output.all(values)
    }

    /**
     * @param value Name of web app.
     */
    @JvmName("fqwulmektnyhbiss")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Name of the resource group to which the resource belongs.
     */
    @JvmName("laqrbcxcsqcxklnp")
    public suspend fun resourceGroupName(`value`: Output) {
        this.resourceGroupName = value
    }

    /**
     * @param value The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
     * The setting in this value can control the behavior of certain features in the Authentication / Authorization module.
     */
    @JvmName("nltxapgyigdhgymi")
    public suspend fun runtimeVersion(`value`: Output) {
        this.runtimeVersion = value
    }

    /**
     * @param value Name of web app slot. If not specified then will default to production slot.
     */
    @JvmName("oredanoosktwbfpw")
    public suspend fun slot(`value`: Output) {
        this.slot = value
    }

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

    /**
     * @param value true to durably store platform-specific security tokens that are obtained during login flows; otherwise, false.
     *  The default is false.
     */
    @JvmName("rooavsafkgnptmit")
    public suspend fun tokenStoreEnabled(`value`: Output) {
        this.tokenStoreEnabled = value
    }

    /**
     * @param value The OAuth 1.0a consumer key of the Twitter application used for sign-in.
     * This setting is required for enabling Twitter Sign-In.
     * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
     */
    @JvmName("thupamljuhtktkce")
    public suspend fun twitterConsumerKey(`value`: Output) {
        this.twitterConsumerKey = value
    }

    /**
     * @param value The OAuth 1.0a consumer secret of the Twitter application used for sign-in.
     * This setting is required for enabling Twitter Sign-In.
     * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
     */
    @JvmName("orrrioyqyreplgsa")
    public suspend fun twitterConsumerSecret(`value`: Output) {
        this.twitterConsumerSecret = value
    }

    /**
     * @param value The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
     * application used for sign-in.
     */
    @JvmName("iwdyklusnvxxierr")
    public suspend fun twitterConsumerSecretSettingName(`value`: Output) {
        this.twitterConsumerSecretSettingName = value
    }

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

    /**
     * @param value Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such.
     */
    @JvmName("olidxeykadwaisfr")
    public suspend fun validateIssuer(`value`: Output) {
        this.validateIssuer = value
    }

    /**
     * @param value Gets a JSON string containing the Azure AD Acl settings.
     */
    @JvmName("tknmqqmyaorcifvl")
    public suspend fun aadClaimsAuthorization(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.aadClaimsAuthorization = 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("oqvkmdodaouathoi")
    public suspend fun additionalLoginParams(`value`: List?) {
        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("hltlurqvslqyraop")
    public suspend fun additionalLoginParams(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalLoginParams = mapped
    }

    /**
     * @param value Allowed audience values to consider when validating JSON Web Tokens issued by
     * Azure Active Directory. Note that the ClientID value is always considered an
     * allowed audience, regardless of this setting.
     */
    @JvmName("hrpddsrdrupytbym")
    public suspend fun allowedAudiences(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedAudiences = mapped
    }

    /**
     * @param values Allowed audience values to consider when validating JSON Web Tokens issued by
     * Azure Active Directory. Note that the ClientID value is always considered an
     * allowed audience, regardless of this setting.
     */
    @JvmName("mrceibdoxrbtayop")
    public suspend fun allowedAudiences(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedAudiences = mapped
    }

    /**
     * @param value External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
     * This is an advanced setting typically only needed by Windows Store application backends.
     * Note that URLs within the current domain are always implicitly allowed.
     */
    @JvmName("ujsdxtxxencxcrhq")
    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. Note that the query string part of the URL is ignored.
     * This is an advanced setting typically only needed by Windows Store application backends.
     * Note that URLs within the current domain are always implicitly allowed.
     */
    @JvmName("pejwfffohsxkucml")
    public suspend fun allowedExternalRedirectUrls(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedExternalRedirectUrls = mapped
    }

    /**
     * @param value The path of the config file containing auth settings.
     * If the path is relative, base will the site's root directory.
     */
    @JvmName("ywabggrkwxowwjss")
    public suspend fun authFilePath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authFilePath = mapped
    }

    /**
     * @param value The Client ID of this relying party application, known as the client_id.
     * This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
     * other 3rd party OpenID Connect providers.
     * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
     */
    @JvmName("qwhpgamknmdsehva")
    public suspend fun clientId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientId = mapped
    }

    /**
     * @param value The Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
     * This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
     * Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
     * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
     */
    @JvmName("vladlxkxfgetnfek")
    public suspend fun clientSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSecret = mapped
    }

    /**
     * @param value An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
     * a replacement for the Client Secret. It is also optional.
     */
    @JvmName("qkrvpntgyvygqrir")
    public suspend fun clientSecretCertificateThumbprint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSecretCertificateThumbprint = mapped
    }

    /**
     * @param value The app setting name that contains the client secret of the relying party application.
     */
    @JvmName("xctoudlddthvdqnm")
    public suspend fun clientSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSecretSettingName = mapped
    }

    /**
     * @param value The ConfigVersion of the Authentication / Authorization feature in use for the current app.
     * The setting in this value can control the behavior of the control plane for Authentication / Authorization.
     */
    @JvmName("yvswnivxfoqubkdh")
    public suspend fun configVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configVersion = mapped
    }

    /**
     * @param value The default authentication provider to use when multiple providers are configured.
     * This setting is only needed if multiple providers are configured and the unauthenticated client
     * action is set to "RedirectToLoginPage".
     */
    @JvmName("qmlpnjfvbbblvfyp")
    public suspend fun defaultProvider(`value`: BuiltInAuthenticationProvider?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultProvider = mapped
    }

    /**
     * @param value true if the Authentication / Authorization feature is enabled for the current app; otherwise, false.
     */
    @JvmName("djhdurmawihaowio")
    public suspend fun enabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enabled = mapped
    }

    /**
     * @param value The App ID of the Facebook app used for login.
     * This setting is required for enabling Facebook Login.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("oyfuvuobjfcdjevk")
    public suspend fun facebookAppId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.facebookAppId = mapped
    }

    /**
     * @param value The App Secret of the Facebook app used for Facebook Login.
     * This setting is required for enabling Facebook Login.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("peymaxjxqtgblukg")
    public suspend fun facebookAppSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.facebookAppSecret = mapped
    }

    /**
     * @param value The app setting name that contains the app secret used for Facebook Login.
     */
    @JvmName("vpdnpxuwtyfmfkny")
    public suspend fun facebookAppSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.facebookAppSecretSettingName = mapped
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
     * This setting is optional.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("qdrirbsqfuktgqll")
    public suspend fun facebookOAuthScopes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.facebookOAuthScopes = mapped
    }

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
     * This setting is optional.
     * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
     */
    @JvmName("hcwodaithokhtlja")
    public suspend fun facebookOAuthScopes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.facebookOAuthScopes = mapped
    }

    /**
     * @param value The Client Id of the GitHub app used for login.
     * This setting is required for enabling Github login
     */
    @JvmName("lttdaglnasjhxaaw")
    public suspend fun gitHubClientId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gitHubClientId = mapped
    }

    /**
     * @param value The Client Secret of the GitHub app used for Github Login.
     * This setting is required for enabling Github login.
     */
    @JvmName("rewiofldakvbikkt")
    public suspend fun gitHubClientSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gitHubClientSecret = mapped
    }

    /**
     * @param value The app setting name that contains the client secret of the Github
     * app used for GitHub Login.
     */
    @JvmName("mqjqrctqtlhssobt")
    public suspend fun gitHubClientSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gitHubClientSecretSettingName = mapped
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
     * This setting is optional
     */
    @JvmName("xuhyamuhefebshnk")
    public suspend fun gitHubOAuthScopes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.gitHubOAuthScopes = mapped
    }

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
     * This setting is optional
     */
    @JvmName("unawtseniwdruvlg")
    public suspend fun gitHubOAuthScopes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.gitHubOAuthScopes = mapped
    }

    /**
     * @param value The OpenID Connect Client ID for the Google web application.
     * This setting is required for enabling Google Sign-In.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("rivkhwqdkfxhyikp")
    public suspend fun googleClientId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.googleClientId = mapped
    }

    /**
     * @param value The client secret associated with the Google web application.
     * This setting is required for enabling Google Sign-In.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("ieplbuysuvcdhrcc")
    public suspend fun googleClientSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.googleClientSecret = mapped
    }

    /**
     * @param value The app setting name that contains the client secret associated with
     * the Google web application.
     */
    @JvmName("vcsqohuhcfiiglwj")
    public suspend fun googleClientSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.googleClientSecretSettingName = mapped
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
     * This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("clxlvotrnaxkqppa")
    public suspend fun googleOAuthScopes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.googleOAuthScopes = mapped
    }

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
     * This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
     * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
     */
    @JvmName("hyxjtbrjbtdfqojl")
    public suspend fun googleOAuthScopes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.googleOAuthScopes = mapped
    }

    /**
     * @param value "true" if the auth config settings should be read from a file,
     * "false" otherwise
     */
    @JvmName("onmkgokyjnpoadeq")
    public suspend fun isAuthFromFile(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isAuthFromFile = mapped
    }

    /**
     * @param value The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
     * When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
     * This URI is a case-sensitive identifier for the token issuer.
     * More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
     */
    @JvmName("jtvhdyjasabahplu")
    public suspend fun issuer(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.issuer = mapped
    }

    /**
     * @param value Kind of resource.
     */
    @JvmName("ppfndsdnhtvwgeuf")
    public suspend fun kind(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kind = mapped
    }

    /**
     * @param value The OAuth 2.0 client ID that was created for the app used for authentication.
     * This setting is required for enabling Microsoft Account authentication.
     * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
     */
    @JvmName("lyfjqawhknfrnqvf")
    public suspend fun microsoftAccountClientId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoftAccountClientId = mapped
    }

    /**
     * @param value The OAuth 2.0 client secret that was created for the app used for authentication.
     * This setting is required for enabling Microsoft Account authentication.
     * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
     */
    @JvmName("rfdqhqqciepfwnem")
    public suspend fun microsoftAccountClientSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoftAccountClientSecret = mapped
    }

    /**
     * @param value The app setting name containing the OAuth 2.0 client secret that was created for the
     * app used for authentication.
     */
    @JvmName("vijtmmgbxotlktdq")
    public suspend fun microsoftAccountClientSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoftAccountClientSecretSettingName = mapped
    }

    /**
     * @param value The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
     * This setting is optional. If not specified, "wl.basic" is used as the default scope.
     * Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
     */
    @JvmName("pqxlybkliyyqrgfd")
    public suspend fun microsoftAccountOAuthScopes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.microsoftAccountOAuthScopes = mapped
    }

    /**
     * @param values The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
     * This setting is optional. If not specified, "wl.basic" is used as the default scope.
     * Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
     */
    @JvmName("uydjqfhepfgeoitq")
    public suspend fun microsoftAccountOAuthScopes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.microsoftAccountOAuthScopes = mapped
    }

    /**
     * @param value Name of web app.
     */
    @JvmName("aqikohkahaykeroi")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Name of the resource group to which the resource belongs.
     */
    @JvmName("qordhdfhkenyeixt")
    public suspend fun resourceGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroupName = mapped
    }

    /**
     * @param value The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
     * The setting in this value can control the behavior of certain features in the Authentication / Authorization module.
     */
    @JvmName("fahvskbxplqcuong")
    public suspend fun runtimeVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runtimeVersion = mapped
    }

    /**
     * @param value Name of web app slot. If not specified then will default to production slot.
     */
    @JvmName("icldheotkenrvhad")
    public suspend fun slot(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.slot = mapped
    }

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

    /**
     * @param value true to durably store platform-specific security tokens that are obtained during login flows; otherwise, false.
     *  The default is false.
     */
    @JvmName("hyrggisnaqfuurla")
    public suspend fun tokenStoreEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tokenStoreEnabled = mapped
    }

    /**
     * @param value The OAuth 1.0a consumer key of the Twitter application used for sign-in.
     * This setting is required for enabling Twitter Sign-In.
     * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
     */
    @JvmName("ryeblmkxunpdsrid")
    public suspend fun twitterConsumerKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.twitterConsumerKey = mapped
    }

    /**
     * @param value The OAuth 1.0a consumer secret of the Twitter application used for sign-in.
     * This setting is required for enabling Twitter Sign-In.
     * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
     */
    @JvmName("rwmbhppqnaswphpl")
    public suspend fun twitterConsumerSecret(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.twitterConsumerSecret = mapped
    }

    /**
     * @param value The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
     * application used for sign-in.
     */
    @JvmName("rcmvubjmvcieyggw")
    public suspend fun twitterConsumerSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.twitterConsumerSecretSettingName = mapped
    }

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

    /**
     * @param value Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such.
     */
    @JvmName("itkkcowpswsmsymm")
    public suspend fun validateIssuer(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.validateIssuer = mapped
    }

    internal fun build(): WebAppAuthSettingsSlotArgs = WebAppAuthSettingsSlotArgs(
        aadClaimsAuthorization = aadClaimsAuthorization,
        additionalLoginParams = additionalLoginParams,
        allowedAudiences = allowedAudiences,
        allowedExternalRedirectUrls = allowedExternalRedirectUrls,
        authFilePath = authFilePath,
        clientId = clientId,
        clientSecret = clientSecret,
        clientSecretCertificateThumbprint = clientSecretCertificateThumbprint,
        clientSecretSettingName = clientSecretSettingName,
        configVersion = configVersion,
        defaultProvider = defaultProvider,
        enabled = enabled,
        facebookAppId = facebookAppId,
        facebookAppSecret = facebookAppSecret,
        facebookAppSecretSettingName = facebookAppSecretSettingName,
        facebookOAuthScopes = facebookOAuthScopes,
        gitHubClientId = gitHubClientId,
        gitHubClientSecret = gitHubClientSecret,
        gitHubClientSecretSettingName = gitHubClientSecretSettingName,
        gitHubOAuthScopes = gitHubOAuthScopes,
        googleClientId = googleClientId,
        googleClientSecret = googleClientSecret,
        googleClientSecretSettingName = googleClientSecretSettingName,
        googleOAuthScopes = googleOAuthScopes,
        isAuthFromFile = isAuthFromFile,
        issuer = issuer,
        kind = kind,
        microsoftAccountClientId = microsoftAccountClientId,
        microsoftAccountClientSecret = microsoftAccountClientSecret,
        microsoftAccountClientSecretSettingName = microsoftAccountClientSecretSettingName,
        microsoftAccountOAuthScopes = microsoftAccountOAuthScopes,
        name = name,
        resourceGroupName = resourceGroupName,
        runtimeVersion = runtimeVersion,
        slot = slot,
        tokenRefreshExtensionHours = tokenRefreshExtensionHours,
        tokenStoreEnabled = tokenStoreEnabled,
        twitterConsumerKey = twitterConsumerKey,
        twitterConsumerSecret = twitterConsumerSecret,
        twitterConsumerSecretSettingName = twitterConsumerSecretSettingName,
        unauthenticatedClientAction = unauthenticatedClientAction,
        validateIssuer = validateIssuer,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy