com.pulumi.azure.appservice.outputs.FunctionAppSiteConfig Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure Show documentation
Show all versions of azure Show documentation
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.
// *** 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;
}
}
}