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

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

import com.pulumi.azurenative.web.inputs.SiteConfigArgs.builder
import com.pulumi.azurenative.web.kotlin.enums.DefaultAction
import com.pulumi.azurenative.web.kotlin.enums.FtpsState
import com.pulumi.azurenative.web.kotlin.enums.ManagedPipelineMode
import com.pulumi.azurenative.web.kotlin.enums.ScmType
import com.pulumi.azurenative.web.kotlin.enums.SiteLoadBalancing
import com.pulumi.azurenative.web.kotlin.enums.SupportedTlsVersions
import com.pulumi.core.Either
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Configuration of an App Service app.
 * @property acrUseManagedIdentityCreds Flag to use Managed Identity Creds for ACR pull
 * @property acrUserManagedIdentityID If using user managed identity, the user managed identity ClientId
 * @property alwaysOn true if Always On is enabled; otherwise, false.
 * @property apiDefinition Information about the formal API definition for the app.
 * @property apiManagementConfig Azure API management settings linked to the app.
 * @property appCommandLine App command line to launch.
 * @property appSettings Application settings.
 * @property autoHealEnabled true if Auto Heal is enabled; otherwise, false.
 * @property autoHealRules Auto Heal rules.
 * @property autoSwapSlotName Auto-swap slot name.
 * @property azureStorageAccounts List of Azure Storage Accounts.
 * @property connectionStrings Connection strings.
 * @property cors Cross-Origin Resource Sharing (CORS) settings.
 * @property defaultDocuments Default documents.
 * @property detailedErrorLoggingEnabled true if detailed error logging is enabled; otherwise, false.
 * @property documentRoot Document root.
 * @property elasticWebAppScaleLimit Maximum number of workers that a site can scale out to.
 * This setting only applies to apps in plans where ElasticScaleEnabled is true
 * @property experiments This is work around for polymorphic types.
 * @property ftpsState State of FTP / FTPS service
 * @property functionAppScaleLimit Maximum number of workers that a site can scale out to.
 * This setting only applies to the Consumption and Elastic Premium Plans
 * @property functionsRuntimeScaleMonitoringEnabled Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,
 * the ScaleController will not monitor event sources directly, but will instead call to the
 * runtime to get scale status.
 * @property handlerMappings Handler mappings.
 * @property healthCheckPath Health check path
 * @property http20Enabled Http20Enabled: configures a web site to allow clients to connect over http2.0
 * @property httpLoggingEnabled true if HTTP logging is enabled; otherwise, false.
 * @property ipSecurityRestrictions IP security restrictions for main.
 * @property ipSecurityRestrictionsDefaultAction Default action for main access restriction if no rules are matched.
 * @property javaContainer Java container.
 * @property javaContainerVersion Java container version.
 * @property javaVersion Java version.
 * @property keyVaultReferenceIdentity Identity to use for Key Vault Reference authentication.
 * @property limits Site limits.
 * @property linuxFxVersion Linux App Framework and version
 * @property loadBalancing Site load balancing.
 * @property localMySqlEnabled true to enable local MySQL; otherwise, false.
 * @property logsDirectorySizeLimit HTTP logs directory size limit.
 * @property managedPipelineMode Managed pipeline mode.
 * @property managedServiceIdentityId Managed Service Identity Id
 * @property metadata Application metadata. This property cannot be retrieved, since it may contain secrets.
 * @property minTlsVersion MinTlsVersion: configures the minimum version of TLS required for SSL requests
 * @property minimumElasticInstanceCount Number of minimum instance count for a site
 * This setting only applies to the Elastic Plans
 * @property netFrameworkVersion .NET Framework version.
 * @property nodeVersion Version of Node.js.
 * @property numberOfWorkers Number of workers.
 * @property phpVersion Version of PHP.
 * @property powerShellVersion Version of PowerShell.
 * @property preWarmedInstanceCount Number of preWarmed instances.
 * This setting only applies to the Consumption and Elastic Plans
 * @property publicNetworkAccess Property to allow or block all public traffic.
 * @property publishingUsername Publishing user name.
 * @property push Push endpoint settings.
 * @property pythonVersion Version of Python.
 * @property remoteDebuggingEnabled true if remote debugging is enabled; otherwise, false.
 * @property remoteDebuggingVersion Remote debugging version.
 * @property requestTracingEnabled true if request tracing is enabled; otherwise, false.
 * @property requestTracingExpirationTime Request tracing expiration time.
 * @property scmIpSecurityRestrictions IP security restrictions for scm.
 * @property scmIpSecurityRestrictionsDefaultAction Default action for scm access restriction if no rules are matched.
 * @property scmIpSecurityRestrictionsUseMain IP security restrictions for scm to use main.
 * @property scmMinTlsVersion ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site
 * @property scmType SCM type.
 * @property tracingOptions Tracing options.
 * @property use32BitWorkerProcess true to use 32-bit worker process; otherwise, false.
 * @property virtualApplications Virtual applications.
 * @property vnetName Virtual Network name.
 * @property vnetPrivatePortsCount The number of private ports assigned to this app. These will be assigned dynamically on runtime.
 * @property vnetRouteAllEnabled Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.
 * @property webSocketsEnabled true if WebSocket is enabled; otherwise, false.
 * @property websiteTimeZone Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
 * @property windowsFxVersion Xenon App Framework and version
 * @property xManagedServiceIdentityId Explicit Managed Service Identity Id
 */
public data class SiteConfigArgs(
    public val acrUseManagedIdentityCreds: Output? = null,
    public val acrUserManagedIdentityID: Output? = null,
    public val alwaysOn: Output? = null,
    public val apiDefinition: Output? = null,
    public val apiManagementConfig: Output? = null,
    public val appCommandLine: Output? = null,
    public val appSettings: Output>? = null,
    public val autoHealEnabled: Output? = null,
    public val autoHealRules: Output? = null,
    public val autoSwapSlotName: Output? = null,
    public val azureStorageAccounts: Output>? = null,
    public val connectionStrings: Output>? = null,
    public val cors: Output? = null,
    public val defaultDocuments: Output>? = null,
    public val detailedErrorLoggingEnabled: Output? = null,
    public val documentRoot: Output? = null,
    public val elasticWebAppScaleLimit: Output? = null,
    public val experiments: Output? = null,
    public val ftpsState: Output>? = null,
    public val functionAppScaleLimit: Output? = null,
    public val functionsRuntimeScaleMonitoringEnabled: Output? = null,
    public val handlerMappings: Output>? = null,
    public val healthCheckPath: Output? = null,
    public val http20Enabled: Output? = null,
    public val httpLoggingEnabled: Output? = null,
    public val ipSecurityRestrictions: Output>? = null,
    public val ipSecurityRestrictionsDefaultAction: Output>? = null,
    public val javaContainer: Output? = null,
    public val javaContainerVersion: Output? = null,
    public val javaVersion: Output? = null,
    public val keyVaultReferenceIdentity: Output? = null,
    public val limits: Output? = null,
    public val linuxFxVersion: Output? = null,
    public val loadBalancing: Output? = null,
    public val localMySqlEnabled: Output? = null,
    public val logsDirectorySizeLimit: Output? = null,
    public val managedPipelineMode: Output? = null,
    public val managedServiceIdentityId: Output? = null,
    public val metadata: Output>? = null,
    public val minTlsVersion: Output>? = null,
    public val minimumElasticInstanceCount: Output? = null,
    public val netFrameworkVersion: Output? = null,
    public val nodeVersion: Output? = null,
    public val numberOfWorkers: Output? = null,
    public val phpVersion: Output? = null,
    public val powerShellVersion: Output? = null,
    public val preWarmedInstanceCount: Output? = null,
    public val publicNetworkAccess: Output? = null,
    public val publishingUsername: Output? = null,
    public val push: Output? = null,
    public val pythonVersion: Output? = null,
    public val remoteDebuggingEnabled: Output? = null,
    public val remoteDebuggingVersion: Output? = null,
    public val requestTracingEnabled: Output? = null,
    public val requestTracingExpirationTime: Output? = null,
    public val scmIpSecurityRestrictions: Output>? = null,
    public val scmIpSecurityRestrictionsDefaultAction: Output>? = null,
    public val scmIpSecurityRestrictionsUseMain: Output? = null,
    public val scmMinTlsVersion: Output>? = null,
    public val scmType: Output>? = null,
    public val tracingOptions: Output? = null,
    public val use32BitWorkerProcess: Output? = null,
    public val virtualApplications: Output>? = null,
    public val vnetName: Output? = null,
    public val vnetPrivatePortsCount: Output? = null,
    public val vnetRouteAllEnabled: Output? = null,
    public val webSocketsEnabled: Output? = null,
    public val websiteTimeZone: Output? = null,
    public val windowsFxVersion: Output? = null,
    public val xManagedServiceIdentityId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.web.inputs.SiteConfigArgs =
        com.pulumi.azurenative.web.inputs.SiteConfigArgs.builder()
            .acrUseManagedIdentityCreds(acrUseManagedIdentityCreds?.applyValue({ args0 -> args0 }))
            .acrUserManagedIdentityID(acrUserManagedIdentityID?.applyValue({ args0 -> args0 }))
            .alwaysOn(alwaysOn?.applyValue({ args0 -> args0 }))
            .apiDefinition(apiDefinition?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .apiManagementConfig(
                apiManagementConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .appCommandLine(appCommandLine?.applyValue({ args0 -> args0 }))
            .appSettings(
                appSettings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .autoHealEnabled(autoHealEnabled?.applyValue({ args0 -> args0 }))
            .autoHealRules(autoHealRules?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .autoSwapSlotName(autoSwapSlotName?.applyValue({ args0 -> args0 }))
            .azureStorageAccounts(
                azureStorageAccounts?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            )
            .connectionStrings(
                connectionStrings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .cors(cors?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .defaultDocuments(defaultDocuments?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .detailedErrorLoggingEnabled(detailedErrorLoggingEnabled?.applyValue({ args0 -> args0 }))
            .documentRoot(documentRoot?.applyValue({ args0 -> args0 }))
            .elasticWebAppScaleLimit(elasticWebAppScaleLimit?.applyValue({ args0 -> args0 }))
            .experiments(experiments?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .ftpsState(
                ftpsState?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .functionAppScaleLimit(functionAppScaleLimit?.applyValue({ args0 -> args0 }))
            .functionsRuntimeScaleMonitoringEnabled(
                functionsRuntimeScaleMonitoringEnabled?.applyValue({ args0 ->
                    args0
                }),
            )
            .handlerMappings(
                handlerMappings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .healthCheckPath(healthCheckPath?.applyValue({ args0 -> args0 }))
            .http20Enabled(http20Enabled?.applyValue({ args0 -> args0 }))
            .httpLoggingEnabled(httpLoggingEnabled?.applyValue({ args0 -> args0 }))
            .ipSecurityRestrictions(
                ipSecurityRestrictions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .ipSecurityRestrictionsDefaultAction(
                ipSecurityRestrictionsDefaultAction?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .javaContainer(javaContainer?.applyValue({ args0 -> args0 }))
            .javaContainerVersion(javaContainerVersion?.applyValue({ args0 -> args0 }))
            .javaVersion(javaVersion?.applyValue({ args0 -> args0 }))
            .keyVaultReferenceIdentity(keyVaultReferenceIdentity?.applyValue({ args0 -> args0 }))
            .limits(limits?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .linuxFxVersion(linuxFxVersion?.applyValue({ args0 -> args0 }))
            .loadBalancing(loadBalancing?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .localMySqlEnabled(localMySqlEnabled?.applyValue({ args0 -> args0 }))
            .logsDirectorySizeLimit(logsDirectorySizeLimit?.applyValue({ args0 -> args0 }))
            .managedPipelineMode(
                managedPipelineMode?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .managedServiceIdentityId(managedServiceIdentityId?.applyValue({ args0 -> args0 }))
            .metadata(
                metadata?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .minTlsVersion(
                minTlsVersion?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .minimumElasticInstanceCount(minimumElasticInstanceCount?.applyValue({ args0 -> args0 }))
            .netFrameworkVersion(netFrameworkVersion?.applyValue({ args0 -> args0 }))
            .nodeVersion(nodeVersion?.applyValue({ args0 -> args0 }))
            .numberOfWorkers(numberOfWorkers?.applyValue({ args0 -> args0 }))
            .phpVersion(phpVersion?.applyValue({ args0 -> args0 }))
            .powerShellVersion(powerShellVersion?.applyValue({ args0 -> args0 }))
            .preWarmedInstanceCount(preWarmedInstanceCount?.applyValue({ args0 -> args0 }))
            .publicNetworkAccess(publicNetworkAccess?.applyValue({ args0 -> args0 }))
            .publishingUsername(publishingUsername?.applyValue({ args0 -> args0 }))
            .push(push?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .pythonVersion(pythonVersion?.applyValue({ args0 -> args0 }))
            .remoteDebuggingEnabled(remoteDebuggingEnabled?.applyValue({ args0 -> args0 }))
            .remoteDebuggingVersion(remoteDebuggingVersion?.applyValue({ args0 -> args0 }))
            .requestTracingEnabled(requestTracingEnabled?.applyValue({ args0 -> args0 }))
            .requestTracingExpirationTime(requestTracingExpirationTime?.applyValue({ args0 -> args0 }))
            .scmIpSecurityRestrictions(
                scmIpSecurityRestrictions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .scmIpSecurityRestrictionsDefaultAction(
                scmIpSecurityRestrictionsDefaultAction?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .scmIpSecurityRestrictionsUseMain(scmIpSecurityRestrictionsUseMain?.applyValue({ args0 -> args0 }))
            .scmMinTlsVersion(
                scmMinTlsVersion?.applyValue({ args0 ->
                    args0.transform(
                        { args0 -> args0 },
                        { args0 -> args0.let({ args0 -> args0.toJava() }) },
                    )
                }),
            )
            .scmType(
                scmType?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .tracingOptions(tracingOptions?.applyValue({ args0 -> args0 }))
            .use32BitWorkerProcess(use32BitWorkerProcess?.applyValue({ args0 -> args0 }))
            .virtualApplications(
                virtualApplications?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .vnetName(vnetName?.applyValue({ args0 -> args0 }))
            .vnetPrivatePortsCount(vnetPrivatePortsCount?.applyValue({ args0 -> args0 }))
            .vnetRouteAllEnabled(vnetRouteAllEnabled?.applyValue({ args0 -> args0 }))
            .webSocketsEnabled(webSocketsEnabled?.applyValue({ args0 -> args0 }))
            .websiteTimeZone(websiteTimeZone?.applyValue({ args0 -> args0 }))
            .windowsFxVersion(windowsFxVersion?.applyValue({ args0 -> args0 }))
            .xManagedServiceIdentityId(xManagedServiceIdentityId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [SiteConfigArgs].
 */
@PulumiTagMarker
public class SiteConfigArgsBuilder internal constructor() {
    private var acrUseManagedIdentityCreds: Output? = null

    private var acrUserManagedIdentityID: Output? = null

    private var alwaysOn: Output? = null

    private var apiDefinition: Output? = null

    private var apiManagementConfig: Output? = null

    private var appCommandLine: Output? = null

    private var appSettings: Output>? = null

    private var autoHealEnabled: Output? = null

    private var autoHealRules: Output? = null

    private var autoSwapSlotName: Output? = null

    private var azureStorageAccounts: Output>? = null

    private var connectionStrings: Output>? = null

    private var cors: Output? = null

    private var defaultDocuments: Output>? = null

    private var detailedErrorLoggingEnabled: Output? = null

    private var documentRoot: Output? = null

    private var elasticWebAppScaleLimit: Output? = null

    private var experiments: Output? = null

    private var ftpsState: Output>? = null

    private var functionAppScaleLimit: Output? = null

    private var functionsRuntimeScaleMonitoringEnabled: Output? = null

    private var handlerMappings: Output>? = null

    private var healthCheckPath: Output? = null

    private var http20Enabled: Output? = null

    private var httpLoggingEnabled: Output? = null

    private var ipSecurityRestrictions: Output>? = null

    private var ipSecurityRestrictionsDefaultAction: Output>? = null

    private var javaContainer: Output? = null

    private var javaContainerVersion: Output? = null

    private var javaVersion: Output? = null

    private var keyVaultReferenceIdentity: Output? = null

    private var limits: Output? = null

    private var linuxFxVersion: Output? = null

    private var loadBalancing: Output? = null

    private var localMySqlEnabled: Output? = null

    private var logsDirectorySizeLimit: Output? = null

    private var managedPipelineMode: Output? = null

    private var managedServiceIdentityId: Output? = null

    private var metadata: Output>? = null

    private var minTlsVersion: Output>? = null

    private var minimumElasticInstanceCount: Output? = null

    private var netFrameworkVersion: Output? = null

    private var nodeVersion: Output? = null

    private var numberOfWorkers: Output? = null

    private var phpVersion: Output? = null

    private var powerShellVersion: Output? = null

    private var preWarmedInstanceCount: Output? = null

    private var publicNetworkAccess: Output? = null

    private var publishingUsername: Output? = null

    private var push: Output? = null

    private var pythonVersion: Output? = null

    private var remoteDebuggingEnabled: Output? = null

    private var remoteDebuggingVersion: Output? = null

    private var requestTracingEnabled: Output? = null

    private var requestTracingExpirationTime: Output? = null

    private var scmIpSecurityRestrictions: Output>? = null

    private var scmIpSecurityRestrictionsDefaultAction: Output>? = null

    private var scmIpSecurityRestrictionsUseMain: Output? = null

    private var scmMinTlsVersion: Output>? = null

    private var scmType: Output>? = null

    private var tracingOptions: Output? = null

    private var use32BitWorkerProcess: Output? = null

    private var virtualApplications: Output>? = null

    private var vnetName: Output? = null

    private var vnetPrivatePortsCount: Output? = null

    private var vnetRouteAllEnabled: Output? = null

    private var webSocketsEnabled: Output? = null

    private var websiteTimeZone: Output? = null

    private var windowsFxVersion: Output? = null

    private var xManagedServiceIdentityId: Output? = null

    /**
     * @param value Flag to use Managed Identity Creds for ACR pull
     */
    @JvmName("joxqjrjrixirxsnn")
    public suspend fun acrUseManagedIdentityCreds(`value`: Output) {
        this.acrUseManagedIdentityCreds = value
    }

    /**
     * @param value If using user managed identity, the user managed identity ClientId
     */
    @JvmName("vgbpijwnewscqyli")
    public suspend fun acrUserManagedIdentityID(`value`: Output) {
        this.acrUserManagedIdentityID = value
    }

    /**
     * @param value true if Always On is enabled; otherwise, false.
     */
    @JvmName("vivwvhtubrofrvuy")
    public suspend fun alwaysOn(`value`: Output) {
        this.alwaysOn = value
    }

    /**
     * @param value Information about the formal API definition for the app.
     */
    @JvmName("pvjgboprccvygvxf")
    public suspend fun apiDefinition(`value`: Output) {
        this.apiDefinition = value
    }

    /**
     * @param value Azure API management settings linked to the app.
     */
    @JvmName("cspfimhguiqdehsg")
    public suspend fun apiManagementConfig(`value`: Output) {
        this.apiManagementConfig = value
    }

    /**
     * @param value App command line to launch.
     */
    @JvmName("ngyqqnmtvthfmlyu")
    public suspend fun appCommandLine(`value`: Output) {
        this.appCommandLine = value
    }

    /**
     * @param value Application settings.
     */
    @JvmName("svccxpgybfmiaqnf")
    public suspend fun appSettings(`value`: Output>) {
        this.appSettings = value
    }

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

    /**
     * @param values Application settings.
     */
    @JvmName("fvnndlfwwtyaappl")
    public suspend fun appSettings(values: List>) {
        this.appSettings = Output.all(values)
    }

    /**
     * @param value true if Auto Heal is enabled; otherwise, false.
     */
    @JvmName("uyphgjkiraqbyfpp")
    public suspend fun autoHealEnabled(`value`: Output) {
        this.autoHealEnabled = value
    }

    /**
     * @param value Auto Heal rules.
     */
    @JvmName("ubtpyddtarowdqif")
    public suspend fun autoHealRules(`value`: Output) {
        this.autoHealRules = value
    }

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

    /**
     * @param value List of Azure Storage Accounts.
     */
    @JvmName("flvnjraavethwrda")
    public suspend fun azureStorageAccounts(`value`: Output>) {
        this.azureStorageAccounts = value
    }

    /**
     * @param value Connection strings.
     */
    @JvmName("avcyeigkeewobqiy")
    public suspend fun connectionStrings(`value`: Output>) {
        this.connectionStrings = value
    }

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

    /**
     * @param values Connection strings.
     */
    @JvmName("najurlqksnnbnxom")
    public suspend fun connectionStrings(values: List>) {
        this.connectionStrings = Output.all(values)
    }

    /**
     * @param value Cross-Origin Resource Sharing (CORS) settings.
     */
    @JvmName("niqhpjdlafbbqxfs")
    public suspend fun cors(`value`: Output) {
        this.cors = value
    }

    /**
     * @param value Default documents.
     */
    @JvmName("nauarvkjherxxbyh")
    public suspend fun defaultDocuments(`value`: Output>) {
        this.defaultDocuments = value
    }

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

    /**
     * @param values Default documents.
     */
    @JvmName("uopmdyxstyyvxkyh")
    public suspend fun defaultDocuments(values: List>) {
        this.defaultDocuments = Output.all(values)
    }

    /**
     * @param value true if detailed error logging is enabled; otherwise, false.
     */
    @JvmName("apuakybeiuudwdyh")
    public suspend fun detailedErrorLoggingEnabled(`value`: Output) {
        this.detailedErrorLoggingEnabled = value
    }

    /**
     * @param value Document root.
     */
    @JvmName("pgwipksxbknagwhb")
    public suspend fun documentRoot(`value`: Output) {
        this.documentRoot = value
    }

    /**
     * @param value Maximum number of workers that a site can scale out to.
     * This setting only applies to apps in plans where ElasticScaleEnabled is true
     */
    @JvmName("kaiqwscuyixyydfy")
    public suspend fun elasticWebAppScaleLimit(`value`: Output) {
        this.elasticWebAppScaleLimit = value
    }

    /**
     * @param value This is work around for polymorphic types.
     */
    @JvmName("cjpdtubgqnemhvrj")
    public suspend fun experiments(`value`: Output) {
        this.experiments = value
    }

    /**
     * @param value State of FTP / FTPS service
     */
    @JvmName("yycyelxqukntrovt")
    public suspend fun ftpsState(`value`: Output>) {
        this.ftpsState = value
    }

    /**
     * @param value Maximum number of workers that a site can scale out to.
     * This setting only applies to the Consumption and Elastic Premium Plans
     */
    @JvmName("fuobayqdhrygvaiu")
    public suspend fun functionAppScaleLimit(`value`: Output) {
        this.functionAppScaleLimit = value
    }

    /**
     * @param value Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,
     * the ScaleController will not monitor event sources directly, but will instead call to the
     * runtime to get scale status.
     */
    @JvmName("oyifublfiatmgtex")
    public suspend fun functionsRuntimeScaleMonitoringEnabled(`value`: Output) {
        this.functionsRuntimeScaleMonitoringEnabled = value
    }

    /**
     * @param value Handler mappings.
     */
    @JvmName("bwrrgfsmxlguexqe")
    public suspend fun handlerMappings(`value`: Output>) {
        this.handlerMappings = value
    }

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

    /**
     * @param values Handler mappings.
     */
    @JvmName("ymolbqcdjairmbra")
    public suspend fun handlerMappings(values: List>) {
        this.handlerMappings = Output.all(values)
    }

    /**
     * @param value Health check path
     */
    @JvmName("kffqygxeiwyuqlrh")
    public suspend fun healthCheckPath(`value`: Output) {
        this.healthCheckPath = value
    }

    /**
     * @param value Http20Enabled: configures a web site to allow clients to connect over http2.0
     */
    @JvmName("acnkwhqhcvciqnjl")
    public suspend fun http20Enabled(`value`: Output) {
        this.http20Enabled = value
    }

    /**
     * @param value true if HTTP logging is enabled; otherwise, false.
     */
    @JvmName("swmpvfbtwhwksgrc")
    public suspend fun httpLoggingEnabled(`value`: Output) {
        this.httpLoggingEnabled = value
    }

    /**
     * @param value IP security restrictions for main.
     */
    @JvmName("ohnrexbwmxajhfap")
    public suspend fun ipSecurityRestrictions(`value`: Output>) {
        this.ipSecurityRestrictions = value
    }

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

    /**
     * @param values IP security restrictions for main.
     */
    @JvmName("nqdhoxfiehwepxso")
    public suspend fun ipSecurityRestrictions(values: List>) {
        this.ipSecurityRestrictions = Output.all(values)
    }

    /**
     * @param value Default action for main access restriction if no rules are matched.
     */
    @JvmName("bvapxvbikbnevthl")
    public suspend fun ipSecurityRestrictionsDefaultAction(`value`: Output>) {
        this.ipSecurityRestrictionsDefaultAction = value
    }

    /**
     * @param value Java container.
     */
    @JvmName("obvyfrgdwvqbggvt")
    public suspend fun javaContainer(`value`: Output) {
        this.javaContainer = value
    }

    /**
     * @param value Java container version.
     */
    @JvmName("wcvewqcqmnwwkpeb")
    public suspend fun javaContainerVersion(`value`: Output) {
        this.javaContainerVersion = value
    }

    /**
     * @param value Java version.
     */
    @JvmName("fcgyuqbqxncjvfoi")
    public suspend fun javaVersion(`value`: Output) {
        this.javaVersion = value
    }

    /**
     * @param value Identity to use for Key Vault Reference authentication.
     */
    @JvmName("dxwgsxapswsfebah")
    public suspend fun keyVaultReferenceIdentity(`value`: Output) {
        this.keyVaultReferenceIdentity = value
    }

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

    /**
     * @param value Linux App Framework and version
     */
    @JvmName("dlapfsdrknogccyi")
    public suspend fun linuxFxVersion(`value`: Output) {
        this.linuxFxVersion = value
    }

    /**
     * @param value Site load balancing.
     */
    @JvmName("dufcyfiglccpcnhg")
    public suspend fun loadBalancing(`value`: Output) {
        this.loadBalancing = value
    }

    /**
     * @param value true to enable local MySQL; otherwise, false.
     */
    @JvmName("ladjofnwcuqjrglu")
    public suspend fun localMySqlEnabled(`value`: Output) {
        this.localMySqlEnabled = value
    }

    /**
     * @param value HTTP logs directory size limit.
     */
    @JvmName("chfjfoddfsyjokyq")
    public suspend fun logsDirectorySizeLimit(`value`: Output) {
        this.logsDirectorySizeLimit = value
    }

    /**
     * @param value Managed pipeline mode.
     */
    @JvmName("xjllduypmqlbjyxx")
    public suspend fun managedPipelineMode(`value`: Output) {
        this.managedPipelineMode = value
    }

    /**
     * @param value Managed Service Identity Id
     */
    @JvmName("tnfvngqhyfbvsihn")
    public suspend fun managedServiceIdentityId(`value`: Output) {
        this.managedServiceIdentityId = value
    }

    /**
     * @param value Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("mwlfaphyjfwkabah")
    public suspend fun metadata(`value`: Output>) {
        this.metadata = value
    }

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

    /**
     * @param values Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("cwnaeggthnwoxcfq")
    public suspend fun metadata(values: List>) {
        this.metadata = Output.all(values)
    }

    /**
     * @param value MinTlsVersion: configures the minimum version of TLS required for SSL requests
     */
    @JvmName("hnjpgmltkrgayqil")
    public suspend fun minTlsVersion(`value`: Output>) {
        this.minTlsVersion = value
    }

    /**
     * @param value Number of minimum instance count for a site
     * This setting only applies to the Elastic Plans
     */
    @JvmName("lwssonknxrjylgnf")
    public suspend fun minimumElasticInstanceCount(`value`: Output) {
        this.minimumElasticInstanceCount = value
    }

    /**
     * @param value .NET Framework version.
     */
    @JvmName("wvkqyjvlgkwbwhti")
    public suspend fun netFrameworkVersion(`value`: Output) {
        this.netFrameworkVersion = value
    }

    /**
     * @param value Version of Node.js.
     */
    @JvmName("yrigngnjabhloint")
    public suspend fun nodeVersion(`value`: Output) {
        this.nodeVersion = value
    }

    /**
     * @param value Number of workers.
     */
    @JvmName("alstdghlshmmbquy")
    public suspend fun numberOfWorkers(`value`: Output) {
        this.numberOfWorkers = value
    }

    /**
     * @param value Version of PHP.
     */
    @JvmName("oworvlynxjedtyuu")
    public suspend fun phpVersion(`value`: Output) {
        this.phpVersion = value
    }

    /**
     * @param value Version of PowerShell.
     */
    @JvmName("kgyfqkthpfqiihqg")
    public suspend fun powerShellVersion(`value`: Output) {
        this.powerShellVersion = value
    }

    /**
     * @param value Number of preWarmed instances.
     * This setting only applies to the Consumption and Elastic Plans
     */
    @JvmName("oicclgifinqbvejx")
    public suspend fun preWarmedInstanceCount(`value`: Output) {
        this.preWarmedInstanceCount = value
    }

    /**
     * @param value Property to allow or block all public traffic.
     */
    @JvmName("llollbeetuhvplpp")
    public suspend fun publicNetworkAccess(`value`: Output) {
        this.publicNetworkAccess = value
    }

    /**
     * @param value Publishing user name.
     */
    @JvmName("yipavsvdhteqjvdq")
    public suspend fun publishingUsername(`value`: Output) {
        this.publishingUsername = value
    }

    /**
     * @param value Push endpoint settings.
     */
    @JvmName("yjbpoadwugsomveh")
    public suspend fun push(`value`: Output) {
        this.push = value
    }

    /**
     * @param value Version of Python.
     */
    @JvmName("xgusbalmdmqjtwwj")
    public suspend fun pythonVersion(`value`: Output) {
        this.pythonVersion = value
    }

    /**
     * @param value true if remote debugging is enabled; otherwise, false.
     */
    @JvmName("jirlurigciltcppn")
    public suspend fun remoteDebuggingEnabled(`value`: Output) {
        this.remoteDebuggingEnabled = value
    }

    /**
     * @param value Remote debugging version.
     */
    @JvmName("phphjxsifjjouupl")
    public suspend fun remoteDebuggingVersion(`value`: Output) {
        this.remoteDebuggingVersion = value
    }

    /**
     * @param value true if request tracing is enabled; otherwise, false.
     */
    @JvmName("auexnwkkbsgowuta")
    public suspend fun requestTracingEnabled(`value`: Output) {
        this.requestTracingEnabled = value
    }

    /**
     * @param value Request tracing expiration time.
     */
    @JvmName("tgrruovglsontbxp")
    public suspend fun requestTracingExpirationTime(`value`: Output) {
        this.requestTracingExpirationTime = value
    }

    /**
     * @param value IP security restrictions for scm.
     */
    @JvmName("xqopfnvhjumouyay")
    public suspend fun scmIpSecurityRestrictions(`value`: Output>) {
        this.scmIpSecurityRestrictions = value
    }

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

    /**
     * @param values IP security restrictions for scm.
     */
    @JvmName("yorvjswxnosjohcg")
    public suspend fun scmIpSecurityRestrictions(values: List>) {
        this.scmIpSecurityRestrictions = Output.all(values)
    }

    /**
     * @param value Default action for scm access restriction if no rules are matched.
     */
    @JvmName("enjcfqmfywtkpelq")
    public suspend fun scmIpSecurityRestrictionsDefaultAction(`value`: Output>) {
        this.scmIpSecurityRestrictionsDefaultAction = value
    }

    /**
     * @param value IP security restrictions for scm to use main.
     */
    @JvmName("jrtdqgwpjycnsglo")
    public suspend fun scmIpSecurityRestrictionsUseMain(`value`: Output) {
        this.scmIpSecurityRestrictionsUseMain = value
    }

    /**
     * @param value ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site
     */
    @JvmName("dnxknhjvfapnfere")
    public suspend fun scmMinTlsVersion(`value`: Output>) {
        this.scmMinTlsVersion = value
    }

    /**
     * @param value SCM type.
     */
    @JvmName("nqjummhrdmngaotf")
    public suspend fun scmType(`value`: Output>) {
        this.scmType = value
    }

    /**
     * @param value Tracing options.
     */
    @JvmName("ceiqeuxcjcquojwl")
    public suspend fun tracingOptions(`value`: Output) {
        this.tracingOptions = value
    }

    /**
     * @param value true to use 32-bit worker process; otherwise, false.
     */
    @JvmName("omwuwdjdomuvless")
    public suspend fun use32BitWorkerProcess(`value`: Output) {
        this.use32BitWorkerProcess = value
    }

    /**
     * @param value Virtual applications.
     */
    @JvmName("ruuxfxxvvmgvggen")
    public suspend fun virtualApplications(`value`: Output>) {
        this.virtualApplications = value
    }

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

    /**
     * @param values Virtual applications.
     */
    @JvmName("yuqfxygtaatxtrbp")
    public suspend fun virtualApplications(values: List>) {
        this.virtualApplications = Output.all(values)
    }

    /**
     * @param value Virtual Network name.
     */
    @JvmName("htbnsgoiynfbrhgg")
    public suspend fun vnetName(`value`: Output) {
        this.vnetName = value
    }

    /**
     * @param value The number of private ports assigned to this app. These will be assigned dynamically on runtime.
     */
    @JvmName("gqnuivwaqmkvvths")
    public suspend fun vnetPrivatePortsCount(`value`: Output) {
        this.vnetPrivatePortsCount = value
    }

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

    /**
     * @param value true if WebSocket is enabled; otherwise, false.
     */
    @JvmName("tamfhjodxnwgkxgi")
    public suspend fun webSocketsEnabled(`value`: Output) {
        this.webSocketsEnabled = value
    }

    /**
     * @param value Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
     */
    @JvmName("hmmydaiyxtmugfgf")
    public suspend fun websiteTimeZone(`value`: Output) {
        this.websiteTimeZone = value
    }

    /**
     * @param value Xenon App Framework and version
     */
    @JvmName("adlhevjmvrtsqdij")
    public suspend fun windowsFxVersion(`value`: Output) {
        this.windowsFxVersion = value
    }

    /**
     * @param value Explicit Managed Service Identity Id
     */
    @JvmName("cxwbtbnjxfvymskd")
    public suspend fun xManagedServiceIdentityId(`value`: Output) {
        this.xManagedServiceIdentityId = value
    }

    /**
     * @param value Flag to use Managed Identity Creds for ACR pull
     */
    @JvmName("hpqgeinrdripjebj")
    public suspend fun acrUseManagedIdentityCreds(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acrUseManagedIdentityCreds = mapped
    }

    /**
     * @param value If using user managed identity, the user managed identity ClientId
     */
    @JvmName("lmcamnbcgtajreoy")
    public suspend fun acrUserManagedIdentityID(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.acrUserManagedIdentityID = mapped
    }

    /**
     * @param value true if Always On is enabled; otherwise, false.
     */
    @JvmName("nxovemlylqimopmc")
    public suspend fun alwaysOn(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.alwaysOn = mapped
    }

    /**
     * @param value Information about the formal API definition for the app.
     */
    @JvmName("kldgxdbyuwyxymqb")
    public suspend fun apiDefinition(`value`: ApiDefinitionInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.apiDefinition = mapped
    }

    /**
     * @param argument Information about the formal API definition for the app.
     */
    @JvmName("qtflqfodjxtkvfem")
    public suspend fun apiDefinition(argument: suspend ApiDefinitionInfoArgsBuilder.() -> Unit) {
        val toBeMapped = ApiDefinitionInfoArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.apiDefinition = mapped
    }

    /**
     * @param value Azure API management settings linked to the app.
     */
    @JvmName("oqcsxeusqdxpgurg")
    public suspend fun apiManagementConfig(`value`: ApiManagementConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.apiManagementConfig = mapped
    }

    /**
     * @param argument Azure API management settings linked to the app.
     */
    @JvmName("wlntngdhttlggfeu")
    public suspend fun apiManagementConfig(argument: suspend ApiManagementConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ApiManagementConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.apiManagementConfig = mapped
    }

    /**
     * @param value App command line to launch.
     */
    @JvmName("nggxxwggrghwmyfp")
    public suspend fun appCommandLine(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appCommandLine = mapped
    }

    /**
     * @param value Application settings.
     */
    @JvmName("vmdfaissetomoviv")
    public suspend fun appSettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appSettings = mapped
    }

    /**
     * @param argument Application settings.
     */
    @JvmName("ocywrddipulryluq")
    public suspend fun appSettings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            NameValuePairArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.appSettings = mapped
    }

    /**
     * @param argument Application settings.
     */
    @JvmName("fnhmqibqlayvbbuq")
    public suspend fun appSettings(vararg argument: suspend NameValuePairArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            NameValuePairArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.appSettings = mapped
    }

    /**
     * @param argument Application settings.
     */
    @JvmName("hwwwyrlbceuofuhf")
    public suspend fun appSettings(argument: suspend NameValuePairArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(NameValuePairArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.appSettings = mapped
    }

    /**
     * @param values Application settings.
     */
    @JvmName("qbqvsfosjoffdggh")
    public suspend fun appSettings(vararg values: NameValuePairArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.appSettings = mapped
    }

    /**
     * @param value true if Auto Heal is enabled; otherwise, false.
     */
    @JvmName("hdkivmokhosunkcn")
    public suspend fun autoHealEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoHealEnabled = mapped
    }

    /**
     * @param value Auto Heal rules.
     */
    @JvmName("sobqreiedsanovck")
    public suspend fun autoHealRules(`value`: AutoHealRulesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoHealRules = mapped
    }

    /**
     * @param argument Auto Heal rules.
     */
    @JvmName("bipqpdkxmwkpybcl")
    public suspend fun autoHealRules(argument: suspend AutoHealRulesArgsBuilder.() -> Unit) {
        val toBeMapped = AutoHealRulesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.autoHealRules = mapped
    }

    /**
     * @param value Auto-swap slot name.
     */
    @JvmName("wjvdsovqywcrhivm")
    public suspend fun autoSwapSlotName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoSwapSlotName = mapped
    }

    /**
     * @param value List of Azure Storage Accounts.
     */
    @JvmName("lvpnjrqgbkdqwbba")
    public suspend fun azureStorageAccounts(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.azureStorageAccounts = mapped
    }

    /**
     * @param argument List of Azure Storage Accounts.
     */
    @JvmName("hcccswcdrhtkujui")
    public suspend fun azureStorageAccounts(vararg argument: Pair Unit>) {
        val toBeMapped = argument.toList().map { (left, right) ->
            left to
                AzureStorageInfoValueArgsBuilder().applySuspend { right() }.build()
        }.toMap()
        val mapped = of(toBeMapped)
        this.azureStorageAccounts = mapped
    }

    /**
     * @param values List of Azure Storage Accounts.
     */
    @JvmName("pnqjfqdtufqpqalq")
    public fun azureStorageAccounts(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.azureStorageAccounts = mapped
    }

    /**
     * @param value Connection strings.
     */
    @JvmName("tkjbttjbxeadrrbj")
    public suspend fun connectionStrings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connectionStrings = mapped
    }

    /**
     * @param argument Connection strings.
     */
    @JvmName("gyxsvsuoxgjcpanm")
    public suspend fun connectionStrings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ConnStringInfoArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.connectionStrings = mapped
    }

    /**
     * @param argument Connection strings.
     */
    @JvmName("nfgfxaekvjsujyvj")
    public suspend fun connectionStrings(vararg argument: suspend ConnStringInfoArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ConnStringInfoArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.connectionStrings = mapped
    }

    /**
     * @param argument Connection strings.
     */
    @JvmName("onxacgwoqamnhewp")
    public suspend fun connectionStrings(argument: suspend ConnStringInfoArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ConnStringInfoArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.connectionStrings = mapped
    }

    /**
     * @param values Connection strings.
     */
    @JvmName("jsdadgswvmykmdwb")
    public suspend fun connectionStrings(vararg values: ConnStringInfoArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.connectionStrings = mapped
    }

    /**
     * @param value Cross-Origin Resource Sharing (CORS) settings.
     */
    @JvmName("qbetnapsjnjodgrt")
    public suspend fun cors(`value`: CorsSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cors = mapped
    }

    /**
     * @param argument Cross-Origin Resource Sharing (CORS) settings.
     */
    @JvmName("ovhqxlbjeuprfpce")
    public suspend fun cors(argument: suspend CorsSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = CorsSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.cors = mapped
    }

    /**
     * @param value Default documents.
     */
    @JvmName("oudcmidrgvfgprib")
    public suspend fun defaultDocuments(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultDocuments = mapped
    }

    /**
     * @param values Default documents.
     */
    @JvmName("mvtsmsqrfvuvjcnq")
    public suspend fun defaultDocuments(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.defaultDocuments = mapped
    }

    /**
     * @param value true if detailed error logging is enabled; otherwise, false.
     */
    @JvmName("puyjvlymopgmnifr")
    public suspend fun detailedErrorLoggingEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.detailedErrorLoggingEnabled = mapped
    }

    /**
     * @param value Document root.
     */
    @JvmName("ldgtuenclqniqohl")
    public suspend fun documentRoot(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.documentRoot = mapped
    }

    /**
     * @param value Maximum number of workers that a site can scale out to.
     * This setting only applies to apps in plans where ElasticScaleEnabled is true
     */
    @JvmName("pjhftdrbfbkefcup")
    public suspend fun elasticWebAppScaleLimit(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.elasticWebAppScaleLimit = mapped
    }

    /**
     * @param value This is work around for polymorphic types.
     */
    @JvmName("odkhxkynogepxocm")
    public suspend fun experiments(`value`: ExperimentsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.experiments = mapped
    }

    /**
     * @param argument This is work around for polymorphic types.
     */
    @JvmName("myxlnolxnabdgenc")
    public suspend fun experiments(argument: suspend ExperimentsArgsBuilder.() -> Unit) {
        val toBeMapped = ExperimentsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.experiments = mapped
    }

    /**
     * @param value State of FTP / FTPS service
     */
    @JvmName("jouvfqibbcuqruvd")
    public suspend fun ftpsState(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ftpsState = mapped
    }

    /**
     * @param value State of FTP / FTPS service
     */
    @JvmName("uafmkicmpqdcrkgn")
    public fun ftpsState(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ftpsState = mapped
    }

    /**
     * @param value State of FTP / FTPS service
     */
    @JvmName("ssciiifgahajfbut")
    public fun ftpsState(`value`: FtpsState) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ftpsState = mapped
    }

    /**
     * @param value Maximum number of workers that a site can scale out to.
     * This setting only applies to the Consumption and Elastic Premium Plans
     */
    @JvmName("wrljeocrfdtikshq")
    public suspend fun functionAppScaleLimit(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.functionAppScaleLimit = mapped
    }

    /**
     * @param value Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,
     * the ScaleController will not monitor event sources directly, but will instead call to the
     * runtime to get scale status.
     */
    @JvmName("vcwdsmkpanxcjnfa")
    public suspend fun functionsRuntimeScaleMonitoringEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.functionsRuntimeScaleMonitoringEnabled = mapped
    }

    /**
     * @param value Handler mappings.
     */
    @JvmName("vknyqlyhjsnasnpf")
    public suspend fun handlerMappings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.handlerMappings = mapped
    }

    /**
     * @param argument Handler mappings.
     */
    @JvmName("frmwydbnwrpapimd")
    public suspend fun handlerMappings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            HandlerMappingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.handlerMappings = mapped
    }

    /**
     * @param argument Handler mappings.
     */
    @JvmName("iroxsjhdjkrnpyxv")
    public suspend fun handlerMappings(vararg argument: suspend HandlerMappingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            HandlerMappingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.handlerMappings = mapped
    }

    /**
     * @param argument Handler mappings.
     */
    @JvmName("hgnrcelaofgnqlsg")
    public suspend fun handlerMappings(argument: suspend HandlerMappingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(HandlerMappingArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.handlerMappings = mapped
    }

    /**
     * @param values Handler mappings.
     */
    @JvmName("sqxybbvntnjomtcr")
    public suspend fun handlerMappings(vararg values: HandlerMappingArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.handlerMappings = mapped
    }

    /**
     * @param value Health check path
     */
    @JvmName("ikfxvhjfmxchvkgg")
    public suspend fun healthCheckPath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.healthCheckPath = mapped
    }

    /**
     * @param value Http20Enabled: configures a web site to allow clients to connect over http2.0
     */
    @JvmName("pueljsjipqgvoswb")
    public suspend fun http20Enabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.http20Enabled = mapped
    }

    /**
     * @param value true if HTTP logging is enabled; otherwise, false.
     */
    @JvmName("gxjwvpywtrvsvxnm")
    public suspend fun httpLoggingEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.httpLoggingEnabled = mapped
    }

    /**
     * @param value IP security restrictions for main.
     */
    @JvmName("gtwiyhaixpcjbpcw")
    public suspend fun ipSecurityRestrictions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipSecurityRestrictions = mapped
    }

    /**
     * @param argument IP security restrictions for main.
     */
    @JvmName("umwyuessqgccbnrd")
    public suspend fun ipSecurityRestrictions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            IpSecurityRestrictionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.ipSecurityRestrictions = mapped
    }

    /**
     * @param argument IP security restrictions for main.
     */
    @JvmName("prtkoappxjfkqabf")
    public suspend fun ipSecurityRestrictions(vararg argument: suspend IpSecurityRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            IpSecurityRestrictionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.ipSecurityRestrictions = mapped
    }

    /**
     * @param argument IP security restrictions for main.
     */
    @JvmName("hswpvdoopypjalbf")
    public suspend fun ipSecurityRestrictions(argument: suspend IpSecurityRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(IpSecurityRestrictionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.ipSecurityRestrictions = mapped
    }

    /**
     * @param values IP security restrictions for main.
     */
    @JvmName("jqdkpkrumhxhumni")
    public suspend fun ipSecurityRestrictions(vararg values: IpSecurityRestrictionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipSecurityRestrictions = mapped
    }

    /**
     * @param value Default action for main access restriction if no rules are matched.
     */
    @JvmName("uvnawmeajmpentxe")
    public suspend fun ipSecurityRestrictionsDefaultAction(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.ipSecurityRestrictionsDefaultAction = mapped
    }

    /**
     * @param value Default action for main access restriction if no rules are matched.
     */
    @JvmName("ckyvohtvvehtiifq")
    public fun ipSecurityRestrictionsDefaultAction(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipSecurityRestrictionsDefaultAction = mapped
    }

    /**
     * @param value Default action for main access restriction if no rules are matched.
     */
    @JvmName("aajgygbtomiceelt")
    public fun ipSecurityRestrictionsDefaultAction(`value`: DefaultAction) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.ipSecurityRestrictionsDefaultAction = mapped
    }

    /**
     * @param value Java container.
     */
    @JvmName("snpevfcppiaavodm")
    public suspend fun javaContainer(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.javaContainer = mapped
    }

    /**
     * @param value Java container version.
     */
    @JvmName("ssxgumxmdwinwmwc")
    public suspend fun javaContainerVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.javaContainerVersion = mapped
    }

    /**
     * @param value Java version.
     */
    @JvmName("xquuigqbnnrapibe")
    public suspend fun javaVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.javaVersion = mapped
    }

    /**
     * @param value Identity to use for Key Vault Reference authentication.
     */
    @JvmName("fgykeburmgltmwqp")
    public suspend fun keyVaultReferenceIdentity(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyVaultReferenceIdentity = mapped
    }

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

    /**
     * @param argument Site limits.
     */
    @JvmName("hdxvupjbfsyayenp")
    public suspend fun limits(argument: suspend SiteLimitsArgsBuilder.() -> Unit) {
        val toBeMapped = SiteLimitsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.limits = mapped
    }

    /**
     * @param value Linux App Framework and version
     */
    @JvmName("wmmybgiuoyyactqe")
    public suspend fun linuxFxVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.linuxFxVersion = mapped
    }

    /**
     * @param value Site load balancing.
     */
    @JvmName("chhcifyvodqbpxca")
    public suspend fun loadBalancing(`value`: SiteLoadBalancing?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.loadBalancing = mapped
    }

    /**
     * @param value true to enable local MySQL; otherwise, false.
     */
    @JvmName("gqdwbrxidibsrkwb")
    public suspend fun localMySqlEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.localMySqlEnabled = mapped
    }

    /**
     * @param value HTTP logs directory size limit.
     */
    @JvmName("nvbbfthiegmvmgve")
    public suspend fun logsDirectorySizeLimit(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logsDirectorySizeLimit = mapped
    }

    /**
     * @param value Managed pipeline mode.
     */
    @JvmName("wxqlugpqqnrypybg")
    public suspend fun managedPipelineMode(`value`: ManagedPipelineMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedPipelineMode = mapped
    }

    /**
     * @param value Managed Service Identity Id
     */
    @JvmName("ptfhpgupbeyksxed")
    public suspend fun managedServiceIdentityId(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedServiceIdentityId = mapped
    }

    /**
     * @param value Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("bvaulygvryvnhosf")
    public suspend fun metadata(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param argument Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("iomdimagioowmlgm")
    public suspend fun metadata(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            NameValuePairArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.metadata = mapped
    }

    /**
     * @param argument Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("qqvlxuomifghtdgg")
    public suspend fun metadata(vararg argument: suspend NameValuePairArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            NameValuePairArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.metadata = mapped
    }

    /**
     * @param argument Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("rjqdncotkekfxdkm")
    public suspend fun metadata(argument: suspend NameValuePairArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(NameValuePairArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.metadata = mapped
    }

    /**
     * @param values Application metadata. This property cannot be retrieved, since it may contain secrets.
     */
    @JvmName("cqmjkvqhrofiibwu")
    public suspend fun metadata(vararg values: NameValuePairArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.metadata = mapped
    }

    /**
     * @param value MinTlsVersion: configures the minimum version of TLS required for SSL requests
     */
    @JvmName("shcafopmnyraovmw")
    public suspend fun minTlsVersion(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minTlsVersion = mapped
    }

    /**
     * @param value MinTlsVersion: configures the minimum version of TLS required for SSL requests
     */
    @JvmName("hfnkgxnirjlykqyy")
    public fun minTlsVersion(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.minTlsVersion = mapped
    }

    /**
     * @param value MinTlsVersion: configures the minimum version of TLS required for SSL requests
     */
    @JvmName("imvpvisdxwdysekx")
    public fun minTlsVersion(`value`: SupportedTlsVersions) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.minTlsVersion = mapped
    }

    /**
     * @param value Number of minimum instance count for a site
     * This setting only applies to the Elastic Plans
     */
    @JvmName("ihoqqjxlyxmsfnga")
    public suspend fun minimumElasticInstanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minimumElasticInstanceCount = mapped
    }

    /**
     * @param value .NET Framework version.
     */
    @JvmName("kdjrmfjxfrkhysbr")
    public suspend fun netFrameworkVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.netFrameworkVersion = mapped
    }

    /**
     * @param value Version of Node.js.
     */
    @JvmName("rposxdympydgclwh")
    public suspend fun nodeVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nodeVersion = mapped
    }

    /**
     * @param value Number of workers.
     */
    @JvmName("cmgjttiyevpylfmv")
    public suspend fun numberOfWorkers(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.numberOfWorkers = mapped
    }

    /**
     * @param value Version of PHP.
     */
    @JvmName("uddwkhspxkfkdvow")
    public suspend fun phpVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.phpVersion = mapped
    }

    /**
     * @param value Version of PowerShell.
     */
    @JvmName("uxtsldtcmhynbgrr")
    public suspend fun powerShellVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.powerShellVersion = mapped
    }

    /**
     * @param value Number of preWarmed instances.
     * This setting only applies to the Consumption and Elastic Plans
     */
    @JvmName("rovnxlsragmjqoei")
    public suspend fun preWarmedInstanceCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preWarmedInstanceCount = mapped
    }

    /**
     * @param value Property to allow or block all public traffic.
     */
    @JvmName("sqyrrugfvnsoctdk")
    public suspend fun publicNetworkAccess(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publicNetworkAccess = mapped
    }

    /**
     * @param value Publishing user name.
     */
    @JvmName("bkwxvaqpxojuwamr")
    public suspend fun publishingUsername(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publishingUsername = mapped
    }

    /**
     * @param value Push endpoint settings.
     */
    @JvmName("vqugcfnotluxnblr")
    public suspend fun push(`value`: PushSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.push = mapped
    }

    /**
     * @param argument Push endpoint settings.
     */
    @JvmName("ucthvfovcxckrmrl")
    public suspend fun push(argument: suspend PushSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = PushSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.push = mapped
    }

    /**
     * @param value Version of Python.
     */
    @JvmName("poogrwmfgharedrg")
    public suspend fun pythonVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.pythonVersion = mapped
    }

    /**
     * @param value true if remote debugging is enabled; otherwise, false.
     */
    @JvmName("fxqnliyfhtaunngg")
    public suspend fun remoteDebuggingEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.remoteDebuggingEnabled = mapped
    }

    /**
     * @param value Remote debugging version.
     */
    @JvmName("trybeldqiecbsclr")
    public suspend fun remoteDebuggingVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.remoteDebuggingVersion = mapped
    }

    /**
     * @param value true if request tracing is enabled; otherwise, false.
     */
    @JvmName("yduhburvaqnecvnu")
    public suspend fun requestTracingEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestTracingEnabled = mapped
    }

    /**
     * @param value Request tracing expiration time.
     */
    @JvmName("wptgphujleyvqocq")
    public suspend fun requestTracingExpirationTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requestTracingExpirationTime = mapped
    }

    /**
     * @param value IP security restrictions for scm.
     */
    @JvmName("cfvgggdrspqyyfvc")
    public suspend fun scmIpSecurityRestrictions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmIpSecurityRestrictions = mapped
    }

    /**
     * @param argument IP security restrictions for scm.
     */
    @JvmName("stggjxvubiwojuti")
    public suspend fun scmIpSecurityRestrictions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            IpSecurityRestrictionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.scmIpSecurityRestrictions = mapped
    }

    /**
     * @param argument IP security restrictions for scm.
     */
    @JvmName("nkbmcvwtrlbsnlss")
    public suspend fun scmIpSecurityRestrictions(vararg argument: suspend IpSecurityRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            IpSecurityRestrictionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.scmIpSecurityRestrictions = mapped
    }

    /**
     * @param argument IP security restrictions for scm.
     */
    @JvmName("eueocltyuuhpjcml")
    public suspend fun scmIpSecurityRestrictions(argument: suspend IpSecurityRestrictionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(IpSecurityRestrictionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.scmIpSecurityRestrictions = mapped
    }

    /**
     * @param values IP security restrictions for scm.
     */
    @JvmName("gpywxeafeodhjobj")
    public suspend fun scmIpSecurityRestrictions(vararg values: IpSecurityRestrictionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmIpSecurityRestrictions = mapped
    }

    /**
     * @param value Default action for scm access restriction if no rules are matched.
     */
    @JvmName("tlcbebeodbtrligf")
    public suspend fun scmIpSecurityRestrictionsDefaultAction(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmIpSecurityRestrictionsDefaultAction = mapped
    }

    /**
     * @param value Default action for scm access restriction if no rules are matched.
     */
    @JvmName("phpaigwkwwkveuho")
    public fun scmIpSecurityRestrictionsDefaultAction(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmIpSecurityRestrictionsDefaultAction = mapped
    }

    /**
     * @param value Default action for scm access restriction if no rules are matched.
     */
    @JvmName("qfrwmycbtkjjwfrh")
    public fun scmIpSecurityRestrictionsDefaultAction(`value`: DefaultAction) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmIpSecurityRestrictionsDefaultAction = mapped
    }

    /**
     * @param value IP security restrictions for scm to use main.
     */
    @JvmName("curbxyvegtauxmfm")
    public suspend fun scmIpSecurityRestrictionsUseMain(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmIpSecurityRestrictionsUseMain = mapped
    }

    /**
     * @param value ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site
     */
    @JvmName("oedisrxxiiktqchg")
    public suspend fun scmMinTlsVersion(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmMinTlsVersion = mapped
    }

    /**
     * @param value ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site
     */
    @JvmName("iwtstskxontoixmm")
    public fun scmMinTlsVersion(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmMinTlsVersion = mapped
    }

    /**
     * @param value ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site
     */
    @JvmName("ciejfljcsobjpgub")
    public fun scmMinTlsVersion(`value`: SupportedTlsVersions) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmMinTlsVersion = mapped
    }

    /**
     * @param value SCM type.
     */
    @JvmName("xmyrurabwiblajdn")
    public suspend fun scmType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scmType = mapped
    }

    /**
     * @param value SCM type.
     */
    @JvmName("cxrmqdrfwljomuva")
    public fun scmType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmType = mapped
    }

    /**
     * @param value SCM type.
     */
    @JvmName("bhnplgmdytlesjtt")
    public fun scmType(`value`: ScmType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scmType = mapped
    }

    /**
     * @param value Tracing options.
     */
    @JvmName("cxpvemraxasvhttv")
    public suspend fun tracingOptions(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tracingOptions = mapped
    }

    /**
     * @param value true to use 32-bit worker process; otherwise, false.
     */
    @JvmName("egxaoeyvueshiolg")
    public suspend fun use32BitWorkerProcess(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.use32BitWorkerProcess = mapped
    }

    /**
     * @param value Virtual applications.
     */
    @JvmName("mqpoplcxouarewff")
    public suspend fun virtualApplications(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.virtualApplications = mapped
    }

    /**
     * @param argument Virtual applications.
     */
    @JvmName("sufwqvrpliywsxxv")
    public suspend fun virtualApplications(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            VirtualApplicationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.virtualApplications = mapped
    }

    /**
     * @param argument Virtual applications.
     */
    @JvmName("fmkuytltiwsoyvsp")
    public suspend fun virtualApplications(vararg argument: suspend VirtualApplicationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            VirtualApplicationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.virtualApplications = mapped
    }

    /**
     * @param argument Virtual applications.
     */
    @JvmName("jterbqnlkgrhpefp")
    public suspend fun virtualApplications(argument: suspend VirtualApplicationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(VirtualApplicationArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.virtualApplications = mapped
    }

    /**
     * @param values Virtual applications.
     */
    @JvmName("yfaeetbnctrkvpmc")
    public suspend fun virtualApplications(vararg values: VirtualApplicationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.virtualApplications = mapped
    }

    /**
     * @param value Virtual Network name.
     */
    @JvmName("vpwqsprdemetmvde")
    public suspend fun vnetName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vnetName = mapped
    }

    /**
     * @param value The number of private ports assigned to this app. These will be assigned dynamically on runtime.
     */
    @JvmName("yelwtayrnpvssmiv")
    public suspend fun vnetPrivatePortsCount(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vnetPrivatePortsCount = mapped
    }

    /**
     * @param value Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied.
     */
    @JvmName("sjvoygmhcmlccaqa")
    public suspend fun vnetRouteAllEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vnetRouteAllEnabled = mapped
    }

    /**
     * @param value true if WebSocket is enabled; otherwise, false.
     */
    @JvmName("tdhycegmqgugkyfa")
    public suspend fun webSocketsEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.webSocketsEnabled = mapped
    }

    /**
     * @param value Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
     */
    @JvmName("pbcwqiiovbmbfpot")
    public suspend fun websiteTimeZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.websiteTimeZone = mapped
    }

    /**
     * @param value Xenon App Framework and version
     */
    @JvmName("xaemrnsxmdmkcrmw")
    public suspend fun windowsFxVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.windowsFxVersion = mapped
    }

    /**
     * @param value Explicit Managed Service Identity Id
     */
    @JvmName("migqbbkavmrieklg")
    public suspend fun xManagedServiceIdentityId(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.xManagedServiceIdentityId = mapped
    }

    internal fun build(): SiteConfigArgs = SiteConfigArgs(
        acrUseManagedIdentityCreds = acrUseManagedIdentityCreds,
        acrUserManagedIdentityID = acrUserManagedIdentityID,
        alwaysOn = alwaysOn,
        apiDefinition = apiDefinition,
        apiManagementConfig = apiManagementConfig,
        appCommandLine = appCommandLine,
        appSettings = appSettings,
        autoHealEnabled = autoHealEnabled,
        autoHealRules = autoHealRules,
        autoSwapSlotName = autoSwapSlotName,
        azureStorageAccounts = azureStorageAccounts,
        connectionStrings = connectionStrings,
        cors = cors,
        defaultDocuments = defaultDocuments,
        detailedErrorLoggingEnabled = detailedErrorLoggingEnabled,
        documentRoot = documentRoot,
        elasticWebAppScaleLimit = elasticWebAppScaleLimit,
        experiments = experiments,
        ftpsState = ftpsState,
        functionAppScaleLimit = functionAppScaleLimit,
        functionsRuntimeScaleMonitoringEnabled = functionsRuntimeScaleMonitoringEnabled,
        handlerMappings = handlerMappings,
        healthCheckPath = healthCheckPath,
        http20Enabled = http20Enabled,
        httpLoggingEnabled = httpLoggingEnabled,
        ipSecurityRestrictions = ipSecurityRestrictions,
        ipSecurityRestrictionsDefaultAction = ipSecurityRestrictionsDefaultAction,
        javaContainer = javaContainer,
        javaContainerVersion = javaContainerVersion,
        javaVersion = javaVersion,
        keyVaultReferenceIdentity = keyVaultReferenceIdentity,
        limits = limits,
        linuxFxVersion = linuxFxVersion,
        loadBalancing = loadBalancing,
        localMySqlEnabled = localMySqlEnabled,
        logsDirectorySizeLimit = logsDirectorySizeLimit,
        managedPipelineMode = managedPipelineMode,
        managedServiceIdentityId = managedServiceIdentityId,
        metadata = metadata,
        minTlsVersion = minTlsVersion,
        minimumElasticInstanceCount = minimumElasticInstanceCount,
        netFrameworkVersion = netFrameworkVersion,
        nodeVersion = nodeVersion,
        numberOfWorkers = numberOfWorkers,
        phpVersion = phpVersion,
        powerShellVersion = powerShellVersion,
        preWarmedInstanceCount = preWarmedInstanceCount,
        publicNetworkAccess = publicNetworkAccess,
        publishingUsername = publishingUsername,
        push = push,
        pythonVersion = pythonVersion,
        remoteDebuggingEnabled = remoteDebuggingEnabled,
        remoteDebuggingVersion = remoteDebuggingVersion,
        requestTracingEnabled = requestTracingEnabled,
        requestTracingExpirationTime = requestTracingExpirationTime,
        scmIpSecurityRestrictions = scmIpSecurityRestrictions,
        scmIpSecurityRestrictionsDefaultAction = scmIpSecurityRestrictionsDefaultAction,
        scmIpSecurityRestrictionsUseMain = scmIpSecurityRestrictionsUseMain,
        scmMinTlsVersion = scmMinTlsVersion,
        scmType = scmType,
        tracingOptions = tracingOptions,
        use32BitWorkerProcess = use32BitWorkerProcess,
        virtualApplications = virtualApplications,
        vnetName = vnetName,
        vnetPrivatePortsCount = vnetPrivatePortsCount,
        vnetRouteAllEnabled = vnetRouteAllEnabled,
        webSocketsEnabled = webSocketsEnabled,
        websiteTimeZone = websiteTimeZone,
        windowsFxVersion = windowsFxVersion,
        xManagedServiceIdentityId = xManagedServiceIdentityId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy