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

com.pulumi.azure.appservice.kotlin.inputs.FunctionAppSlotSiteConfigArgs.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: 6.15.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

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

import com.pulumi.azure.appservice.inputs.FunctionAppSlotSiteConfigArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property alwaysOn Should the Function App be loaded at all times? Defaults to `false`.
 * @property appScaleLimit The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.
 * @property autoSwapSlotName The name of the slot to automatically swap to during deployment
 * @property cors A `cors` block as defined below.
 * @property dotnetFrameworkVersion The version of the .NET framework's CLR used in this function app. Possible values are `v4.0` (including .NET Core 2.1 and 3.1), `v5.0` and `v6.0`. [For more information on which .NET Framework version to use based on the runtime version you're targeting - please see this table](https://docs.microsoft.com/azure/azure-functions/functions-dotnet-class-library#supported-versions). Defaults to `v4.0`.
 * @property elasticInstanceMinimum The number of minimum instances for this function app. Only applicable to apps on the Premium plan.
 * @property ftpsState State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`.
 * @property healthCheckPath Path which will be checked for this function app health.
 * @property http2Enabled Specifies whether or not the HTTP2 protocol should be enabled. Defaults to `false`.
 * @property ipRestrictions A list of `ip_restriction` objects representing IP restrictions as defined below.
 * @property javaVersion Java version hosted by the function app in Azure. Possible values are `1.8`, `11` & `17` (In-Preview).
 * @property linuxFxVersion Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`.
 * @property minTlsVersion The minimum supported TLS version for the function app. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new function apps.
 * @property preWarmedInstanceCount The number of pre-warmed instances for this function app. Only affects apps on the Premium plan.
 * @property runtimeScaleMonitoringEnabled Should Runtime Scale Monitoring be enabled?. Only applicable to apps on the Premium plan. Defaults to `false`.
 * @property scmIpRestrictions A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
 * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
 * @property scmType The type of Source Control used by this function App. Valid values include: `BitBucketGit`, `BitBucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None` (default), `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`.
 * > **NOTE:** This setting is incompatible with the `source_control` block which updates this value based on the setting provided.
 * @property scmUseMainIpRestriction IP security restrictions for scm to use main. Defaults to `false`.
 * > **NOTE** Any `scm_ip_restriction` blocks configured are ignored by the service when `scm_use_main_ip_restriction` is set to `true`. Any scm restrictions will become active if this is subsequently set to `false` or removed.
 * @property use32BitWorkerProcess Should the Function App run in 32 bit mode, rather than 64 bit mode? Defaults to `true`.
 * > **Note:** when using an App Service Plan in the `Free` or `Shared` Tiers `use_32_bit_worker_process` must be set to `true`.
 * @property vnetRouteAllEnabled
 * @property websocketsEnabled Should WebSockets be enabled?
 */
public data class FunctionAppSlotSiteConfigArgs(
    public val alwaysOn: Output? = null,
    public val appScaleLimit: Output? = null,
    public val autoSwapSlotName: Output? = null,
    public val cors: Output? = null,
    public val dotnetFrameworkVersion: Output? = null,
    public val elasticInstanceMinimum: Output? = null,
    public val ftpsState: Output? = null,
    public val healthCheckPath: Output? = null,
    public val http2Enabled: Output? = null,
    public val ipRestrictions: Output>? = null,
    public val javaVersion: Output? = null,
    public val linuxFxVersion: Output? = null,
    public val minTlsVersion: Output? = null,
    public val preWarmedInstanceCount: Output? = null,
    public val runtimeScaleMonitoringEnabled: Output? = null,
    public val scmIpRestrictions: Output>? = null,
    public val scmType: Output? = null,
    public val scmUseMainIpRestriction: Output? = null,
    public val use32BitWorkerProcess: Output? = null,
    public val vnetRouteAllEnabled: Output? = null,
    public val websocketsEnabled: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.appservice.inputs.FunctionAppSlotSiteConfigArgs =
        com.pulumi.azure.appservice.inputs.FunctionAppSlotSiteConfigArgs.builder()
            .alwaysOn(alwaysOn?.applyValue({ args0 -> args0 }))
            .appScaleLimit(appScaleLimit?.applyValue({ args0 -> args0 }))
            .autoSwapSlotName(autoSwapSlotName?.applyValue({ args0 -> args0 }))
            .cors(cors?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dotnetFrameworkVersion(dotnetFrameworkVersion?.applyValue({ args0 -> args0 }))
            .elasticInstanceMinimum(elasticInstanceMinimum?.applyValue({ args0 -> args0 }))
            .ftpsState(ftpsState?.applyValue({ args0 -> args0 }))
            .healthCheckPath(healthCheckPath?.applyValue({ args0 -> args0 }))
            .http2Enabled(http2Enabled?.applyValue({ args0 -> args0 }))
            .ipRestrictions(
                ipRestrictions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .javaVersion(javaVersion?.applyValue({ args0 -> args0 }))
            .linuxFxVersion(linuxFxVersion?.applyValue({ args0 -> args0 }))
            .minTlsVersion(minTlsVersion?.applyValue({ args0 -> args0 }))
            .preWarmedInstanceCount(preWarmedInstanceCount?.applyValue({ args0 -> args0 }))
            .runtimeScaleMonitoringEnabled(runtimeScaleMonitoringEnabled?.applyValue({ args0 -> args0 }))
            .scmIpRestrictions(
                scmIpRestrictions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .scmType(scmType?.applyValue({ args0 -> args0 }))
            .scmUseMainIpRestriction(scmUseMainIpRestriction?.applyValue({ args0 -> args0 }))
            .use32BitWorkerProcess(use32BitWorkerProcess?.applyValue({ args0 -> args0 }))
            .vnetRouteAllEnabled(vnetRouteAllEnabled?.applyValue({ args0 -> args0 }))
            .websocketsEnabled(websocketsEnabled?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [FunctionAppSlotSiteConfigArgs].
 */
@PulumiTagMarker
public class FunctionAppSlotSiteConfigArgsBuilder internal constructor() {
    private var alwaysOn: Output? = null

    private var appScaleLimit: Output? = null

    private var autoSwapSlotName: Output? = null

    private var cors: Output? = null

    private var dotnetFrameworkVersion: Output? = null

    private var elasticInstanceMinimum: Output? = null

    private var ftpsState: Output? = null

    private var healthCheckPath: Output? = null

    private var http2Enabled: Output? = null

    private var ipRestrictions: Output>? = null

    private var javaVersion: Output? = null

    private var linuxFxVersion: Output? = null

    private var minTlsVersion: Output? = null

    private var preWarmedInstanceCount: Output? = null

    private var runtimeScaleMonitoringEnabled: Output? = null

    private var scmIpRestrictions: Output>? = null

    private var scmType: Output? = null

    private var scmUseMainIpRestriction: Output? = null

    private var use32BitWorkerProcess: Output? = null

    private var vnetRouteAllEnabled: Output? = null

    private var websocketsEnabled: Output? = null

    /**
     * @param value Should the Function App be loaded at all times? Defaults to `false`.
     */
    @JvmName("qrfcvgyudufywhei")
    public suspend fun alwaysOn(`value`: Output) {
        this.alwaysOn = value
    }

    /**
     * @param value The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.
     */
    @JvmName("pjwyqfsmeyetwjcd")
    public suspend fun appScaleLimit(`value`: Output) {
        this.appScaleLimit = value
    }

    /**
     * @param value The name of the slot to automatically swap to during deployment
     */
    @JvmName("fcfbihvjtycamapa")
    public suspend fun autoSwapSlotName(`value`: Output) {
        this.autoSwapSlotName = value
    }

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

    /**
     * @param value The version of the .NET framework's CLR used in this function app. Possible values are `v4.0` (including .NET Core 2.1 and 3.1), `v5.0` and `v6.0`. [For more information on which .NET Framework version to use based on the runtime version you're targeting - please see this table](https://docs.microsoft.com/azure/azure-functions/functions-dotnet-class-library#supported-versions). Defaults to `v4.0`.
     */
    @JvmName("emcgaogsnvaiuxjj")
    public suspend fun dotnetFrameworkVersion(`value`: Output) {
        this.dotnetFrameworkVersion = value
    }

    /**
     * @param value The number of minimum instances for this function app. Only applicable to apps on the Premium plan.
     */
    @JvmName("jmfriqbrqjnwinku")
    public suspend fun elasticInstanceMinimum(`value`: Output) {
        this.elasticInstanceMinimum = value
    }

    /**
     * @param value State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`.
     */
    @JvmName("dcgwajfqcqmstmfg")
    public suspend fun ftpsState(`value`: Output) {
        this.ftpsState = value
    }

    /**
     * @param value Path which will be checked for this function app health.
     */
    @JvmName("ejyjxmjptsftksik")
    public suspend fun healthCheckPath(`value`: Output) {
        this.healthCheckPath = value
    }

    /**
     * @param value Specifies whether or not the HTTP2 protocol should be enabled. Defaults to `false`.
     */
    @JvmName("pgxdsowcebccwjxd")
    public suspend fun http2Enabled(`value`: Output) {
        this.http2Enabled = value
    }

    /**
     * @param value A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("nwwothvycuoiurgj")
    public suspend fun ipRestrictions(`value`: Output>) {
        this.ipRestrictions = value
    }

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

    /**
     * @param values A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("nrcbqmyotrpeoipn")
    public suspend fun ipRestrictions(values: List>) {
        this.ipRestrictions = Output.all(values)
    }

    /**
     * @param value Java version hosted by the function app in Azure. Possible values are `1.8`, `11` & `17` (In-Preview).
     */
    @JvmName("tlcnlymdlfhdpjxn")
    public suspend fun javaVersion(`value`: Output) {
        this.javaVersion = value
    }

    /**
     * @param value Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`.
     */
    @JvmName("lhgnhqxqhynwmqvi")
    public suspend fun linuxFxVersion(`value`: Output) {
        this.linuxFxVersion = value
    }

    /**
     * @param value The minimum supported TLS version for the function app. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new function apps.
     */
    @JvmName("srxwbublowseiguv")
    public suspend fun minTlsVersion(`value`: Output) {
        this.minTlsVersion = value
    }

    /**
     * @param value The number of pre-warmed instances for this function app. Only affects apps on the Premium plan.
     */
    @JvmName("gutmeksulcvxxgxu")
    public suspend fun preWarmedInstanceCount(`value`: Output) {
        this.preWarmedInstanceCount = value
    }

    /**
     * @param value Should Runtime Scale Monitoring be enabled?. Only applicable to apps on the Premium plan. Defaults to `false`.
     */
    @JvmName("lkhprbkbgqnetxmx")
    public suspend fun runtimeScaleMonitoringEnabled(`value`: Output) {
        this.runtimeScaleMonitoringEnabled = value
    }

    /**
     * @param value A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("emwotsewaeibgnct")
    public suspend fun scmIpRestrictions(`value`: Output>) {
        this.scmIpRestrictions = value
    }

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

    /**
     * @param values A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("rlrsncdmfffmfqbj")
    public suspend fun scmIpRestrictions(values: List>) {
        this.scmIpRestrictions = Output.all(values)
    }

    /**
     * @param value The type of Source Control used by this function App. Valid values include: `BitBucketGit`, `BitBucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None` (default), `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`.
     * > **NOTE:** This setting is incompatible with the `source_control` block which updates this value based on the setting provided.
     */
    @JvmName("pctmqeqqiwyglbnx")
    public suspend fun scmType(`value`: Output) {
        this.scmType = value
    }

    /**
     * @param value IP security restrictions for scm to use main. Defaults to `false`.
     * > **NOTE** Any `scm_ip_restriction` blocks configured are ignored by the service when `scm_use_main_ip_restriction` is set to `true`. Any scm restrictions will become active if this is subsequently set to `false` or removed.
     */
    @JvmName("qyaukalojngwgsxk")
    public suspend fun scmUseMainIpRestriction(`value`: Output) {
        this.scmUseMainIpRestriction = value
    }

    /**
     * @param value Should the Function App run in 32 bit mode, rather than 64 bit mode? Defaults to `true`.
     * > **Note:** when using an App Service Plan in the `Free` or `Shared` Tiers `use_32_bit_worker_process` must be set to `true`.
     */
    @JvmName("xdyccjueqxdkaidm")
    public suspend fun use32BitWorkerProcess(`value`: Output) {
        this.use32BitWorkerProcess = value
    }

    /**
     * @param value
     */
    @JvmName("ifpmfmsuopmnjpdy")
    public suspend fun vnetRouteAllEnabled(`value`: Output) {
        this.vnetRouteAllEnabled = value
    }

    /**
     * @param value Should WebSockets be enabled?
     */
    @JvmName("ixqxgrrxqryibtub")
    public suspend fun websocketsEnabled(`value`: Output) {
        this.websocketsEnabled = value
    }

    /**
     * @param value Should the Function App be loaded at all times? Defaults to `false`.
     */
    @JvmName("sbrwqcgddrboaugp")
    public suspend fun alwaysOn(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.alwaysOn = mapped
    }

    /**
     * @param value The number of workers this function app can scale out to. Only applicable to apps on the Consumption and Premium plan.
     */
    @JvmName("kotkpeyooapuaoqd")
    public suspend fun appScaleLimit(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appScaleLimit = mapped
    }

    /**
     * @param value The name of the slot to automatically swap to during deployment
     */
    @JvmName("grtvwiuoxlwycdvy")
    public suspend fun autoSwapSlotName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoSwapSlotName = mapped
    }

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

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

    /**
     * @param value The version of the .NET framework's CLR used in this function app. Possible values are `v4.0` (including .NET Core 2.1 and 3.1), `v5.0` and `v6.0`. [For more information on which .NET Framework version to use based on the runtime version you're targeting - please see this table](https://docs.microsoft.com/azure/azure-functions/functions-dotnet-class-library#supported-versions). Defaults to `v4.0`.
     */
    @JvmName("qsedhnetmoxmrcqr")
    public suspend fun dotnetFrameworkVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dotnetFrameworkVersion = mapped
    }

    /**
     * @param value The number of minimum instances for this function app. Only applicable to apps on the Premium plan.
     */
    @JvmName("dpjcignptufbwylp")
    public suspend fun elasticInstanceMinimum(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.elasticInstanceMinimum = mapped
    }

    /**
     * @param value State of FTP / FTPS service for this function app. Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`.
     */
    @JvmName("cyaqwilsgjboowws")
    public suspend fun ftpsState(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ftpsState = mapped
    }

    /**
     * @param value Path which will be checked for this function app health.
     */
    @JvmName("tidsexxwioyxtdec")
    public suspend fun healthCheckPath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.healthCheckPath = mapped
    }

    /**
     * @param value Specifies whether or not the HTTP2 protocol should be enabled. Defaults to `false`.
     */
    @JvmName("qqeayjmtrbamgsdn")
    public suspend fun http2Enabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.http2Enabled = mapped
    }

    /**
     * @param value A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("ggwvpwqvvwtkvqxc")
    public suspend fun ipRestrictions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipRestrictions = mapped
    }

    /**
     * @param argument A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("rcbtgxhwbwjcybto")
    public suspend fun ipRestrictions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FunctionAppSlotSiteConfigIpRestrictionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.ipRestrictions = mapped
    }

    /**
     * @param argument A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("egxchyjtcxrqevjn")
    public suspend fun ipRestrictions(vararg argument: suspend FunctionAppSlotSiteConfigIpRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FunctionAppSlotSiteConfigIpRestrictionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.ipRestrictions = mapped
    }

    /**
     * @param argument A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("hxlaeblkhksueofc")
    public suspend fun ipRestrictions(argument: suspend FunctionAppSlotSiteConfigIpRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FunctionAppSlotSiteConfigIpRestrictionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.ipRestrictions = mapped
    }

    /**
     * @param values A list of `ip_restriction` objects representing IP restrictions as defined below.
     */
    @JvmName("rloisngnhomujeim")
    public suspend fun ipRestrictions(vararg values: FunctionAppSlotSiteConfigIpRestrictionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipRestrictions = mapped
    }

    /**
     * @param value Java version hosted by the function app in Azure. Possible values are `1.8`, `11` & `17` (In-Preview).
     */
    @JvmName("gjktdognhihdfvdr")
    public suspend fun javaVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.javaVersion = mapped
    }

    /**
     * @param value Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`.
     */
    @JvmName("gnnlfinyyyaahvir")
    public suspend fun linuxFxVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.linuxFxVersion = mapped
    }

    /**
     * @param value The minimum supported TLS version for the function app. Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new function apps.
     */
    @JvmName("egrxsfetxchtharv")
    public suspend fun minTlsVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minTlsVersion = mapped
    }

    /**
     * @param value The number of pre-warmed instances for this function app. Only affects apps on the Premium plan.
     */
    @JvmName("iwalnudngkomdcla")
    public suspend fun preWarmedInstanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preWarmedInstanceCount = mapped
    }

    /**
     * @param value Should Runtime Scale Monitoring be enabled?. Only applicable to apps on the Premium plan. Defaults to `false`.
     */
    @JvmName("uiibkinbhqpfhrmy")
    public suspend fun runtimeScaleMonitoringEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.runtimeScaleMonitoringEnabled = mapped
    }

    /**
     * @param value A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("fedydwcvugpppplo")
    public suspend fun scmIpRestrictions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmIpRestrictions = mapped
    }

    /**
     * @param argument A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("mcicrdtmnovevdqt")
    public suspend fun scmIpRestrictions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FunctionAppSlotSiteConfigScmIpRestrictionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.scmIpRestrictions = mapped
    }

    /**
     * @param argument A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("spgqvjiesvhgormj")
    public suspend fun scmIpRestrictions(vararg argument: suspend FunctionAppSlotSiteConfigScmIpRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FunctionAppSlotSiteConfigScmIpRestrictionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.scmIpRestrictions = mapped
    }

    /**
     * @param argument A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("djorvqitdhbxfeyf")
    public suspend fun scmIpRestrictions(argument: suspend FunctionAppSlotSiteConfigScmIpRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FunctionAppSlotSiteConfigScmIpRestrictionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.scmIpRestrictions = mapped
    }

    /**
     * @param values A list of `scm_ip_restriction` objects representing IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("jornbfhvycktovod")
    public suspend fun scmIpRestrictions(vararg values: FunctionAppSlotSiteConfigScmIpRestrictionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmIpRestrictions = mapped
    }

    /**
     * @param value The type of Source Control used by this function App. Valid values include: `BitBucketGit`, `BitBucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None` (default), `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`.
     * > **NOTE:** This setting is incompatible with the `source_control` block which updates this value based on the setting provided.
     */
    @JvmName("ietrioavmsxervnd")
    public suspend fun scmType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmType = mapped
    }

    /**
     * @param value IP security restrictions for scm to use main. Defaults to `false`.
     * > **NOTE** Any `scm_ip_restriction` blocks configured are ignored by the service when `scm_use_main_ip_restriction` is set to `true`. Any scm restrictions will become active if this is subsequently set to `false` or removed.
     */
    @JvmName("wontvptuhfocroaj")
    public suspend fun scmUseMainIpRestriction(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmUseMainIpRestriction = mapped
    }

    /**
     * @param value Should the Function App run in 32 bit mode, rather than 64 bit mode? Defaults to `true`.
     * > **Note:** when using an App Service Plan in the `Free` or `Shared` Tiers `use_32_bit_worker_process` must be set to `true`.
     */
    @JvmName("jugfvgigowafyhci")
    public suspend fun use32BitWorkerProcess(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.use32BitWorkerProcess = mapped
    }

    /**
     * @param value
     */
    @JvmName("gpyablcesyulmbww")
    public suspend fun vnetRouteAllEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vnetRouteAllEnabled = mapped
    }

    /**
     * @param value Should WebSockets be enabled?
     */
    @JvmName("bdnnvnkduhebbbrr")
    public suspend fun websocketsEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.websocketsEnabled = mapped
    }

    internal fun build(): FunctionAppSlotSiteConfigArgs = FunctionAppSlotSiteConfigArgs(
        alwaysOn = alwaysOn,
        appScaleLimit = appScaleLimit,
        autoSwapSlotName = autoSwapSlotName,
        cors = cors,
        dotnetFrameworkVersion = dotnetFrameworkVersion,
        elasticInstanceMinimum = elasticInstanceMinimum,
        ftpsState = ftpsState,
        healthCheckPath = healthCheckPath,
        http2Enabled = http2Enabled,
        ipRestrictions = ipRestrictions,
        javaVersion = javaVersion,
        linuxFxVersion = linuxFxVersion,
        minTlsVersion = minTlsVersion,
        preWarmedInstanceCount = preWarmedInstanceCount,
        runtimeScaleMonitoringEnabled = runtimeScaleMonitoringEnabled,
        scmIpRestrictions = scmIpRestrictions,
        scmType = scmType,
        scmUseMainIpRestriction = scmUseMainIpRestriction,
        use32BitWorkerProcess = use32BitWorkerProcess,
        vnetRouteAllEnabled = vnetRouteAllEnabled,
        websocketsEnabled = websocketsEnabled,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy