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

com.pulumi.azure.appservice.inputs.LinuxWebAppSiteConfigArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azure.appservice.inputs;

import com.pulumi.azure.appservice.inputs.LinuxWebAppSiteConfigApplicationStackArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSiteConfigAutoHealSettingArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSiteConfigCorsArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSiteConfigIpRestrictionArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSiteConfigScmIpRestrictionArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class LinuxWebAppSiteConfigArgs extends com.pulumi.resources.ResourceArgs {

    public static final LinuxWebAppSiteConfigArgs Empty = new LinuxWebAppSiteConfigArgs();

    /**
     * If this Linux Web App is Always On enabled. Defaults to `true`.
     * 
     * > **NOTE:** `always_on` must be explicitly set to `false` when using `Free`, `F1`, `D1`, or `Shared` Service Plans.
     * 
     */
    @Import(name="alwaysOn")
    private @Nullable Output alwaysOn;

    /**
     * @return If this Linux Web App is Always On enabled. Defaults to `true`.
     * 
     * > **NOTE:** `always_on` must be explicitly set to `false` when using `Free`, `F1`, `D1`, or `Shared` Service Plans.
     * 
     */
    public Optional> alwaysOn() {
        return Optional.ofNullable(this.alwaysOn);
    }

    /**
     * The URL to the API Definition for this Linux Web App.
     * 
     */
    @Import(name="apiDefinitionUrl")
    private @Nullable Output apiDefinitionUrl;

    /**
     * @return The URL to the API Definition for this Linux Web App.
     * 
     */
    public Optional> apiDefinitionUrl() {
        return Optional.ofNullable(this.apiDefinitionUrl);
    }

    /**
     * The API Management API ID this Linux Web App is associated with.
     * 
     */
    @Import(name="apiManagementApiId")
    private @Nullable Output apiManagementApiId;

    /**
     * @return The API Management API ID this Linux Web App is associated with.
     * 
     */
    public Optional> apiManagementApiId() {
        return Optional.ofNullable(this.apiManagementApiId);
    }

    /**
     * The App command line to launch.
     * 
     */
    @Import(name="appCommandLine")
    private @Nullable Output appCommandLine;

    /**
     * @return The App command line to launch.
     * 
     */
    public Optional> appCommandLine() {
        return Optional.ofNullable(this.appCommandLine);
    }

    /**
     * A `application_stack` block as defined above.
     * 
     */
    @Import(name="applicationStack")
    private @Nullable Output applicationStack;

    /**
     * @return A `application_stack` block as defined above.
     * 
     */
    public Optional> applicationStack() {
        return Optional.ofNullable(this.applicationStack);
    }

    /**
     * A `auto_heal_setting` block as defined above. Required with `auto_heal`.
     * 
     */
    @Import(name="autoHealSetting")
    private @Nullable Output autoHealSetting;

    /**
     * @return A `auto_heal_setting` block as defined above. Required with `auto_heal`.
     * 
     */
    public Optional> autoHealSetting() {
        return Optional.ofNullable(this.autoHealSetting);
    }

    /**
     * The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry.
     * 
     */
    @Import(name="containerRegistryManagedIdentityClientId")
    private @Nullable Output containerRegistryManagedIdentityClientId;

    /**
     * @return The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry.
     * 
     */
    public Optional> containerRegistryManagedIdentityClientId() {
        return Optional.ofNullable(this.containerRegistryManagedIdentityClientId);
    }

    /**
     * Should connections for Azure Container Registry use Managed Identity.
     * 
     */
    @Import(name="containerRegistryUseManagedIdentity")
    private @Nullable Output containerRegistryUseManagedIdentity;

    /**
     * @return Should connections for Azure Container Registry use Managed Identity.
     * 
     */
    public Optional> containerRegistryUseManagedIdentity() {
        return Optional.ofNullable(this.containerRegistryUseManagedIdentity);
    }

    /**
     * A `cors` block as defined above.
     * 
     */
    @Import(name="cors")
    private @Nullable Output cors;

    /**
     * @return A `cors` block as defined above.
     * 
     */
    public Optional> cors() {
        return Optional.ofNullable(this.cors);
    }

    /**
     * Specifies a list of Default Documents for the Linux Web App.
     * 
     */
    @Import(name="defaultDocuments")
    private @Nullable Output> defaultDocuments;

    /**
     * @return Specifies a list of Default Documents for the Linux Web App.
     * 
     */
    public Optional>> defaultDocuments() {
        return Optional.ofNullable(this.defaultDocuments);
    }

    @Import(name="detailedErrorLoggingEnabled")
    private @Nullable Output detailedErrorLoggingEnabled;

    public Optional> detailedErrorLoggingEnabled() {
        return Optional.ofNullable(this.detailedErrorLoggingEnabled);
    }

    @Import(name="ftpsState")
    private @Nullable Output ftpsState;

    public Optional> ftpsState() {
        return Optional.ofNullable(this.ftpsState);
    }

    /**
     * The amount of time in minutes that a node can be unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Only valid in conjunction with `health_check_path`.
     * 
     */
    @Import(name="healthCheckEvictionTimeInMin")
    private @Nullable Output healthCheckEvictionTimeInMin;

    /**
     * @return The amount of time in minutes that a node can be unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Only valid in conjunction with `health_check_path`.
     * 
     */
    public Optional> healthCheckEvictionTimeInMin() {
        return Optional.ofNullable(this.healthCheckEvictionTimeInMin);
    }

    /**
     * The path to the Health Check.
     * 
     */
    @Import(name="healthCheckPath")
    private @Nullable Output healthCheckPath;

    /**
     * @return The path to the Health Check.
     * 
     */
    public Optional> healthCheckPath() {
        return Optional.ofNullable(this.healthCheckPath);
    }

    /**
     * Should the HTTP2 be enabled?
     * 
     */
    @Import(name="http2Enabled")
    private @Nullable Output http2Enabled;

    /**
     * @return Should the HTTP2 be enabled?
     * 
     */
    public Optional> http2Enabled() {
        return Optional.ofNullable(this.http2Enabled);
    }

    /**
     * The Default action for traffic that does not match any `ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
     * 
     */
    @Import(name="ipRestrictionDefaultAction")
    private @Nullable Output ipRestrictionDefaultAction;

    /**
     * @return The Default action for traffic that does not match any `ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
     * 
     */
    public Optional> ipRestrictionDefaultAction() {
        return Optional.ofNullable(this.ipRestrictionDefaultAction);
    }

    /**
     * One or more `ip_restriction` blocks as defined above.
     * 
     */
    @Import(name="ipRestrictions")
    private @Nullable Output> ipRestrictions;

    /**
     * @return One or more `ip_restriction` blocks as defined above.
     * 
     */
    public Optional>> ipRestrictions() {
        return Optional.ofNullable(this.ipRestrictions);
    }

    @Import(name="linuxFxVersion")
    private @Nullable Output linuxFxVersion;

    public Optional> linuxFxVersion() {
        return Optional.ofNullable(this.linuxFxVersion);
    }

    /**
     * The Site load balancing. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted.
     * 
     */
    @Import(name="loadBalancingMode")
    private @Nullable Output loadBalancingMode;

    /**
     * @return The Site load balancing. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted.
     * 
     */
    public Optional> loadBalancingMode() {
        return Optional.ofNullable(this.loadBalancingMode);
    }

    /**
     * Use Local MySQL. Defaults to `false`.
     * 
     */
    @Import(name="localMysqlEnabled")
    private @Nullable Output localMysqlEnabled;

    /**
     * @return Use Local MySQL. Defaults to `false`.
     * 
     */
    public Optional> localMysqlEnabled() {
        return Optional.ofNullable(this.localMysqlEnabled);
    }

    /**
     * Managed pipeline mode. Possible values include `Integrated`, and `Classic`. Defaults to `Integrated`.
     * 
     */
    @Import(name="managedPipelineMode")
    private @Nullable Output managedPipelineMode;

    /**
     * @return Managed pipeline mode. Possible values include `Integrated`, and `Classic`. Defaults to `Integrated`.
     * 
     */
    public Optional> managedPipelineMode() {
        return Optional.ofNullable(this.managedPipelineMode);
    }

    /**
     * The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
     * 
     */
    @Import(name="minimumTlsVersion")
    private @Nullable Output minimumTlsVersion;

    /**
     * @return The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
     * 
     */
    public Optional> minimumTlsVersion() {
        return Optional.ofNullable(this.minimumTlsVersion);
    }

    /**
     * Should Remote Debugging be enabled? Defaults to `false`.
     * 
     */
    @Import(name="remoteDebuggingEnabled")
    private @Nullable Output remoteDebuggingEnabled;

    /**
     * @return Should Remote Debugging be enabled? Defaults to `false`.
     * 
     */
    public Optional> remoteDebuggingEnabled() {
        return Optional.ofNullable(this.remoteDebuggingEnabled);
    }

    /**
     * The Remote Debugging Version. Possible values include `VS2017`, `VS2019` and `VS2022`.
     * 
     */
    @Import(name="remoteDebuggingVersion")
    private @Nullable Output remoteDebuggingVersion;

    /**
     * @return The Remote Debugging Version. Possible values include `VS2017`, `VS2019` and `VS2022`.
     * 
     */
    public Optional> remoteDebuggingVersion() {
        return Optional.ofNullable(this.remoteDebuggingVersion);
    }

    /**
     * The Default action for traffic that does not match any `scm_ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
     * 
     */
    @Import(name="scmIpRestrictionDefaultAction")
    private @Nullable Output scmIpRestrictionDefaultAction;

    /**
     * @return The Default action for traffic that does not match any `scm_ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
     * 
     */
    public Optional> scmIpRestrictionDefaultAction() {
        return Optional.ofNullable(this.scmIpRestrictionDefaultAction);
    }

    /**
     * One or more `scm_ip_restriction` blocks as defined above.
     * 
     */
    @Import(name="scmIpRestrictions")
    private @Nullable Output> scmIpRestrictions;

    /**
     * @return One or more `scm_ip_restriction` blocks as defined above.
     * 
     */
    public Optional>> scmIpRestrictions() {
        return Optional.ofNullable(this.scmIpRestrictions);
    }

    /**
     * The configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
     * 
     */
    @Import(name="scmMinimumTlsVersion")
    private @Nullable Output scmMinimumTlsVersion;

    /**
     * @return The configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
     * 
     */
    public Optional> scmMinimumTlsVersion() {
        return Optional.ofNullable(this.scmMinimumTlsVersion);
    }

    @Import(name="scmType")
    private @Nullable Output scmType;

    public Optional> scmType() {
        return Optional.ofNullable(this.scmType);
    }

    /**
     * Should the Linux Web App `ip_restriction` configuration be used for the SCM also.
     * 
     */
    @Import(name="scmUseMainIpRestriction")
    private @Nullable Output scmUseMainIpRestriction;

    /**
     * @return Should the Linux Web App `ip_restriction` configuration be used for the SCM also.
     * 
     */
    public Optional> scmUseMainIpRestriction() {
        return Optional.ofNullable(this.scmUseMainIpRestriction);
    }

    /**
     * Should the Linux Web App use a 32-bit worker? Defaults to `true`.
     * 
     */
    @Import(name="use32BitWorker")
    private @Nullable Output use32BitWorker;

    /**
     * @return Should the Linux Web App use a 32-bit worker? Defaults to `true`.
     * 
     */
    public Optional> use32BitWorker() {
        return Optional.ofNullable(this.use32BitWorker);
    }

    /**
     * Should all outbound traffic have NAT Gateways, Network Security Groups and User Defined Routes applied? Defaults to `false`.
     * 
     */
    @Import(name="vnetRouteAllEnabled")
    private @Nullable Output vnetRouteAllEnabled;

    /**
     * @return Should all outbound traffic have NAT Gateways, Network Security Groups and User Defined Routes applied? Defaults to `false`.
     * 
     */
    public Optional> vnetRouteAllEnabled() {
        return Optional.ofNullable(this.vnetRouteAllEnabled);
    }

    /**
     * Should Web Sockets be enabled? Defaults to `false`.
     * 
     */
    @Import(name="websocketsEnabled")
    private @Nullable Output websocketsEnabled;

    /**
     * @return Should Web Sockets be enabled? Defaults to `false`.
     * 
     */
    public Optional> websocketsEnabled() {
        return Optional.ofNullable(this.websocketsEnabled);
    }

    /**
     * The number of Workers for this Linux App Service.
     * 
     */
    @Import(name="workerCount")
    private @Nullable Output workerCount;

    /**
     * @return The number of Workers for this Linux App Service.
     * 
     */
    public Optional> workerCount() {
        return Optional.ofNullable(this.workerCount);
    }

    private LinuxWebAppSiteConfigArgs() {}

    private LinuxWebAppSiteConfigArgs(LinuxWebAppSiteConfigArgs $) {
        this.alwaysOn = $.alwaysOn;
        this.apiDefinitionUrl = $.apiDefinitionUrl;
        this.apiManagementApiId = $.apiManagementApiId;
        this.appCommandLine = $.appCommandLine;
        this.applicationStack = $.applicationStack;
        this.autoHealSetting = $.autoHealSetting;
        this.containerRegistryManagedIdentityClientId = $.containerRegistryManagedIdentityClientId;
        this.containerRegistryUseManagedIdentity = $.containerRegistryUseManagedIdentity;
        this.cors = $.cors;
        this.defaultDocuments = $.defaultDocuments;
        this.detailedErrorLoggingEnabled = $.detailedErrorLoggingEnabled;
        this.ftpsState = $.ftpsState;
        this.healthCheckEvictionTimeInMin = $.healthCheckEvictionTimeInMin;
        this.healthCheckPath = $.healthCheckPath;
        this.http2Enabled = $.http2Enabled;
        this.ipRestrictionDefaultAction = $.ipRestrictionDefaultAction;
        this.ipRestrictions = $.ipRestrictions;
        this.linuxFxVersion = $.linuxFxVersion;
        this.loadBalancingMode = $.loadBalancingMode;
        this.localMysqlEnabled = $.localMysqlEnabled;
        this.managedPipelineMode = $.managedPipelineMode;
        this.minimumTlsVersion = $.minimumTlsVersion;
        this.remoteDebuggingEnabled = $.remoteDebuggingEnabled;
        this.remoteDebuggingVersion = $.remoteDebuggingVersion;
        this.scmIpRestrictionDefaultAction = $.scmIpRestrictionDefaultAction;
        this.scmIpRestrictions = $.scmIpRestrictions;
        this.scmMinimumTlsVersion = $.scmMinimumTlsVersion;
        this.scmType = $.scmType;
        this.scmUseMainIpRestriction = $.scmUseMainIpRestriction;
        this.use32BitWorker = $.use32BitWorker;
        this.vnetRouteAllEnabled = $.vnetRouteAllEnabled;
        this.websocketsEnabled = $.websocketsEnabled;
        this.workerCount = $.workerCount;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(LinuxWebAppSiteConfigArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private LinuxWebAppSiteConfigArgs $;

        public Builder() {
            $ = new LinuxWebAppSiteConfigArgs();
        }

        public Builder(LinuxWebAppSiteConfigArgs defaults) {
            $ = new LinuxWebAppSiteConfigArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param alwaysOn If this Linux Web App is Always On enabled. Defaults to `true`.
         * 
         * > **NOTE:** `always_on` must be explicitly set to `false` when using `Free`, `F1`, `D1`, or `Shared` Service Plans.
         * 
         * @return builder
         * 
         */
        public Builder alwaysOn(@Nullable Output alwaysOn) {
            $.alwaysOn = alwaysOn;
            return this;
        }

        /**
         * @param alwaysOn If this Linux Web App is Always On enabled. Defaults to `true`.
         * 
         * > **NOTE:** `always_on` must be explicitly set to `false` when using `Free`, `F1`, `D1`, or `Shared` Service Plans.
         * 
         * @return builder
         * 
         */
        public Builder alwaysOn(Boolean alwaysOn) {
            return alwaysOn(Output.of(alwaysOn));
        }

        /**
         * @param apiDefinitionUrl The URL to the API Definition for this Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder apiDefinitionUrl(@Nullable Output apiDefinitionUrl) {
            $.apiDefinitionUrl = apiDefinitionUrl;
            return this;
        }

        /**
         * @param apiDefinitionUrl The URL to the API Definition for this Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder apiDefinitionUrl(String apiDefinitionUrl) {
            return apiDefinitionUrl(Output.of(apiDefinitionUrl));
        }

        /**
         * @param apiManagementApiId The API Management API ID this Linux Web App is associated with.
         * 
         * @return builder
         * 
         */
        public Builder apiManagementApiId(@Nullable Output apiManagementApiId) {
            $.apiManagementApiId = apiManagementApiId;
            return this;
        }

        /**
         * @param apiManagementApiId The API Management API ID this Linux Web App is associated with.
         * 
         * @return builder
         * 
         */
        public Builder apiManagementApiId(String apiManagementApiId) {
            return apiManagementApiId(Output.of(apiManagementApiId));
        }

        /**
         * @param appCommandLine The App command line to launch.
         * 
         * @return builder
         * 
         */
        public Builder appCommandLine(@Nullable Output appCommandLine) {
            $.appCommandLine = appCommandLine;
            return this;
        }

        /**
         * @param appCommandLine The App command line to launch.
         * 
         * @return builder
         * 
         */
        public Builder appCommandLine(String appCommandLine) {
            return appCommandLine(Output.of(appCommandLine));
        }

        /**
         * @param applicationStack A `application_stack` block as defined above.
         * 
         * @return builder
         * 
         */
        public Builder applicationStack(@Nullable Output applicationStack) {
            $.applicationStack = applicationStack;
            return this;
        }

        /**
         * @param applicationStack A `application_stack` block as defined above.
         * 
         * @return builder
         * 
         */
        public Builder applicationStack(LinuxWebAppSiteConfigApplicationStackArgs applicationStack) {
            return applicationStack(Output.of(applicationStack));
        }

        /**
         * @param autoHealSetting A `auto_heal_setting` block as defined above. Required with `auto_heal`.
         * 
         * @return builder
         * 
         */
        public Builder autoHealSetting(@Nullable Output autoHealSetting) {
            $.autoHealSetting = autoHealSetting;
            return this;
        }

        /**
         * @param autoHealSetting A `auto_heal_setting` block as defined above. Required with `auto_heal`.
         * 
         * @return builder
         * 
         */
        public Builder autoHealSetting(LinuxWebAppSiteConfigAutoHealSettingArgs autoHealSetting) {
            return autoHealSetting(Output.of(autoHealSetting));
        }

        /**
         * @param containerRegistryManagedIdentityClientId The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry.
         * 
         * @return builder
         * 
         */
        public Builder containerRegistryManagedIdentityClientId(@Nullable Output containerRegistryManagedIdentityClientId) {
            $.containerRegistryManagedIdentityClientId = containerRegistryManagedIdentityClientId;
            return this;
        }

        /**
         * @param containerRegistryManagedIdentityClientId The Client ID of the Managed Service Identity to use for connections to the Azure Container Registry.
         * 
         * @return builder
         * 
         */
        public Builder containerRegistryManagedIdentityClientId(String containerRegistryManagedIdentityClientId) {
            return containerRegistryManagedIdentityClientId(Output.of(containerRegistryManagedIdentityClientId));
        }

        /**
         * @param containerRegistryUseManagedIdentity Should connections for Azure Container Registry use Managed Identity.
         * 
         * @return builder
         * 
         */
        public Builder containerRegistryUseManagedIdentity(@Nullable Output containerRegistryUseManagedIdentity) {
            $.containerRegistryUseManagedIdentity = containerRegistryUseManagedIdentity;
            return this;
        }

        /**
         * @param containerRegistryUseManagedIdentity Should connections for Azure Container Registry use Managed Identity.
         * 
         * @return builder
         * 
         */
        public Builder containerRegistryUseManagedIdentity(Boolean containerRegistryUseManagedIdentity) {
            return containerRegistryUseManagedIdentity(Output.of(containerRegistryUseManagedIdentity));
        }

        /**
         * @param cors A `cors` block as defined above.
         * 
         * @return builder
         * 
         */
        public Builder cors(@Nullable Output cors) {
            $.cors = cors;
            return this;
        }

        /**
         * @param cors A `cors` block as defined above.
         * 
         * @return builder
         * 
         */
        public Builder cors(LinuxWebAppSiteConfigCorsArgs cors) {
            return cors(Output.of(cors));
        }

        /**
         * @param defaultDocuments Specifies a list of Default Documents for the Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder defaultDocuments(@Nullable Output> defaultDocuments) {
            $.defaultDocuments = defaultDocuments;
            return this;
        }

        /**
         * @param defaultDocuments Specifies a list of Default Documents for the Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder defaultDocuments(List defaultDocuments) {
            return defaultDocuments(Output.of(defaultDocuments));
        }

        /**
         * @param defaultDocuments Specifies a list of Default Documents for the Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder defaultDocuments(String... defaultDocuments) {
            return defaultDocuments(List.of(defaultDocuments));
        }

        public Builder detailedErrorLoggingEnabled(@Nullable Output detailedErrorLoggingEnabled) {
            $.detailedErrorLoggingEnabled = detailedErrorLoggingEnabled;
            return this;
        }

        public Builder detailedErrorLoggingEnabled(Boolean detailedErrorLoggingEnabled) {
            return detailedErrorLoggingEnabled(Output.of(detailedErrorLoggingEnabled));
        }

        public Builder ftpsState(@Nullable Output ftpsState) {
            $.ftpsState = ftpsState;
            return this;
        }

        public Builder ftpsState(String ftpsState) {
            return ftpsState(Output.of(ftpsState));
        }

        /**
         * @param healthCheckEvictionTimeInMin The amount of time in minutes that a node can be unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Only valid in conjunction with `health_check_path`.
         * 
         * @return builder
         * 
         */
        public Builder healthCheckEvictionTimeInMin(@Nullable Output healthCheckEvictionTimeInMin) {
            $.healthCheckEvictionTimeInMin = healthCheckEvictionTimeInMin;
            return this;
        }

        /**
         * @param healthCheckEvictionTimeInMin The amount of time in minutes that a node can be unhealthy before being removed from the load balancer. Possible values are between `2` and `10`. Only valid in conjunction with `health_check_path`.
         * 
         * @return builder
         * 
         */
        public Builder healthCheckEvictionTimeInMin(Integer healthCheckEvictionTimeInMin) {
            return healthCheckEvictionTimeInMin(Output.of(healthCheckEvictionTimeInMin));
        }

        /**
         * @param healthCheckPath The path to the Health Check.
         * 
         * @return builder
         * 
         */
        public Builder healthCheckPath(@Nullable Output healthCheckPath) {
            $.healthCheckPath = healthCheckPath;
            return this;
        }

        /**
         * @param healthCheckPath The path to the Health Check.
         * 
         * @return builder
         * 
         */
        public Builder healthCheckPath(String healthCheckPath) {
            return healthCheckPath(Output.of(healthCheckPath));
        }

        /**
         * @param http2Enabled Should the HTTP2 be enabled?
         * 
         * @return builder
         * 
         */
        public Builder http2Enabled(@Nullable Output http2Enabled) {
            $.http2Enabled = http2Enabled;
            return this;
        }

        /**
         * @param http2Enabled Should the HTTP2 be enabled?
         * 
         * @return builder
         * 
         */
        public Builder http2Enabled(Boolean http2Enabled) {
            return http2Enabled(Output.of(http2Enabled));
        }

        /**
         * @param ipRestrictionDefaultAction The Default action for traffic that does not match any `ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
         * 
         * @return builder
         * 
         */
        public Builder ipRestrictionDefaultAction(@Nullable Output ipRestrictionDefaultAction) {
            $.ipRestrictionDefaultAction = ipRestrictionDefaultAction;
            return this;
        }

        /**
         * @param ipRestrictionDefaultAction The Default action for traffic that does not match any `ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
         * 
         * @return builder
         * 
         */
        public Builder ipRestrictionDefaultAction(String ipRestrictionDefaultAction) {
            return ipRestrictionDefaultAction(Output.of(ipRestrictionDefaultAction));
        }

        /**
         * @param ipRestrictions One or more `ip_restriction` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder ipRestrictions(@Nullable Output> ipRestrictions) {
            $.ipRestrictions = ipRestrictions;
            return this;
        }

        /**
         * @param ipRestrictions One or more `ip_restriction` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder ipRestrictions(List ipRestrictions) {
            return ipRestrictions(Output.of(ipRestrictions));
        }

        /**
         * @param ipRestrictions One or more `ip_restriction` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder ipRestrictions(LinuxWebAppSiteConfigIpRestrictionArgs... ipRestrictions) {
            return ipRestrictions(List.of(ipRestrictions));
        }

        public Builder linuxFxVersion(@Nullable Output linuxFxVersion) {
            $.linuxFxVersion = linuxFxVersion;
            return this;
        }

        public Builder linuxFxVersion(String linuxFxVersion) {
            return linuxFxVersion(Output.of(linuxFxVersion));
        }

        /**
         * @param loadBalancingMode The Site load balancing. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingMode(@Nullable Output loadBalancingMode) {
            $.loadBalancingMode = loadBalancingMode;
            return this;
        }

        /**
         * @param loadBalancingMode The Site load balancing. Possible values include: `WeightedRoundRobin`, `LeastRequests`, `LeastResponseTime`, `WeightedTotalTraffic`, `RequestHash`, `PerSiteRoundRobin`. Defaults to `LeastRequests` if omitted.
         * 
         * @return builder
         * 
         */
        public Builder loadBalancingMode(String loadBalancingMode) {
            return loadBalancingMode(Output.of(loadBalancingMode));
        }

        /**
         * @param localMysqlEnabled Use Local MySQL. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder localMysqlEnabled(@Nullable Output localMysqlEnabled) {
            $.localMysqlEnabled = localMysqlEnabled;
            return this;
        }

        /**
         * @param localMysqlEnabled Use Local MySQL. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder localMysqlEnabled(Boolean localMysqlEnabled) {
            return localMysqlEnabled(Output.of(localMysqlEnabled));
        }

        /**
         * @param managedPipelineMode Managed pipeline mode. Possible values include `Integrated`, and `Classic`. Defaults to `Integrated`.
         * 
         * @return builder
         * 
         */
        public Builder managedPipelineMode(@Nullable Output managedPipelineMode) {
            $.managedPipelineMode = managedPipelineMode;
            return this;
        }

        /**
         * @param managedPipelineMode Managed pipeline mode. Possible values include `Integrated`, and `Classic`. Defaults to `Integrated`.
         * 
         * @return builder
         * 
         */
        public Builder managedPipelineMode(String managedPipelineMode) {
            return managedPipelineMode(Output.of(managedPipelineMode));
        }

        /**
         * @param minimumTlsVersion The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
         * 
         * @return builder
         * 
         */
        public Builder minimumTlsVersion(@Nullable Output minimumTlsVersion) {
            $.minimumTlsVersion = minimumTlsVersion;
            return this;
        }

        /**
         * @param minimumTlsVersion The configures the minimum version of TLS required for SSL requests. Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
         * 
         * @return builder
         * 
         */
        public Builder minimumTlsVersion(String minimumTlsVersion) {
            return minimumTlsVersion(Output.of(minimumTlsVersion));
        }

        /**
         * @param remoteDebuggingEnabled Should Remote Debugging be enabled? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder remoteDebuggingEnabled(@Nullable Output remoteDebuggingEnabled) {
            $.remoteDebuggingEnabled = remoteDebuggingEnabled;
            return this;
        }

        /**
         * @param remoteDebuggingEnabled Should Remote Debugging be enabled? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder remoteDebuggingEnabled(Boolean remoteDebuggingEnabled) {
            return remoteDebuggingEnabled(Output.of(remoteDebuggingEnabled));
        }

        /**
         * @param remoteDebuggingVersion The Remote Debugging Version. Possible values include `VS2017`, `VS2019` and `VS2022`.
         * 
         * @return builder
         * 
         */
        public Builder remoteDebuggingVersion(@Nullable Output remoteDebuggingVersion) {
            $.remoteDebuggingVersion = remoteDebuggingVersion;
            return this;
        }

        /**
         * @param remoteDebuggingVersion The Remote Debugging Version. Possible values include `VS2017`, `VS2019` and `VS2022`.
         * 
         * @return builder
         * 
         */
        public Builder remoteDebuggingVersion(String remoteDebuggingVersion) {
            return remoteDebuggingVersion(Output.of(remoteDebuggingVersion));
        }

        /**
         * @param scmIpRestrictionDefaultAction The Default action for traffic that does not match any `scm_ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
         * 
         * @return builder
         * 
         */
        public Builder scmIpRestrictionDefaultAction(@Nullable Output scmIpRestrictionDefaultAction) {
            $.scmIpRestrictionDefaultAction = scmIpRestrictionDefaultAction;
            return this;
        }

        /**
         * @param scmIpRestrictionDefaultAction The Default action for traffic that does not match any `scm_ip_restriction` rule. possible values include `Allow` and `Deny`. Defaults to `Allow`.
         * 
         * @return builder
         * 
         */
        public Builder scmIpRestrictionDefaultAction(String scmIpRestrictionDefaultAction) {
            return scmIpRestrictionDefaultAction(Output.of(scmIpRestrictionDefaultAction));
        }

        /**
         * @param scmIpRestrictions One or more `scm_ip_restriction` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder scmIpRestrictions(@Nullable Output> scmIpRestrictions) {
            $.scmIpRestrictions = scmIpRestrictions;
            return this;
        }

        /**
         * @param scmIpRestrictions One or more `scm_ip_restriction` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder scmIpRestrictions(List scmIpRestrictions) {
            return scmIpRestrictions(Output.of(scmIpRestrictions));
        }

        /**
         * @param scmIpRestrictions One or more `scm_ip_restriction` blocks as defined above.
         * 
         * @return builder
         * 
         */
        public Builder scmIpRestrictions(LinuxWebAppSiteConfigScmIpRestrictionArgs... scmIpRestrictions) {
            return scmIpRestrictions(List.of(scmIpRestrictions));
        }

        /**
         * @param scmMinimumTlsVersion The configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
         * 
         * @return builder
         * 
         */
        public Builder scmMinimumTlsVersion(@Nullable Output scmMinimumTlsVersion) {
            $.scmMinimumTlsVersion = scmMinimumTlsVersion;
            return this;
        }

        /**
         * @param scmMinimumTlsVersion The configures the minimum version of TLS required for SSL requests to the SCM site Possible values include: `1.0`, `1.1`, and `1.2`. Defaults to `1.2`.
         * 
         * @return builder
         * 
         */
        public Builder scmMinimumTlsVersion(String scmMinimumTlsVersion) {
            return scmMinimumTlsVersion(Output.of(scmMinimumTlsVersion));
        }

        public Builder scmType(@Nullable Output scmType) {
            $.scmType = scmType;
            return this;
        }

        public Builder scmType(String scmType) {
            return scmType(Output.of(scmType));
        }

        /**
         * @param scmUseMainIpRestriction Should the Linux Web App `ip_restriction` configuration be used for the SCM also.
         * 
         * @return builder
         * 
         */
        public Builder scmUseMainIpRestriction(@Nullable Output scmUseMainIpRestriction) {
            $.scmUseMainIpRestriction = scmUseMainIpRestriction;
            return this;
        }

        /**
         * @param scmUseMainIpRestriction Should the Linux Web App `ip_restriction` configuration be used for the SCM also.
         * 
         * @return builder
         * 
         */
        public Builder scmUseMainIpRestriction(Boolean scmUseMainIpRestriction) {
            return scmUseMainIpRestriction(Output.of(scmUseMainIpRestriction));
        }

        /**
         * @param use32BitWorker Should the Linux Web App use a 32-bit worker? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder use32BitWorker(@Nullable Output use32BitWorker) {
            $.use32BitWorker = use32BitWorker;
            return this;
        }

        /**
         * @param use32BitWorker Should the Linux Web App use a 32-bit worker? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder use32BitWorker(Boolean use32BitWorker) {
            return use32BitWorker(Output.of(use32BitWorker));
        }

        /**
         * @param vnetRouteAllEnabled Should all outbound traffic have NAT Gateways, Network Security Groups and User Defined Routes applied? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder vnetRouteAllEnabled(@Nullable Output vnetRouteAllEnabled) {
            $.vnetRouteAllEnabled = vnetRouteAllEnabled;
            return this;
        }

        /**
         * @param vnetRouteAllEnabled Should all outbound traffic have NAT Gateways, Network Security Groups and User Defined Routes applied? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder vnetRouteAllEnabled(Boolean vnetRouteAllEnabled) {
            return vnetRouteAllEnabled(Output.of(vnetRouteAllEnabled));
        }

        /**
         * @param websocketsEnabled Should Web Sockets be enabled? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder websocketsEnabled(@Nullable Output websocketsEnabled) {
            $.websocketsEnabled = websocketsEnabled;
            return this;
        }

        /**
         * @param websocketsEnabled Should Web Sockets be enabled? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder websocketsEnabled(Boolean websocketsEnabled) {
            return websocketsEnabled(Output.of(websocketsEnabled));
        }

        /**
         * @param workerCount The number of Workers for this Linux App Service.
         * 
         * @return builder
         * 
         */
        public Builder workerCount(@Nullable Output workerCount) {
            $.workerCount = workerCount;
            return this;
        }

        /**
         * @param workerCount The number of Workers for this Linux App Service.
         * 
         * @return builder
         * 
         */
        public Builder workerCount(Integer workerCount) {
            return workerCount(Output.of(workerCount));
        }

        public LinuxWebAppSiteConfigArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy