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

com.pulumi.azure.appservice.outputs.FunctionAppSiteConfig 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.outputs;

import com.pulumi.azure.appservice.outputs.FunctionAppSiteConfigCors;
import com.pulumi.azure.appservice.outputs.FunctionAppSiteConfigIpRestriction;
import com.pulumi.azure.appservice.outputs.FunctionAppSiteConfigScmIpRestriction;
import com.pulumi.core.annotations.CustomType;
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;

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

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

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

    public static Builder builder(FunctionAppSiteConfig defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable Boolean alwaysOn;
        private @Nullable Integer appScaleLimit;
        private @Nullable String autoSwapSlotName;
        private @Nullable FunctionAppSiteConfigCors cors;
        private @Nullable String dotnetFrameworkVersion;
        private @Nullable Integer elasticInstanceMinimum;
        private @Nullable String ftpsState;
        private @Nullable String healthCheckPath;
        private @Nullable Boolean http2Enabled;
        private @Nullable List ipRestrictions;
        private @Nullable String javaVersion;
        private @Nullable String linuxFxVersion;
        private @Nullable String minTlsVersion;
        private @Nullable Integer preWarmedInstanceCount;
        private @Nullable Boolean runtimeScaleMonitoringEnabled;
        private @Nullable List scmIpRestrictions;
        private @Nullable String scmType;
        private @Nullable Boolean scmUseMainIpRestriction;
        private @Nullable Boolean use32BitWorkerProcess;
        private @Nullable Boolean vnetRouteAllEnabled;
        private @Nullable Boolean websocketsEnabled;
        public Builder() {}
        public Builder(FunctionAppSiteConfig defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.alwaysOn = defaults.alwaysOn;
    	      this.appScaleLimit = defaults.appScaleLimit;
    	      this.autoSwapSlotName = defaults.autoSwapSlotName;
    	      this.cors = defaults.cors;
    	      this.dotnetFrameworkVersion = defaults.dotnetFrameworkVersion;
    	      this.elasticInstanceMinimum = defaults.elasticInstanceMinimum;
    	      this.ftpsState = defaults.ftpsState;
    	      this.healthCheckPath = defaults.healthCheckPath;
    	      this.http2Enabled = defaults.http2Enabled;
    	      this.ipRestrictions = defaults.ipRestrictions;
    	      this.javaVersion = defaults.javaVersion;
    	      this.linuxFxVersion = defaults.linuxFxVersion;
    	      this.minTlsVersion = defaults.minTlsVersion;
    	      this.preWarmedInstanceCount = defaults.preWarmedInstanceCount;
    	      this.runtimeScaleMonitoringEnabled = defaults.runtimeScaleMonitoringEnabled;
    	      this.scmIpRestrictions = defaults.scmIpRestrictions;
    	      this.scmType = defaults.scmType;
    	      this.scmUseMainIpRestriction = defaults.scmUseMainIpRestriction;
    	      this.use32BitWorkerProcess = defaults.use32BitWorkerProcess;
    	      this.vnetRouteAllEnabled = defaults.vnetRouteAllEnabled;
    	      this.websocketsEnabled = defaults.websocketsEnabled;
        }

        @CustomType.Setter
        public Builder alwaysOn(@Nullable Boolean alwaysOn) {

            this.alwaysOn = alwaysOn;
            return this;
        }
        @CustomType.Setter
        public Builder appScaleLimit(@Nullable Integer appScaleLimit) {

            this.appScaleLimit = appScaleLimit;
            return this;
        }
        @CustomType.Setter
        public Builder autoSwapSlotName(@Nullable String autoSwapSlotName) {

            this.autoSwapSlotName = autoSwapSlotName;
            return this;
        }
        @CustomType.Setter
        public Builder cors(@Nullable FunctionAppSiteConfigCors cors) {

            this.cors = cors;
            return this;
        }
        @CustomType.Setter
        public Builder dotnetFrameworkVersion(@Nullable String dotnetFrameworkVersion) {

            this.dotnetFrameworkVersion = dotnetFrameworkVersion;
            return this;
        }
        @CustomType.Setter
        public Builder elasticInstanceMinimum(@Nullable Integer elasticInstanceMinimum) {

            this.elasticInstanceMinimum = elasticInstanceMinimum;
            return this;
        }
        @CustomType.Setter
        public Builder ftpsState(@Nullable String ftpsState) {

            this.ftpsState = ftpsState;
            return this;
        }
        @CustomType.Setter
        public Builder healthCheckPath(@Nullable String healthCheckPath) {

            this.healthCheckPath = healthCheckPath;
            return this;
        }
        @CustomType.Setter
        public Builder http2Enabled(@Nullable Boolean http2Enabled) {

            this.http2Enabled = http2Enabled;
            return this;
        }
        @CustomType.Setter
        public Builder ipRestrictions(@Nullable List ipRestrictions) {

            this.ipRestrictions = ipRestrictions;
            return this;
        }
        public Builder ipRestrictions(FunctionAppSiteConfigIpRestriction... ipRestrictions) {
            return ipRestrictions(List.of(ipRestrictions));
        }
        @CustomType.Setter
        public Builder javaVersion(@Nullable String javaVersion) {

            this.javaVersion = javaVersion;
            return this;
        }
        @CustomType.Setter
        public Builder linuxFxVersion(@Nullable String linuxFxVersion) {

            this.linuxFxVersion = linuxFxVersion;
            return this;
        }
        @CustomType.Setter
        public Builder minTlsVersion(@Nullable String minTlsVersion) {

            this.minTlsVersion = minTlsVersion;
            return this;
        }
        @CustomType.Setter
        public Builder preWarmedInstanceCount(@Nullable Integer preWarmedInstanceCount) {

            this.preWarmedInstanceCount = preWarmedInstanceCount;
            return this;
        }
        @CustomType.Setter
        public Builder runtimeScaleMonitoringEnabled(@Nullable Boolean runtimeScaleMonitoringEnabled) {

            this.runtimeScaleMonitoringEnabled = runtimeScaleMonitoringEnabled;
            return this;
        }
        @CustomType.Setter
        public Builder scmIpRestrictions(@Nullable List scmIpRestrictions) {

            this.scmIpRestrictions = scmIpRestrictions;
            return this;
        }
        public Builder scmIpRestrictions(FunctionAppSiteConfigScmIpRestriction... scmIpRestrictions) {
            return scmIpRestrictions(List.of(scmIpRestrictions));
        }
        @CustomType.Setter
        public Builder scmType(@Nullable String scmType) {

            this.scmType = scmType;
            return this;
        }
        @CustomType.Setter
        public Builder scmUseMainIpRestriction(@Nullable Boolean scmUseMainIpRestriction) {

            this.scmUseMainIpRestriction = scmUseMainIpRestriction;
            return this;
        }
        @CustomType.Setter
        public Builder use32BitWorkerProcess(@Nullable Boolean use32BitWorkerProcess) {

            this.use32BitWorkerProcess = use32BitWorkerProcess;
            return this;
        }
        @CustomType.Setter
        public Builder vnetRouteAllEnabled(@Nullable Boolean vnetRouteAllEnabled) {

            this.vnetRouteAllEnabled = vnetRouteAllEnabled;
            return this;
        }
        @CustomType.Setter
        public Builder websocketsEnabled(@Nullable Boolean websocketsEnabled) {

            this.websocketsEnabled = websocketsEnabled;
            return this;
        }
        public FunctionAppSiteConfig build() {
            final var _resultValue = new FunctionAppSiteConfig();
            _resultValue.alwaysOn = alwaysOn;
            _resultValue.appScaleLimit = appScaleLimit;
            _resultValue.autoSwapSlotName = autoSwapSlotName;
            _resultValue.cors = cors;
            _resultValue.dotnetFrameworkVersion = dotnetFrameworkVersion;
            _resultValue.elasticInstanceMinimum = elasticInstanceMinimum;
            _resultValue.ftpsState = ftpsState;
            _resultValue.healthCheckPath = healthCheckPath;
            _resultValue.http2Enabled = http2Enabled;
            _resultValue.ipRestrictions = ipRestrictions;
            _resultValue.javaVersion = javaVersion;
            _resultValue.linuxFxVersion = linuxFxVersion;
            _resultValue.minTlsVersion = minTlsVersion;
            _resultValue.preWarmedInstanceCount = preWarmedInstanceCount;
            _resultValue.runtimeScaleMonitoringEnabled = runtimeScaleMonitoringEnabled;
            _resultValue.scmIpRestrictions = scmIpRestrictions;
            _resultValue.scmType = scmType;
            _resultValue.scmUseMainIpRestriction = scmUseMainIpRestriction;
            _resultValue.use32BitWorkerProcess = use32BitWorkerProcess;
            _resultValue.vnetRouteAllEnabled = vnetRouteAllEnabled;
            _resultValue.websocketsEnabled = websocketsEnabled;
            return _resultValue;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy