All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.azure.appservice.LinuxFunctionAppArgs 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.
// *** 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;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppAuthSettingsArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppAuthSettingsV2Args;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppBackupArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppConnectionStringArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppIdentityArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppSiteConfigArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppStickySettingsArgs;
import com.pulumi.azure.appservice.inputs.LinuxFunctionAppStorageAccountArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class LinuxFunctionAppArgs extends com.pulumi.resources.ResourceArgs {
public static final LinuxFunctionAppArgs Empty = new LinuxFunctionAppArgs();
/**
* A map of key-value pairs for [App
* Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.
*
*/
@Import(name="appSettings")
private @Nullable Output> appSettings;
/**
* @return A map of key-value pairs for [App
* Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.
*
*/
public Optional>> appSettings() {
return Optional.ofNullable(this.appSettings);
}
/**
* A `auth_settings` block as defined below.
*
*/
@Import(name="authSettings")
private @Nullable Output authSettings;
/**
* @return A `auth_settings` block as defined below.
*
*/
public Optional> authSettings() {
return Optional.ofNullable(this.authSettings);
}
/**
* An `auth_settings_v2` block as defined below.
*
*/
@Import(name="authSettingsV2")
private @Nullable Output authSettingsV2;
/**
* @return An `auth_settings_v2` block as defined below.
*
*/
public Optional> authSettingsV2() {
return Optional.ofNullable(this.authSettingsV2);
}
/**
* A `backup` block as defined below.
*
*/
@Import(name="backup")
private @Nullable Output backup;
/**
* @return A `backup` block as defined below.
*
*/
public Optional> backup() {
return Optional.ofNullable(this.backup);
}
/**
* Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting. Defaults to `true`.
*
*/
@Import(name="builtinLoggingEnabled")
private @Nullable Output builtinLoggingEnabled;
/**
* @return Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting. Defaults to `true`.
*
*/
public Optional> builtinLoggingEnabled() {
return Optional.ofNullable(this.builtinLoggingEnabled);
}
/**
* Should the function app use Client Certificates.
*
*/
@Import(name="clientCertificateEnabled")
private @Nullable Output clientCertificateEnabled;
/**
* @return Should the function app use Client Certificates.
*
*/
public Optional> clientCertificateEnabled() {
return Optional.ofNullable(this.clientCertificateEnabled);
}
/**
* Paths to exclude when using client certificates, separated by ;
*
*/
@Import(name="clientCertificateExclusionPaths")
private @Nullable Output clientCertificateExclusionPaths;
/**
* @return Paths to exclude when using client certificates, separated by ;
*
*/
public Optional> clientCertificateExclusionPaths() {
return Optional.ofNullable(this.clientCertificateExclusionPaths);
}
/**
* The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. Defaults to `Optional`.
*
*/
@Import(name="clientCertificateMode")
private @Nullable Output clientCertificateMode;
/**
* @return The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. Defaults to `Optional`.
*
*/
public Optional> clientCertificateMode() {
return Optional.ofNullable(this.clientCertificateMode);
}
/**
* One or more `connection_string` blocks as defined below.
*
*/
@Import(name="connectionStrings")
private @Nullable Output> connectionStrings;
/**
* @return One or more `connection_string` blocks as defined below.
*
*/
public Optional>> connectionStrings() {
return Optional.ofNullable(this.connectionStrings);
}
/**
* Should the settings for linking the Function App to storage be suppressed.
*
*/
@Import(name="contentShareForceDisabled")
private @Nullable Output contentShareForceDisabled;
/**
* @return Should the settings for linking the Function App to storage be suppressed.
*
*/
public Optional> contentShareForceDisabled() {
return Optional.ofNullable(this.contentShareForceDisabled);
}
/**
* The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.
*
*/
@Import(name="dailyMemoryTimeQuota")
private @Nullable Output dailyMemoryTimeQuota;
/**
* @return The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.
*
*/
public Optional> dailyMemoryTimeQuota() {
return Optional.ofNullable(this.dailyMemoryTimeQuota);
}
/**
* Is the Function App enabled? Defaults to `true`.
*
*/
@Import(name="enabled")
private @Nullable Output enabled;
/**
* @return Is the Function App enabled? Defaults to `true`.
*
*/
public Optional> enabled() {
return Optional.ofNullable(this.enabled);
}
/**
* Should the default FTP Basic Authentication publishing profile be enabled. Defaults to `true`.
*
*/
@Import(name="ftpPublishBasicAuthenticationEnabled")
private @Nullable Output ftpPublishBasicAuthenticationEnabled;
/**
* @return Should the default FTP Basic Authentication publishing profile be enabled. Defaults to `true`.
*
*/
public Optional> ftpPublishBasicAuthenticationEnabled() {
return Optional.ofNullable(this.ftpPublishBasicAuthenticationEnabled);
}
/**
* The runtime version associated with the Function App. Defaults to `~4`.
*
*/
@Import(name="functionsExtensionVersion")
private @Nullable Output functionsExtensionVersion;
/**
* @return The runtime version associated with the Function App. Defaults to `~4`.
*
*/
public Optional> functionsExtensionVersion() {
return Optional.ofNullable(this.functionsExtensionVersion);
}
/**
* Can the Function App only be accessed via HTTPS? Defaults to `false`.
*
*/
@Import(name="httpsOnly")
private @Nullable Output httpsOnly;
/**
* @return Can the Function App only be accessed via HTTPS? Defaults to `false`.
*
*/
public Optional> httpsOnly() {
return Optional.ofNullable(this.httpsOnly);
}
/**
* A `identity` block as defined below.
*
*/
@Import(name="identity")
private @Nullable Output identity;
/**
* @return A `identity` block as defined below.
*
*/
public Optional> identity() {
return Optional.ofNullable(this.identity);
}
/**
* The User Assigned Identity ID used for accessing KeyVault secrets. The identity must be assigned to the application in the `identity` block. [For more information see - Access vaults with a user-assigned identity](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#access-vaults-with-a-user-assigned-identity)
*
*/
@Import(name="keyVaultReferenceIdentityId")
private @Nullable Output keyVaultReferenceIdentityId;
/**
* @return The User Assigned Identity ID used for accessing KeyVault secrets. The identity must be assigned to the application in the `identity` block. [For more information see - Access vaults with a user-assigned identity](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#access-vaults-with-a-user-assigned-identity)
*
*/
public Optional> keyVaultReferenceIdentityId() {
return Optional.ofNullable(this.keyVaultReferenceIdentityId);
}
/**
* The Azure Region where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
*/
@Import(name="location")
private @Nullable Output location;
/**
* @return The Azure Region where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
*/
public Optional> location() {
return Optional.ofNullable(this.location);
}
/**
* The name which should be used for this Linux Function App. Changing this forces a new Linux Function App to be created. Limit the function name to 32 characters to avoid naming collisions. For more information about [Function App naming rule](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftweb) and [Host ID Collisions](https://github.com/Azure/azure-functions-host/wiki/Host-IDs#host-id-collisions)
*
*/
@Import(name="name")
private @Nullable Output name;
/**
* @return The name which should be used for this Linux Function App. Changing this forces a new Linux Function App to be created. Limit the function name to 32 characters to avoid naming collisions. For more information about [Function App naming rule](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftweb) and [Host ID Collisions](https://github.com/Azure/azure-functions-host/wiki/Host-IDs#host-id-collisions)
*
*/
public Optional> name() {
return Optional.ofNullable(this.name);
}
/**
* Should public network access be enabled for the Function App. Defaults to `true`.
*
*/
@Import(name="publicNetworkAccessEnabled")
private @Nullable Output publicNetworkAccessEnabled;
/**
* @return Should public network access be enabled for the Function App. Defaults to `true`.
*
*/
public Optional> publicNetworkAccessEnabled() {
return Optional.ofNullable(this.publicNetworkAccessEnabled);
}
/**
* The name of the Resource Group where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
*/
@Import(name="resourceGroupName", required=true)
private Output resourceGroupName;
/**
* @return The name of the Resource Group where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
*/
public Output resourceGroupName() {
return this.resourceGroupName;
}
/**
* The ID of the App Service Plan within which to create this Function App.
*
*/
@Import(name="servicePlanId", required=true)
private Output servicePlanId;
/**
* @return The ID of the App Service Plan within which to create this Function App.
*
*/
public Output servicePlanId() {
return this.servicePlanId;
}
/**
* A `site_config` block as defined below.
*
*/
@Import(name="siteConfig", required=true)
private Output siteConfig;
/**
* @return A `site_config` block as defined below.
*
*/
public Output siteConfig() {
return this.siteConfig;
}
/**
* A `sticky_settings` block as defined below.
*
*/
@Import(name="stickySettings")
private @Nullable Output stickySettings;
/**
* @return A `sticky_settings` block as defined below.
*
*/
public Optional> stickySettings() {
return Optional.ofNullable(this.stickySettings);
}
/**
* The access key which will be used to access the backend storage account for the Function App. Conflicts with `storage_uses_managed_identity`.
*
*/
@Import(name="storageAccountAccessKey")
private @Nullable Output storageAccountAccessKey;
/**
* @return The access key which will be used to access the backend storage account for the Function App. Conflicts with `storage_uses_managed_identity`.
*
*/
public Optional> storageAccountAccessKey() {
return Optional.ofNullable(this.storageAccountAccessKey);
}
/**
* The backend storage account name which will be used by this Function App.
*
*/
@Import(name="storageAccountName")
private @Nullable Output storageAccountName;
/**
* @return The backend storage account name which will be used by this Function App.
*
*/
public Optional> storageAccountName() {
return Optional.ofNullable(this.storageAccountName);
}
/**
* One or more `storage_account` blocks as defined below.
*
*/
@Import(name="storageAccounts")
private @Nullable Output> storageAccounts;
/**
* @return One or more `storage_account` blocks as defined below.
*
*/
public Optional>> storageAccounts() {
return Optional.ofNullable(this.storageAccounts);
}
/**
* The Key Vault Secret ID, optionally including version, that contains the Connection String to connect to the storage account for this Function App.
*
* > **NOTE:** `storage_key_vault_secret_id` cannot be used with `storage_account_name`.
*
* > **NOTE:** `storage_key_vault_secret_id` used without a version will use the latest version of the secret, however, the service can take up to 24h to pick up a rotation of the latest version. See the [official docs](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#rotation) for more information.
*
*/
@Import(name="storageKeyVaultSecretId")
private @Nullable Output storageKeyVaultSecretId;
/**
* @return The Key Vault Secret ID, optionally including version, that contains the Connection String to connect to the storage account for this Function App.
*
* > **NOTE:** `storage_key_vault_secret_id` cannot be used with `storage_account_name`.
*
* > **NOTE:** `storage_key_vault_secret_id` used without a version will use the latest version of the secret, however, the service can take up to 24h to pick up a rotation of the latest version. See the [official docs](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#rotation) for more information.
*
*/
public Optional> storageKeyVaultSecretId() {
return Optional.ofNullable(this.storageKeyVaultSecretId);
}
/**
* Should the Function App use Managed Identity to access the storage account. Conflicts with `storage_account_access_key`.
*
* > **NOTE:** One of `storage_account_access_key` or `storage_uses_managed_identity` must be specified when using `storage_account_name`.
*
*/
@Import(name="storageUsesManagedIdentity")
private @Nullable Output storageUsesManagedIdentity;
/**
* @return Should the Function App use Managed Identity to access the storage account. Conflicts with `storage_account_access_key`.
*
* > **NOTE:** One of `storage_account_access_key` or `storage_uses_managed_identity` must be specified when using `storage_account_name`.
*
*/
public Optional> storageUsesManagedIdentity() {
return Optional.ofNullable(this.storageUsesManagedIdentity);
}
/**
* A mapping of tags which should be assigned to the Linux Function App.
*
*/
@Import(name="tags")
private @Nullable Output> tags;
/**
* @return A mapping of tags which should be assigned to the Linux Function App.
*
*/
public Optional>> tags() {
return Optional.ofNullable(this.tags);
}
@Import(name="virtualNetworkSubnetId")
private @Nullable Output virtualNetworkSubnetId;
public Optional> virtualNetworkSubnetId() {
return Optional.ofNullable(this.virtualNetworkSubnetId);
}
/**
* Is container image pull over virtual network enabled? Defaults to `false`.
*
*/
@Import(name="vnetImagePullEnabled")
private @Nullable Output vnetImagePullEnabled;
/**
* @return Is container image pull over virtual network enabled? Defaults to `false`.
*
*/
public Optional> vnetImagePullEnabled() {
return Optional.ofNullable(this.vnetImagePullEnabled);
}
/**
* Should the default WebDeploy Basic Authentication publishing credentials enabled. Defaults to `true`.
*
* > **NOTE:** Setting this value to true will disable the ability to use `zip_deploy_file` which currently relies on the default publishing profile.
*
*/
@Import(name="webdeployPublishBasicAuthenticationEnabled")
private @Nullable Output webdeployPublishBasicAuthenticationEnabled;
/**
* @return Should the default WebDeploy Basic Authentication publishing credentials enabled. Defaults to `true`.
*
* > **NOTE:** Setting this value to true will disable the ability to use `zip_deploy_file` which currently relies on the default publishing profile.
*
*/
public Optional> webdeployPublishBasicAuthenticationEnabled() {
return Optional.ofNullable(this.webdeployPublishBasicAuthenticationEnabled);
}
/**
* The local path and filename of the Zip packaged application to deploy to this Linux Function App.
*
* > **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`. Refer to the [Azure docs](https://learn.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies) for further details.
*
*/
@Import(name="zipDeployFile")
private @Nullable Output zipDeployFile;
/**
* @return The local path and filename of the Zip packaged application to deploy to this Linux Function App.
*
* > **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`. Refer to the [Azure docs](https://learn.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies) for further details.
*
*/
public Optional> zipDeployFile() {
return Optional.ofNullable(this.zipDeployFile);
}
private LinuxFunctionAppArgs() {}
private LinuxFunctionAppArgs(LinuxFunctionAppArgs $) {
this.appSettings = $.appSettings;
this.authSettings = $.authSettings;
this.authSettingsV2 = $.authSettingsV2;
this.backup = $.backup;
this.builtinLoggingEnabled = $.builtinLoggingEnabled;
this.clientCertificateEnabled = $.clientCertificateEnabled;
this.clientCertificateExclusionPaths = $.clientCertificateExclusionPaths;
this.clientCertificateMode = $.clientCertificateMode;
this.connectionStrings = $.connectionStrings;
this.contentShareForceDisabled = $.contentShareForceDisabled;
this.dailyMemoryTimeQuota = $.dailyMemoryTimeQuota;
this.enabled = $.enabled;
this.ftpPublishBasicAuthenticationEnabled = $.ftpPublishBasicAuthenticationEnabled;
this.functionsExtensionVersion = $.functionsExtensionVersion;
this.httpsOnly = $.httpsOnly;
this.identity = $.identity;
this.keyVaultReferenceIdentityId = $.keyVaultReferenceIdentityId;
this.location = $.location;
this.name = $.name;
this.publicNetworkAccessEnabled = $.publicNetworkAccessEnabled;
this.resourceGroupName = $.resourceGroupName;
this.servicePlanId = $.servicePlanId;
this.siteConfig = $.siteConfig;
this.stickySettings = $.stickySettings;
this.storageAccountAccessKey = $.storageAccountAccessKey;
this.storageAccountName = $.storageAccountName;
this.storageAccounts = $.storageAccounts;
this.storageKeyVaultSecretId = $.storageKeyVaultSecretId;
this.storageUsesManagedIdentity = $.storageUsesManagedIdentity;
this.tags = $.tags;
this.virtualNetworkSubnetId = $.virtualNetworkSubnetId;
this.vnetImagePullEnabled = $.vnetImagePullEnabled;
this.webdeployPublishBasicAuthenticationEnabled = $.webdeployPublishBasicAuthenticationEnabled;
this.zipDeployFile = $.zipDeployFile;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(LinuxFunctionAppArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private LinuxFunctionAppArgs $;
public Builder() {
$ = new LinuxFunctionAppArgs();
}
public Builder(LinuxFunctionAppArgs defaults) {
$ = new LinuxFunctionAppArgs(Objects.requireNonNull(defaults));
}
/**
* @param appSettings A map of key-value pairs for [App
* Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.
*
* @return builder
*
*/
public Builder appSettings(@Nullable Output> appSettings) {
$.appSettings = appSettings;
return this;
}
/**
* @param appSettings A map of key-value pairs for [App
* Settings](https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings) and custom values.
*
* @return builder
*
*/
public Builder appSettings(Map appSettings) {
return appSettings(Output.of(appSettings));
}
/**
* @param authSettings A `auth_settings` block as defined below.
*
* @return builder
*
*/
public Builder authSettings(@Nullable Output authSettings) {
$.authSettings = authSettings;
return this;
}
/**
* @param authSettings A `auth_settings` block as defined below.
*
* @return builder
*
*/
public Builder authSettings(LinuxFunctionAppAuthSettingsArgs authSettings) {
return authSettings(Output.of(authSettings));
}
/**
* @param authSettingsV2 An `auth_settings_v2` block as defined below.
*
* @return builder
*
*/
public Builder authSettingsV2(@Nullable Output authSettingsV2) {
$.authSettingsV2 = authSettingsV2;
return this;
}
/**
* @param authSettingsV2 An `auth_settings_v2` block as defined below.
*
* @return builder
*
*/
public Builder authSettingsV2(LinuxFunctionAppAuthSettingsV2Args authSettingsV2) {
return authSettingsV2(Output.of(authSettingsV2));
}
/**
* @param backup A `backup` block as defined below.
*
* @return builder
*
*/
public Builder backup(@Nullable Output backup) {
$.backup = backup;
return this;
}
/**
* @param backup A `backup` block as defined below.
*
* @return builder
*
*/
public Builder backup(LinuxFunctionAppBackupArgs backup) {
return backup(Output.of(backup));
}
/**
* @param builtinLoggingEnabled Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting. Defaults to `true`.
*
* @return builder
*
*/
public Builder builtinLoggingEnabled(@Nullable Output builtinLoggingEnabled) {
$.builtinLoggingEnabled = builtinLoggingEnabled;
return this;
}
/**
* @param builtinLoggingEnabled Should built in logging be enabled. Configures `AzureWebJobsDashboard` app setting based on the configured storage setting. Defaults to `true`.
*
* @return builder
*
*/
public Builder builtinLoggingEnabled(Boolean builtinLoggingEnabled) {
return builtinLoggingEnabled(Output.of(builtinLoggingEnabled));
}
/**
* @param clientCertificateEnabled Should the function app use Client Certificates.
*
* @return builder
*
*/
public Builder clientCertificateEnabled(@Nullable Output clientCertificateEnabled) {
$.clientCertificateEnabled = clientCertificateEnabled;
return this;
}
/**
* @param clientCertificateEnabled Should the function app use Client Certificates.
*
* @return builder
*
*/
public Builder clientCertificateEnabled(Boolean clientCertificateEnabled) {
return clientCertificateEnabled(Output.of(clientCertificateEnabled));
}
/**
* @param clientCertificateExclusionPaths Paths to exclude when using client certificates, separated by ;
*
* @return builder
*
*/
public Builder clientCertificateExclusionPaths(@Nullable Output clientCertificateExclusionPaths) {
$.clientCertificateExclusionPaths = clientCertificateExclusionPaths;
return this;
}
/**
* @param clientCertificateExclusionPaths Paths to exclude when using client certificates, separated by ;
*
* @return builder
*
*/
public Builder clientCertificateExclusionPaths(String clientCertificateExclusionPaths) {
return clientCertificateExclusionPaths(Output.of(clientCertificateExclusionPaths));
}
/**
* @param clientCertificateMode The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. Defaults to `Optional`.
*
* @return builder
*
*/
public Builder clientCertificateMode(@Nullable Output clientCertificateMode) {
$.clientCertificateMode = clientCertificateMode;
return this;
}
/**
* @param clientCertificateMode The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. Defaults to `Optional`.
*
* @return builder
*
*/
public Builder clientCertificateMode(String clientCertificateMode) {
return clientCertificateMode(Output.of(clientCertificateMode));
}
/**
* @param connectionStrings One or more `connection_string` blocks as defined below.
*
* @return builder
*
*/
public Builder connectionStrings(@Nullable Output> connectionStrings) {
$.connectionStrings = connectionStrings;
return this;
}
/**
* @param connectionStrings One or more `connection_string` blocks as defined below.
*
* @return builder
*
*/
public Builder connectionStrings(List connectionStrings) {
return connectionStrings(Output.of(connectionStrings));
}
/**
* @param connectionStrings One or more `connection_string` blocks as defined below.
*
* @return builder
*
*/
public Builder connectionStrings(LinuxFunctionAppConnectionStringArgs... connectionStrings) {
return connectionStrings(List.of(connectionStrings));
}
/**
* @param contentShareForceDisabled Should the settings for linking the Function App to storage be suppressed.
*
* @return builder
*
*/
public Builder contentShareForceDisabled(@Nullable Output contentShareForceDisabled) {
$.contentShareForceDisabled = contentShareForceDisabled;
return this;
}
/**
* @param contentShareForceDisabled Should the settings for linking the Function App to storage be suppressed.
*
* @return builder
*
*/
public Builder contentShareForceDisabled(Boolean contentShareForceDisabled) {
return contentShareForceDisabled(Output.of(contentShareForceDisabled));
}
/**
* @param dailyMemoryTimeQuota The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.
*
* @return builder
*
*/
public Builder dailyMemoryTimeQuota(@Nullable Output dailyMemoryTimeQuota) {
$.dailyMemoryTimeQuota = dailyMemoryTimeQuota;
return this;
}
/**
* @param dailyMemoryTimeQuota The amount of memory in gigabyte-seconds that your application is allowed to consume per day. Setting this value only affects function apps under the consumption plan. Defaults to `0`.
*
* @return builder
*
*/
public Builder dailyMemoryTimeQuota(Integer dailyMemoryTimeQuota) {
return dailyMemoryTimeQuota(Output.of(dailyMemoryTimeQuota));
}
/**
* @param enabled Is the Function App enabled? Defaults to `true`.
*
* @return builder
*
*/
public Builder enabled(@Nullable Output enabled) {
$.enabled = enabled;
return this;
}
/**
* @param enabled Is the Function App enabled? Defaults to `true`.
*
* @return builder
*
*/
public Builder enabled(Boolean enabled) {
return enabled(Output.of(enabled));
}
/**
* @param ftpPublishBasicAuthenticationEnabled Should the default FTP Basic Authentication publishing profile be enabled. Defaults to `true`.
*
* @return builder
*
*/
public Builder ftpPublishBasicAuthenticationEnabled(@Nullable Output ftpPublishBasicAuthenticationEnabled) {
$.ftpPublishBasicAuthenticationEnabled = ftpPublishBasicAuthenticationEnabled;
return this;
}
/**
* @param ftpPublishBasicAuthenticationEnabled Should the default FTP Basic Authentication publishing profile be enabled. Defaults to `true`.
*
* @return builder
*
*/
public Builder ftpPublishBasicAuthenticationEnabled(Boolean ftpPublishBasicAuthenticationEnabled) {
return ftpPublishBasicAuthenticationEnabled(Output.of(ftpPublishBasicAuthenticationEnabled));
}
/**
* @param functionsExtensionVersion The runtime version associated with the Function App. Defaults to `~4`.
*
* @return builder
*
*/
public Builder functionsExtensionVersion(@Nullable Output functionsExtensionVersion) {
$.functionsExtensionVersion = functionsExtensionVersion;
return this;
}
/**
* @param functionsExtensionVersion The runtime version associated with the Function App. Defaults to `~4`.
*
* @return builder
*
*/
public Builder functionsExtensionVersion(String functionsExtensionVersion) {
return functionsExtensionVersion(Output.of(functionsExtensionVersion));
}
/**
* @param httpsOnly Can the Function App only be accessed via HTTPS? Defaults to `false`.
*
* @return builder
*
*/
public Builder httpsOnly(@Nullable Output httpsOnly) {
$.httpsOnly = httpsOnly;
return this;
}
/**
* @param httpsOnly Can the Function App only be accessed via HTTPS? Defaults to `false`.
*
* @return builder
*
*/
public Builder httpsOnly(Boolean httpsOnly) {
return httpsOnly(Output.of(httpsOnly));
}
/**
* @param identity A `identity` block as defined below.
*
* @return builder
*
*/
public Builder identity(@Nullable Output identity) {
$.identity = identity;
return this;
}
/**
* @param identity A `identity` block as defined below.
*
* @return builder
*
*/
public Builder identity(LinuxFunctionAppIdentityArgs identity) {
return identity(Output.of(identity));
}
/**
* @param keyVaultReferenceIdentityId The User Assigned Identity ID used for accessing KeyVault secrets. The identity must be assigned to the application in the `identity` block. [For more information see - Access vaults with a user-assigned identity](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#access-vaults-with-a-user-assigned-identity)
*
* @return builder
*
*/
public Builder keyVaultReferenceIdentityId(@Nullable Output keyVaultReferenceIdentityId) {
$.keyVaultReferenceIdentityId = keyVaultReferenceIdentityId;
return this;
}
/**
* @param keyVaultReferenceIdentityId The User Assigned Identity ID used for accessing KeyVault secrets. The identity must be assigned to the application in the `identity` block. [For more information see - Access vaults with a user-assigned identity](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#access-vaults-with-a-user-assigned-identity)
*
* @return builder
*
*/
public Builder keyVaultReferenceIdentityId(String keyVaultReferenceIdentityId) {
return keyVaultReferenceIdentityId(Output.of(keyVaultReferenceIdentityId));
}
/**
* @param location The Azure Region where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
* @return builder
*
*/
public Builder location(@Nullable Output location) {
$.location = location;
return this;
}
/**
* @param location The Azure Region where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
* @return builder
*
*/
public Builder location(String location) {
return location(Output.of(location));
}
/**
* @param name The name which should be used for this Linux Function App. Changing this forces a new Linux Function App to be created. Limit the function name to 32 characters to avoid naming collisions. For more information about [Function App naming rule](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftweb) and [Host ID Collisions](https://github.com/Azure/azure-functions-host/wiki/Host-IDs#host-id-collisions)
*
* @return builder
*
*/
public Builder name(@Nullable Output name) {
$.name = name;
return this;
}
/**
* @param name The name which should be used for this Linux Function App. Changing this forces a new Linux Function App to be created. Limit the function name to 32 characters to avoid naming collisions. For more information about [Function App naming rule](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftweb) and [Host ID Collisions](https://github.com/Azure/azure-functions-host/wiki/Host-IDs#host-id-collisions)
*
* @return builder
*
*/
public Builder name(String name) {
return name(Output.of(name));
}
/**
* @param publicNetworkAccessEnabled Should public network access be enabled for the Function App. Defaults to `true`.
*
* @return builder
*
*/
public Builder publicNetworkAccessEnabled(@Nullable Output publicNetworkAccessEnabled) {
$.publicNetworkAccessEnabled = publicNetworkAccessEnabled;
return this;
}
/**
* @param publicNetworkAccessEnabled Should public network access be enabled for the Function App. Defaults to `true`.
*
* @return builder
*
*/
public Builder publicNetworkAccessEnabled(Boolean publicNetworkAccessEnabled) {
return publicNetworkAccessEnabled(Output.of(publicNetworkAccessEnabled));
}
/**
* @param resourceGroupName The name of the Resource Group where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(Output resourceGroupName) {
$.resourceGroupName = resourceGroupName;
return this;
}
/**
* @param resourceGroupName The name of the Resource Group where the Linux Function App should exist. Changing this forces a new Linux Function App to be created.
*
* @return builder
*
*/
public Builder resourceGroupName(String resourceGroupName) {
return resourceGroupName(Output.of(resourceGroupName));
}
/**
* @param servicePlanId The ID of the App Service Plan within which to create this Function App.
*
* @return builder
*
*/
public Builder servicePlanId(Output servicePlanId) {
$.servicePlanId = servicePlanId;
return this;
}
/**
* @param servicePlanId The ID of the App Service Plan within which to create this Function App.
*
* @return builder
*
*/
public Builder servicePlanId(String servicePlanId) {
return servicePlanId(Output.of(servicePlanId));
}
/**
* @param siteConfig A `site_config` block as defined below.
*
* @return builder
*
*/
public Builder siteConfig(Output siteConfig) {
$.siteConfig = siteConfig;
return this;
}
/**
* @param siteConfig A `site_config` block as defined below.
*
* @return builder
*
*/
public Builder siteConfig(LinuxFunctionAppSiteConfigArgs siteConfig) {
return siteConfig(Output.of(siteConfig));
}
/**
* @param stickySettings A `sticky_settings` block as defined below.
*
* @return builder
*
*/
public Builder stickySettings(@Nullable Output stickySettings) {
$.stickySettings = stickySettings;
return this;
}
/**
* @param stickySettings A `sticky_settings` block as defined below.
*
* @return builder
*
*/
public Builder stickySettings(LinuxFunctionAppStickySettingsArgs stickySettings) {
return stickySettings(Output.of(stickySettings));
}
/**
* @param storageAccountAccessKey The access key which will be used to access the backend storage account for the Function App. Conflicts with `storage_uses_managed_identity`.
*
* @return builder
*
*/
public Builder storageAccountAccessKey(@Nullable Output storageAccountAccessKey) {
$.storageAccountAccessKey = storageAccountAccessKey;
return this;
}
/**
* @param storageAccountAccessKey The access key which will be used to access the backend storage account for the Function App. Conflicts with `storage_uses_managed_identity`.
*
* @return builder
*
*/
public Builder storageAccountAccessKey(String storageAccountAccessKey) {
return storageAccountAccessKey(Output.of(storageAccountAccessKey));
}
/**
* @param storageAccountName The backend storage account name which will be used by this Function App.
*
* @return builder
*
*/
public Builder storageAccountName(@Nullable Output storageAccountName) {
$.storageAccountName = storageAccountName;
return this;
}
/**
* @param storageAccountName The backend storage account name which will be used by this Function App.
*
* @return builder
*
*/
public Builder storageAccountName(String storageAccountName) {
return storageAccountName(Output.of(storageAccountName));
}
/**
* @param storageAccounts One or more `storage_account` blocks as defined below.
*
* @return builder
*
*/
public Builder storageAccounts(@Nullable Output> storageAccounts) {
$.storageAccounts = storageAccounts;
return this;
}
/**
* @param storageAccounts One or more `storage_account` blocks as defined below.
*
* @return builder
*
*/
public Builder storageAccounts(List storageAccounts) {
return storageAccounts(Output.of(storageAccounts));
}
/**
* @param storageAccounts One or more `storage_account` blocks as defined below.
*
* @return builder
*
*/
public Builder storageAccounts(LinuxFunctionAppStorageAccountArgs... storageAccounts) {
return storageAccounts(List.of(storageAccounts));
}
/**
* @param storageKeyVaultSecretId The Key Vault Secret ID, optionally including version, that contains the Connection String to connect to the storage account for this Function App.
*
* > **NOTE:** `storage_key_vault_secret_id` cannot be used with `storage_account_name`.
*
* > **NOTE:** `storage_key_vault_secret_id` used without a version will use the latest version of the secret, however, the service can take up to 24h to pick up a rotation of the latest version. See the [official docs](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#rotation) for more information.
*
* @return builder
*
*/
public Builder storageKeyVaultSecretId(@Nullable Output storageKeyVaultSecretId) {
$.storageKeyVaultSecretId = storageKeyVaultSecretId;
return this;
}
/**
* @param storageKeyVaultSecretId The Key Vault Secret ID, optionally including version, that contains the Connection String to connect to the storage account for this Function App.
*
* > **NOTE:** `storage_key_vault_secret_id` cannot be used with `storage_account_name`.
*
* > **NOTE:** `storage_key_vault_secret_id` used without a version will use the latest version of the secret, however, the service can take up to 24h to pick up a rotation of the latest version. See the [official docs](https://docs.microsoft.com/azure/app-service/app-service-key-vault-references#rotation) for more information.
*
* @return builder
*
*/
public Builder storageKeyVaultSecretId(String storageKeyVaultSecretId) {
return storageKeyVaultSecretId(Output.of(storageKeyVaultSecretId));
}
/**
* @param storageUsesManagedIdentity Should the Function App use Managed Identity to access the storage account. Conflicts with `storage_account_access_key`.
*
* > **NOTE:** One of `storage_account_access_key` or `storage_uses_managed_identity` must be specified when using `storage_account_name`.
*
* @return builder
*
*/
public Builder storageUsesManagedIdentity(@Nullable Output storageUsesManagedIdentity) {
$.storageUsesManagedIdentity = storageUsesManagedIdentity;
return this;
}
/**
* @param storageUsesManagedIdentity Should the Function App use Managed Identity to access the storage account. Conflicts with `storage_account_access_key`.
*
* > **NOTE:** One of `storage_account_access_key` or `storage_uses_managed_identity` must be specified when using `storage_account_name`.
*
* @return builder
*
*/
public Builder storageUsesManagedIdentity(Boolean storageUsesManagedIdentity) {
return storageUsesManagedIdentity(Output.of(storageUsesManagedIdentity));
}
/**
* @param tags A mapping of tags which should be assigned to the Linux Function App.
*
* @return builder
*
*/
public Builder tags(@Nullable Output> tags) {
$.tags = tags;
return this;
}
/**
* @param tags A mapping of tags which should be assigned to the Linux Function App.
*
* @return builder
*
*/
public Builder tags(Map tags) {
return tags(Output.of(tags));
}
public Builder virtualNetworkSubnetId(@Nullable Output virtualNetworkSubnetId) {
$.virtualNetworkSubnetId = virtualNetworkSubnetId;
return this;
}
public Builder virtualNetworkSubnetId(String virtualNetworkSubnetId) {
return virtualNetworkSubnetId(Output.of(virtualNetworkSubnetId));
}
/**
* @param vnetImagePullEnabled Is container image pull over virtual network enabled? Defaults to `false`.
*
* @return builder
*
*/
public Builder vnetImagePullEnabled(@Nullable Output vnetImagePullEnabled) {
$.vnetImagePullEnabled = vnetImagePullEnabled;
return this;
}
/**
* @param vnetImagePullEnabled Is container image pull over virtual network enabled? Defaults to `false`.
*
* @return builder
*
*/
public Builder vnetImagePullEnabled(Boolean vnetImagePullEnabled) {
return vnetImagePullEnabled(Output.of(vnetImagePullEnabled));
}
/**
* @param webdeployPublishBasicAuthenticationEnabled Should the default WebDeploy Basic Authentication publishing credentials enabled. Defaults to `true`.
*
* > **NOTE:** Setting this value to true will disable the ability to use `zip_deploy_file` which currently relies on the default publishing profile.
*
* @return builder
*
*/
public Builder webdeployPublishBasicAuthenticationEnabled(@Nullable Output webdeployPublishBasicAuthenticationEnabled) {
$.webdeployPublishBasicAuthenticationEnabled = webdeployPublishBasicAuthenticationEnabled;
return this;
}
/**
* @param webdeployPublishBasicAuthenticationEnabled Should the default WebDeploy Basic Authentication publishing credentials enabled. Defaults to `true`.
*
* > **NOTE:** Setting this value to true will disable the ability to use `zip_deploy_file` which currently relies on the default publishing profile.
*
* @return builder
*
*/
public Builder webdeployPublishBasicAuthenticationEnabled(Boolean webdeployPublishBasicAuthenticationEnabled) {
return webdeployPublishBasicAuthenticationEnabled(Output.of(webdeployPublishBasicAuthenticationEnabled));
}
/**
* @param zipDeployFile The local path and filename of the Zip packaged application to deploy to this Linux Function App.
*
* > **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`. Refer to the [Azure docs](https://learn.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies) for further details.
*
* @return builder
*
*/
public Builder zipDeployFile(@Nullable Output zipDeployFile) {
$.zipDeployFile = zipDeployFile;
return this;
}
/**
* @param zipDeployFile The local path and filename of the Zip packaged application to deploy to this Linux Function App.
*
* > **Note:** Using this value requires either `WEBSITE_RUN_FROM_PACKAGE=1` or `SCM_DO_BUILD_DURING_DEPLOYMENT=true` to be set on the App in `app_settings`. Refer to the [Azure docs](https://learn.microsoft.com/en-us/azure/azure-functions/functions-deployment-technologies) for further details.
*
* @return builder
*
*/
public Builder zipDeployFile(String zipDeployFile) {
return zipDeployFile(Output.of(zipDeployFile));
}
public LinuxFunctionAppArgs build() {
if ($.resourceGroupName == null) {
throw new MissingRequiredPropertyException("LinuxFunctionAppArgs", "resourceGroupName");
}
if ($.servicePlanId == null) {
throw new MissingRequiredPropertyException("LinuxFunctionAppArgs", "servicePlanId");
}
if ($.siteConfig == null) {
throw new MissingRequiredPropertyException("LinuxFunctionAppArgs", "siteConfig");
}
return $;
}
}
}