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

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

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

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

import com.pulumi.azure.appservice.inputs.WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args.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 kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property allowedApplications The list of allowed Applications for the Default Authorisation Policy.
 * @property allowedAudiences Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.
 * > **NOTE:** This is configured on the Authentication Provider side and is Read Only here.
 * @property allowedGroups The list of allowed Group Names for the Default Authorisation Policy.
 * @property allowedIdentities The list of allowed Identities for the Default Authorisation Policy.
 * @property clientId The ID of the Client to use to authenticate with Azure Active Directory.
 * @property clientSecretCertificateThumbprint The thumbprint of the certificate used for signing purposes.
 * @property clientSecretSettingName The App Setting name that contains the client secret of the Client.
 * !> **NOTE:** A setting with this name must exist in `app_settings` to function correctly.
 * @property jwtAllowedClientApplications A list of Allowed Client Applications in the JWT Claim.
 * @property jwtAllowedGroups A list of Allowed Groups in the JWT Claim.
 * @property loginParameters A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.
 * @property tenantAuthEndpoint The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/{tenant-guid}/v2.0/`
 * > **NOTE:** [Here](https://learn.microsoft.com/en-us/entra/identity-platform/authentication-national-cloud#microsoft-entra-authentication-endpoints) is a list of possible authentication endpoints based on the cloud environment. [Here](https://learn.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad?tabs=workforce-tenant) is more information to better understand how to configure authentication for Azure App Service or Azure Functions.
 * @property wwwAuthenticationDisabled Should the www-authenticate provider should be omitted from the request? Defaults to `false`.
 */
public data class WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args(
    public val allowedApplications: Output>? = null,
    public val allowedAudiences: Output>? = null,
    public val allowedGroups: Output>? = null,
    public val allowedIdentities: Output>? = null,
    public val clientId: Output,
    public val clientSecretCertificateThumbprint: Output? = null,
    public val clientSecretSettingName: Output? = null,
    public val jwtAllowedClientApplications: Output>? = null,
    public val jwtAllowedGroups: Output>? = null,
    public val loginParameters: Output>? = null,
    public val tenantAuthEndpoint: Output,
    public val wwwAuthenticationDisabled: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.appservice.inputs.WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args =
        com.pulumi.azure.appservice.inputs.WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args.builder()
            .allowedApplications(allowedApplications?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowedAudiences(allowedAudiences?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowedGroups(allowedGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .allowedIdentities(allowedIdentities?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .clientId(clientId.applyValue({ args0 -> args0 }))
            .clientSecretCertificateThumbprint(
                clientSecretCertificateThumbprint?.applyValue({ args0 ->
                    args0
                }),
            )
            .clientSecretSettingName(clientSecretSettingName?.applyValue({ args0 -> args0 }))
            .jwtAllowedClientApplications(
                jwtAllowedClientApplications?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .jwtAllowedGroups(jwtAllowedGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .loginParameters(
                loginParameters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .tenantAuthEndpoint(tenantAuthEndpoint.applyValue({ args0 -> args0 }))
            .wwwAuthenticationDisabled(wwwAuthenticationDisabled?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args].
 */
@PulumiTagMarker
public class WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2ArgsBuilder internal constructor() {
    private var allowedApplications: Output>? = null

    private var allowedAudiences: Output>? = null

    private var allowedGroups: Output>? = null

    private var allowedIdentities: Output>? = null

    private var clientId: Output? = null

    private var clientSecretCertificateThumbprint: Output? = null

    private var clientSecretSettingName: Output? = null

    private var jwtAllowedClientApplications: Output>? = null

    private var jwtAllowedGroups: Output>? = null

    private var loginParameters: Output>? = null

    private var tenantAuthEndpoint: Output? = null

    private var wwwAuthenticationDisabled: Output? = null

    /**
     * @param value The list of allowed Applications for the Default Authorisation Policy.
     */
    @JvmName("axctpmgnfnukhujv")
    public suspend fun allowedApplications(`value`: Output>) {
        this.allowedApplications = value
    }

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

    /**
     * @param values The list of allowed Applications for the Default Authorisation Policy.
     */
    @JvmName("kabuadyrnvfdfjnf")
    public suspend fun allowedApplications(values: List>) {
        this.allowedApplications = Output.all(values)
    }

    /**
     * @param value Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.
     * > **NOTE:** This is configured on the Authentication Provider side and is Read Only here.
     */
    @JvmName("smhwbjsrwahyarpy")
    public suspend fun allowedAudiences(`value`: Output>) {
        this.allowedAudiences = value
    }

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

    /**
     * @param values Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.
     * > **NOTE:** This is configured on the Authentication Provider side and is Read Only here.
     */
    @JvmName("fxiwsieotgnktbhv")
    public suspend fun allowedAudiences(values: List>) {
        this.allowedAudiences = Output.all(values)
    }

    /**
     * @param value The list of allowed Group Names for the Default Authorisation Policy.
     */
    @JvmName("ujaebgwutkedqgpq")
    public suspend fun allowedGroups(`value`: Output>) {
        this.allowedGroups = value
    }

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

    /**
     * @param values The list of allowed Group Names for the Default Authorisation Policy.
     */
    @JvmName("tldeftasxatwyyey")
    public suspend fun allowedGroups(values: List>) {
        this.allowedGroups = Output.all(values)
    }

    /**
     * @param value The list of allowed Identities for the Default Authorisation Policy.
     */
    @JvmName("lpfowjmmhlokyava")
    public suspend fun allowedIdentities(`value`: Output>) {
        this.allowedIdentities = value
    }

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

    /**
     * @param values The list of allowed Identities for the Default Authorisation Policy.
     */
    @JvmName("aynvfaqlikhujabr")
    public suspend fun allowedIdentities(values: List>) {
        this.allowedIdentities = Output.all(values)
    }

    /**
     * @param value The ID of the Client to use to authenticate with Azure Active Directory.
     */
    @JvmName("trtfkfhnxdgoqiem")
    public suspend fun clientId(`value`: Output) {
        this.clientId = value
    }

    /**
     * @param value The thumbprint of the certificate used for signing purposes.
     */
    @JvmName("eeaefueetxqbieoe")
    public suspend fun clientSecretCertificateThumbprint(`value`: Output) {
        this.clientSecretCertificateThumbprint = value
    }

    /**
     * @param value The App Setting name that contains the client secret of the Client.
     * !> **NOTE:** A setting with this name must exist in `app_settings` to function correctly.
     */
    @JvmName("iwighapivwpetuvq")
    public suspend fun clientSecretSettingName(`value`: Output) {
        this.clientSecretSettingName = value
    }

    /**
     * @param value A list of Allowed Client Applications in the JWT Claim.
     */
    @JvmName("iyeljkdwpuwuvgsm")
    public suspend fun jwtAllowedClientApplications(`value`: Output>) {
        this.jwtAllowedClientApplications = value
    }

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

    /**
     * @param values A list of Allowed Client Applications in the JWT Claim.
     */
    @JvmName("mesebciavbnlwion")
    public suspend fun jwtAllowedClientApplications(values: List>) {
        this.jwtAllowedClientApplications = Output.all(values)
    }

    /**
     * @param value A list of Allowed Groups in the JWT Claim.
     */
    @JvmName("hhacksevruqgecrt")
    public suspend fun jwtAllowedGroups(`value`: Output>) {
        this.jwtAllowedGroups = value
    }

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

    /**
     * @param values A list of Allowed Groups in the JWT Claim.
     */
    @JvmName("uhtdprmxnflqohps")
    public suspend fun jwtAllowedGroups(values: List>) {
        this.jwtAllowedGroups = Output.all(values)
    }

    /**
     * @param value A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.
     */
    @JvmName("dyrfopreopbnqvsl")
    public suspend fun loginParameters(`value`: Output>) {
        this.loginParameters = value
    }

    /**
     * @param value The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/{tenant-guid}/v2.0/`
     * > **NOTE:** [Here](https://learn.microsoft.com/en-us/entra/identity-platform/authentication-national-cloud#microsoft-entra-authentication-endpoints) is a list of possible authentication endpoints based on the cloud environment. [Here](https://learn.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad?tabs=workforce-tenant) is more information to better understand how to configure authentication for Azure App Service or Azure Functions.
     */
    @JvmName("ixvhrtdvgsvjdkgj")
    public suspend fun tenantAuthEndpoint(`value`: Output) {
        this.tenantAuthEndpoint = value
    }

    /**
     * @param value Should the www-authenticate provider should be omitted from the request? Defaults to `false`.
     */
    @JvmName("ptcpwhwakvyyxtbj")
    public suspend fun wwwAuthenticationDisabled(`value`: Output) {
        this.wwwAuthenticationDisabled = value
    }

    /**
     * @param value The list of allowed Applications for the Default Authorisation Policy.
     */
    @JvmName("cnitvbmmobubjvyf")
    public suspend fun allowedApplications(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedApplications = mapped
    }

    /**
     * @param values The list of allowed Applications for the Default Authorisation Policy.
     */
    @JvmName("ncjssfhlbokcsubn")
    public suspend fun allowedApplications(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedApplications = mapped
    }

    /**
     * @param value Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.
     * > **NOTE:** This is configured on the Authentication Provider side and is Read Only here.
     */
    @JvmName("njgotjbmxtqutcqu")
    public suspend fun allowedAudiences(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedAudiences = mapped
    }

    /**
     * @param values Specifies a list of Allowed audience values to consider when validating JWTs issued by Azure Active Directory.
     * > **NOTE:** This is configured on the Authentication Provider side and is Read Only here.
     */
    @JvmName("iwspukwylsjslqyh")
    public suspend fun allowedAudiences(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedAudiences = mapped
    }

    /**
     * @param value The list of allowed Group Names for the Default Authorisation Policy.
     */
    @JvmName("lylfrkmnowrvfklo")
    public suspend fun allowedGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedGroups = mapped
    }

    /**
     * @param values The list of allowed Group Names for the Default Authorisation Policy.
     */
    @JvmName("lmoixytutujvvpqx")
    public suspend fun allowedGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedGroups = mapped
    }

    /**
     * @param value The list of allowed Identities for the Default Authorisation Policy.
     */
    @JvmName("vdjvtdbuxvgrupyj")
    public suspend fun allowedIdentities(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedIdentities = mapped
    }

    /**
     * @param values The list of allowed Identities for the Default Authorisation Policy.
     */
    @JvmName("ikkoikxoynkdkbsr")
    public suspend fun allowedIdentities(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedIdentities = mapped
    }

    /**
     * @param value The ID of the Client to use to authenticate with Azure Active Directory.
     */
    @JvmName("mqebemwsbpxgojts")
    public suspend fun clientId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.clientId = mapped
    }

    /**
     * @param value The thumbprint of the certificate used for signing purposes.
     */
    @JvmName("urslqqvnirmidell")
    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 Client.
     * !> **NOTE:** A setting with this name must exist in `app_settings` to function correctly.
     */
    @JvmName("pcsvyglibgimlpxe")
    public suspend fun clientSecretSettingName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientSecretSettingName = mapped
    }

    /**
     * @param value A list of Allowed Client Applications in the JWT Claim.
     */
    @JvmName("etwikvuwwmvsnwgk")
    public suspend fun jwtAllowedClientApplications(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jwtAllowedClientApplications = mapped
    }

    /**
     * @param values A list of Allowed Client Applications in the JWT Claim.
     */
    @JvmName("elbkucfaatduyxyp")
    public suspend fun jwtAllowedClientApplications(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jwtAllowedClientApplications = mapped
    }

    /**
     * @param value A list of Allowed Groups in the JWT Claim.
     */
    @JvmName("dxmrjknpttrclecm")
    public suspend fun jwtAllowedGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jwtAllowedGroups = mapped
    }

    /**
     * @param values A list of Allowed Groups in the JWT Claim.
     */
    @JvmName("blxikaqkhqevnwwg")
    public suspend fun jwtAllowedGroups(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jwtAllowedGroups = mapped
    }

    /**
     * @param value A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.
     */
    @JvmName("dvictpxxbhibvsle")
    public suspend fun loginParameters(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loginParameters = mapped
    }

    /**
     * @param values A map of key-value pairs to send to the Authorisation Endpoint when a user logs in.
     */
    @JvmName("cnchwrrbrkiovalx")
    public fun loginParameters(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.loginParameters = mapped
    }

    /**
     * @param value The Azure Tenant Endpoint for the Authenticating Tenant. e.g. `https://login.microsoftonline.com/{tenant-guid}/v2.0/`
     * > **NOTE:** [Here](https://learn.microsoft.com/en-us/entra/identity-platform/authentication-national-cloud#microsoft-entra-authentication-endpoints) is a list of possible authentication endpoints based on the cloud environment. [Here](https://learn.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad?tabs=workforce-tenant) is more information to better understand how to configure authentication for Azure App Service or Azure Functions.
     */
    @JvmName("rgvnlortrpamoiua")
    public suspend fun tenantAuthEndpoint(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tenantAuthEndpoint = mapped
    }

    /**
     * @param value Should the www-authenticate provider should be omitted from the request? Defaults to `false`.
     */
    @JvmName("ffjuxhxdgburvxpk")
    public suspend fun wwwAuthenticationDisabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.wwwAuthenticationDisabled = mapped
    }

    internal fun build(): WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args =
        WindowsWebAppSlotAuthSettingsV2ActiveDirectoryV2Args(
            allowedApplications = allowedApplications,
            allowedAudiences = allowedAudiences,
            allowedGroups = allowedGroups,
            allowedIdentities = allowedIdentities,
            clientId = clientId ?: throw PulumiNullFieldException("clientId"),
            clientSecretCertificateThumbprint = clientSecretCertificateThumbprint,
            clientSecretSettingName = clientSecretSettingName,
            jwtAllowedClientApplications = jwtAllowedClientApplications,
            jwtAllowedGroups = jwtAllowedGroups,
            loginParameters = loginParameters,
            tenantAuthEndpoint = tenantAuthEndpoint ?: throw PulumiNullFieldException("tenantAuthEndpoint"),
            wwwAuthenticationDisabled = wwwAuthenticationDisabled,
        )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy