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

com.pulumi.azure.logicapps.kotlin.inputs.StandardSiteConfigArgs.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.logicapps.kotlin.inputs

import com.pulumi.azure.logicapps.inputs.StandardSiteConfigArgs.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 Logic App be loaded at all times? Defaults to `false`.
 * @property appScaleLimit The number of workers this Logic App can scale out to. Only applicable to apps on the Consumption and Premium plan.
 * @property autoSwapSlotName The Auto-swap slot name.
 * @property cors A `cors` block as defined below.
 * @property dotnetFrameworkVersion The version of the .NET framework's CLR used in this Logic 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 Logic App Only affects apps on the Premium plan.
 * @property ftpsState State of FTP / FTPS service for this Logic App Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `AllAllowed`.
 * @property healthCheckPath Path which will be checked for this Logic 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.
 * > **NOTE** User has to explicitly set `ip_restriction` to empty slice (`[]`) to remove it.
 * @property linuxFxVersion Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`. Setting this value will also set the `kind` of application deployed to `functionapp,linux,container,workflowapp`
 * @property minTlsVersion The minimum supported TLS version for the Logic App Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new Logic Apps.
 * @property preWarmedInstanceCount The number of pre-warmed instances for this Logic App Only affects apps on the Premium plan.
 * @property publicNetworkAccessEnabled Is public network access enabled? Defaults to `true`.
 * @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 SCM IP restrictions as defined below.
 * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
 * @property scmMinTlsVersion Configures the minimum version of TLS required for SSL requests to the SCM site. Possible values are `1.0`, `1.1` and `1.2`.
 * @property scmType The type of Source Control used by the Logic App in use by the Windows Function App. Defaults to `None`. Possible values are: `BitbucketGit`, `BitbucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None`, `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`
 * @property scmUseMainIpRestriction Should the Logic App `ip_restriction` configuration be used for the SCM too. Defaults to `false`.
 * @property use32BitWorkerProcess Should the Logic 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 Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.
 * @property websocketsEnabled Should WebSockets be enabled?
 */
public data class StandardSiteConfigArgs(
    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 linuxFxVersion: Output? = null,
    public val minTlsVersion: Output? = null,
    public val preWarmedInstanceCount: Output? = null,
    public val publicNetworkAccessEnabled: Output? = null,
    public val runtimeScaleMonitoringEnabled: Output? = null,
    public val scmIpRestrictions: Output>? = null,
    public val scmMinTlsVersion: 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.logicapps.inputs.StandardSiteConfigArgs =
        com.pulumi.azure.logicapps.inputs.StandardSiteConfigArgs.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()
                        })
                    })
                }),
            )
            .linuxFxVersion(linuxFxVersion?.applyValue({ args0 -> args0 }))
            .minTlsVersion(minTlsVersion?.applyValue({ args0 -> args0 }))
            .preWarmedInstanceCount(preWarmedInstanceCount?.applyValue({ args0 -> args0 }))
            .publicNetworkAccessEnabled(publicNetworkAccessEnabled?.applyValue({ args0 -> args0 }))
            .runtimeScaleMonitoringEnabled(runtimeScaleMonitoringEnabled?.applyValue({ args0 -> args0 }))
            .scmIpRestrictions(
                scmIpRestrictions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .scmMinTlsVersion(scmMinTlsVersion?.applyValue({ args0 -> args0 }))
            .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 [StandardSiteConfigArgs].
 */
@PulumiTagMarker
public class StandardSiteConfigArgsBuilder 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 linuxFxVersion: Output? = null

    private var minTlsVersion: Output? = null

    private var preWarmedInstanceCount: Output? = null

    private var publicNetworkAccessEnabled: Output? = null

    private var runtimeScaleMonitoringEnabled: Output? = null

    private var scmIpRestrictions: Output>? = null

    private var scmMinTlsVersion: 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 Logic App be loaded at all times? Defaults to `false`.
     */
    @JvmName("nijkppfukeeqngaw")
    public suspend fun alwaysOn(`value`: Output) {
        this.alwaysOn = value
    }

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

    /**
     * @param value The Auto-swap slot name.
     */
    @JvmName("aebywmkmrlqlmlxt")
    public suspend fun autoSwapSlotName(`value`: Output) {
        this.autoSwapSlotName = value
    }

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

    /**
     * @param value The version of the .NET framework's CLR used in this Logic 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("quemblldsuxxqhoi")
    public suspend fun dotnetFrameworkVersion(`value`: Output) {
        this.dotnetFrameworkVersion = value
    }

    /**
     * @param value The number of minimum instances for this Logic App Only affects apps on the Premium plan.
     */
    @JvmName("qnroebsfrbdvwvyc")
    public suspend fun elasticInstanceMinimum(`value`: Output) {
        this.elasticInstanceMinimum = value
    }

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

    /**
     * @param value Path which will be checked for this Logic App health.
     */
    @JvmName("tmmoufmngqqnyxfh")
    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("pgqvvjqxsqwhjmfi")
    public suspend fun http2Enabled(`value`: Output) {
        this.http2Enabled = value
    }

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

    @JvmName("mejpovotscjacfnc")
    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.
     * > **NOTE** User has to explicitly set `ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("bkwypmkjmcsxidkn")
    public suspend fun ipRestrictions(values: List>) {
        this.ipRestrictions = Output.all(values)
    }

    /**
     * @param value Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`. Setting this value will also set the `kind` of application deployed to `functionapp,linux,container,workflowapp`
     */
    @JvmName("yijbvwfbpnxkpxii")
    public suspend fun linuxFxVersion(`value`: Output) {
        this.linuxFxVersion = value
    }

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

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

    /**
     * @param value Is public network access enabled? Defaults to `true`.
     */
    @JvmName("tpbvmvpydidrqaqo")
    public suspend fun publicNetworkAccessEnabled(`value`: Output) {
        this.publicNetworkAccessEnabled = value
    }

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

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

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

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

    /**
     * @param value Configures the minimum version of TLS required for SSL requests to the SCM site. Possible values are `1.0`, `1.1` and `1.2`.
     */
    @JvmName("yxxblwyttwtvjicy")
    public suspend fun scmMinTlsVersion(`value`: Output) {
        this.scmMinTlsVersion = value
    }

    /**
     * @param value The type of Source Control used by the Logic App in use by the Windows Function App. Defaults to `None`. Possible values are: `BitbucketGit`, `BitbucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None`, `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`
     */
    @JvmName("achuubeihfntajgh")
    public suspend fun scmType(`value`: Output) {
        this.scmType = value
    }

    /**
     * @param value Should the Logic App `ip_restriction` configuration be used for the SCM too. Defaults to `false`.
     */
    @JvmName("sctebhokcegufkxy")
    public suspend fun scmUseMainIpRestriction(`value`: Output) {
        this.scmUseMainIpRestriction = value
    }

    /**
     * @param value Should the Logic 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("wfljlrsbxtwgdddl")
    public suspend fun use32BitWorkerProcess(`value`: Output) {
        this.use32BitWorkerProcess = value
    }

    /**
     * @param value Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.
     */
    @JvmName("nowwvcxqxjnreuek")
    public suspend fun vnetRouteAllEnabled(`value`: Output) {
        this.vnetRouteAllEnabled = value
    }

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

    /**
     * @param value Should the Logic App be loaded at all times? Defaults to `false`.
     */
    @JvmName("pkwxcjughjlswucd")
    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 Logic App can scale out to. Only applicable to apps on the Consumption and Premium plan.
     */
    @JvmName("chhyrdgrvtrcfqkf")
    public suspend fun appScaleLimit(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appScaleLimit = mapped
    }

    /**
     * @param value The Auto-swap slot name.
     */
    @JvmName("ontbvybxnxxsmacp")
    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("uxfceaegibxpldnk")
    public suspend fun cors(`value`: StandardSiteConfigCorsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cors = mapped
    }

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

    /**
     * @param value The version of the .NET framework's CLR used in this Logic 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("ojccsidekjufxtob")
    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 Logic App Only affects apps on the Premium plan.
     */
    @JvmName("lrjkensuoebfsukf")
    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 Logic App Possible values include: `AllAllowed`, `FtpsOnly` and `Disabled`. Defaults to `AllAllowed`.
     */
    @JvmName("wauoxeftgevaafmc")
    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 Logic App health.
     */
    @JvmName("xtnnqdnyttnxsvhh")
    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("lwyqmwuqboadphem")
    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.
     * > **NOTE** User has to explicitly set `ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("xfqvistfgeaemhyh")
    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.
     * > **NOTE** User has to explicitly set `ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("kxbajixkvmjjhysi")
    public suspend fun ipRestrictions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            StandardSiteConfigIpRestrictionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.ipRestrictions = mapped
    }

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

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

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

    /**
     * @param value Linux App Framework and version for the AppService, e.g. `DOCKER|(golang:latest)`. Setting this value will also set the `kind` of application deployed to `functionapp,linux,container,workflowapp`
     */
    @JvmName("iomxkgqqtmoqwoxm")
    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 Logic App Possible values are `1.0`, `1.1`, and `1.2`. Defaults to `1.2` for new Logic Apps.
     */
    @JvmName("gwucnymvnioowhxn")
    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 Logic App Only affects apps on the Premium plan.
     */
    @JvmName("vudbphcyesxeoxia")
    public suspend fun preWarmedInstanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preWarmedInstanceCount = mapped
    }

    /**
     * @param value Is public network access enabled? Defaults to `true`.
     */
    @JvmName("mteynauvtqnagcms")
    public suspend fun publicNetworkAccessEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicNetworkAccessEnabled = mapped
    }

    /**
     * @param value Should Runtime Scale Monitoring be enabled?. Only applicable to apps on the Premium plan. Defaults to `false`.
     */
    @JvmName("oomicyfrvchhettr")
    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 SCM IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("iiybnjerdfhwwxuu")
    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 SCM IP restrictions as defined below.
     * > **NOTE** User has to explicitly set `scm_ip_restriction` to empty slice (`[]`) to remove it.
     */
    @JvmName("ryctwsjqfydljyyr")
    public suspend fun scmIpRestrictions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            StandardSiteConfigScmIpRestrictionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.scmIpRestrictions = mapped
    }

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

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

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

    /**
     * @param value Configures the minimum version of TLS required for SSL requests to the SCM site. Possible values are `1.0`, `1.1` and `1.2`.
     */
    @JvmName("bblvmajqsdxyibct")
    public suspend fun scmMinTlsVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmMinTlsVersion = mapped
    }

    /**
     * @param value The type of Source Control used by the Logic App in use by the Windows Function App. Defaults to `None`. Possible values are: `BitbucketGit`, `BitbucketHg`, `CodePlexGit`, `CodePlexHg`, `Dropbox`, `ExternalGit`, `ExternalHg`, `GitHub`, `LocalGit`, `None`, `OneDrive`, `Tfs`, `VSO`, and `VSTSRM`
     */
    @JvmName("ffiuptiktuklwlcg")
    public suspend fun scmType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmType = mapped
    }

    /**
     * @param value Should the Logic App `ip_restriction` configuration be used for the SCM too. Defaults to `false`.
     */
    @JvmName("ufymmyjpohnpwjxa")
    public suspend fun scmUseMainIpRestriction(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmUseMainIpRestriction = mapped
    }

    /**
     * @param value Should the Logic 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("mxblkgacchwqihlh")
    public suspend fun use32BitWorkerProcess(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.use32BitWorkerProcess = mapped
    }

    /**
     * @param value Should all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.
     */
    @JvmName("iaapnvuexgjbhsyj")
    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("tagaiyhhpbqunxth")
    public suspend fun websocketsEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.websocketsEnabled = mapped
    }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy