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

com.pulumi.azure.appservice.inputs.FunctionAppState 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.FunctionAppAuthSettingsArgs;
import com.pulumi.azure.appservice.inputs.FunctionAppConnectionStringArgs;
import com.pulumi.azure.appservice.inputs.FunctionAppIdentityArgs;
import com.pulumi.azure.appservice.inputs.FunctionAppSiteConfigArgs;
import com.pulumi.azure.appservice.inputs.FunctionAppSiteCredentialArgs;
import com.pulumi.azure.appservice.inputs.FunctionAppSourceControlArgs;
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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final FunctionAppState Empty = new FunctionAppState();

    /**
     * The ID of the App Service Plan within which to create this Function App.
     * 
     */
    @Import(name="appServicePlanId")
    private @Nullable Output appServicePlanId;

    /**
     * @return The ID of the App Service Plan within which to create this Function App.
     * 
     */
    public Optional> appServicePlanId() {
        return Optional.ofNullable(this.appServicePlanId);
    }

    /**
     * A map of key-value pairs for [App Settings](https://docs.microsoft.com/azure/azure-functions/functions-app-settings) and custom values.
     * 
     * > **NOTE:** The values for `AzureWebJobsStorage` and `FUNCTIONS_EXTENSION_VERSION` will be filled by other input arguments and shouldn't be configured separately. `AzureWebJobsStorage` is filled based on `storage_account_name` and `storage_account_access_key`. `FUNCTIONS_EXTENSION_VERSION` is filled based on `version`.
     * 
     */
    @Import(name="appSettings")
    private @Nullable Output> appSettings;

    /**
     * @return A map of key-value pairs for [App Settings](https://docs.microsoft.com/azure/azure-functions/functions-app-settings) and custom values.
     * 
     * > **NOTE:** The values for `AzureWebJobsStorage` and `FUNCTIONS_EXTENSION_VERSION` will be filled by other input arguments and shouldn't be configured separately. `AzureWebJobsStorage` is filled based on `storage_account_name` and `storage_account_access_key`. `FUNCTIONS_EXTENSION_VERSION` is filled based on `version`.
     * 
     */
    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);
    }

    /**
     * The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.
     * 
     */
    @Import(name="clientCertMode")
    private @Nullable Output clientCertMode;

    /**
     * @return The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.
     * 
     */
    public Optional> clientCertMode() {
        return Optional.ofNullable(this.clientCertMode);
    }

    /**
     * An `connection_string` block as defined below.
     * 
     */
    @Import(name="connectionStrings")
    private @Nullable Output> connectionStrings;

    /**
     * @return An `connection_string` block as defined below.
     * 
     */
    public Optional>> connectionStrings() {
        return Optional.ofNullable(this.connectionStrings);
    }

    /**
     * An identifier used by App Service to perform domain ownership verification via DNS TXT record.
     * 
     */
    @Import(name="customDomainVerificationId")
    private @Nullable Output customDomainVerificationId;

    /**
     * @return An identifier used by App Service to perform domain ownership verification via DNS TXT record.
     * 
     */
    public Optional> customDomainVerificationId() {
        return Optional.ofNullable(this.customDomainVerificationId);
    }

    /**
     * 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.
     * 
     */
    @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.
     * 
     */
    public Optional> dailyMemoryTimeQuota() {
        return Optional.ofNullable(this.dailyMemoryTimeQuota);
    }

    /**
     * The default hostname associated with the Function App - such as `mysite.azurewebsites.net`
     * 
     */
    @Import(name="defaultHostname")
    private @Nullable Output defaultHostname;

    /**
     * @return The default hostname associated with the Function App - such as `mysite.azurewebsites.net`
     * 
     */
    public Optional> defaultHostname() {
        return Optional.ofNullable(this.defaultHostname);
    }

    /**
     * Should the built-in logging of this Function App be enabled? Defaults to `true`.
     * 
     */
    @Import(name="enableBuiltinLogging")
    private @Nullable Output enableBuiltinLogging;

    /**
     * @return Should the built-in logging of this Function App be enabled? Defaults to `true`.
     * 
     */
    public Optional> enableBuiltinLogging() {
        return Optional.ofNullable(this.enableBuiltinLogging);
    }

    /**
     * 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);
    }

    /**
     * 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);
    }

    /**
     * An `identity` block as defined below.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return An `identity` block as defined below.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * The User Assigned Identity Id used for looking up KeyVault secrets. The identity must be assigned to the application. 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) for more information.
     * 
     */
    @Import(name="keyVaultReferenceIdentityId")
    private @Nullable Output keyVaultReferenceIdentityId;

    /**
     * @return The User Assigned Identity Id used for looking up KeyVault secrets. The identity must be assigned to the application. 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) for more information.
     * 
     */
    public Optional> keyVaultReferenceIdentityId() {
        return Optional.ofNullable(this.keyVaultReferenceIdentityId);
    }

    /**
     * The Function App kind - such as `functionapp,linux,container`
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return The Function App kind - such as `functionapp,linux,container`
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Specifies the name of the Function App. Changing this forces a new resource 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/azure/azure-resource-manager/management/resource-name-rules#microsoftweb).
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Specifies the name of the Function App. Changing this forces a new resource 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/azure/azure-resource-manager/management/resource-name-rules#microsoftweb).
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * A string indicating the Operating System type for this function app. Possible values are `linux` and ``(empty string). Changing this forces a new resource to be created. Defaults to `""`.
     * 
     * > **NOTE:** This value will be `linux` for Linux derivatives, or an empty string for Windows (default). When set to `linux` you must also set `azure.appservice.Plan` arguments as `kind = "Linux"` and `reserved = true`
     * 
     */
    @Import(name="osType")
    private @Nullable Output osType;

    /**
     * @return A string indicating the Operating System type for this function app. Possible values are `linux` and ``(empty string). Changing this forces a new resource to be created. Defaults to `""`.
     * 
     * > **NOTE:** This value will be `linux` for Linux derivatives, or an empty string for Windows (default). When set to `linux` you must also set `azure.appservice.Plan` arguments as `kind = "Linux"` and `reserved = true`
     * 
     */
    public Optional> osType() {
        return Optional.ofNullable(this.osType);
    }

    /**
     * A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`
     * 
     */
    @Import(name="outboundIpAddresses")
    private @Nullable Output outboundIpAddresses;

    /**
     * @return A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`
     * 
     */
    public Optional> outboundIpAddresses() {
        return Optional.ofNullable(this.outboundIpAddresses);
    }

    /**
     * A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.
     * 
     */
    @Import(name="possibleOutboundIpAddresses")
    private @Nullable Output possibleOutboundIpAddresses;

    /**
     * @return A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.
     * 
     */
    public Optional> possibleOutboundIpAddresses() {
        return Optional.ofNullable(this.possibleOutboundIpAddresses);
    }

    /**
     * The name of the resource group in which to create the Function App. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName")
    private @Nullable Output resourceGroupName;

    /**
     * @return The name of the resource group in which to create the Function App. Changing this forces a new resource to be created.
     * 
     */
    public Optional> resourceGroupName() {
        return Optional.ofNullable(this.resourceGroupName);
    }

    /**
     * A `site_config` object as defined below.
     * 
     */
    @Import(name="siteConfig")
    private @Nullable Output siteConfig;

    /**
     * @return A `site_config` object as defined below.
     * 
     */
    public Optional> siteConfig() {
        return Optional.ofNullable(this.siteConfig);
    }

    /**
     * A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.
     * 
     */
    @Import(name="siteCredentials")
    private @Nullable Output> siteCredentials;

    /**
     * @return A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.
     * 
     */
    public Optional>> siteCredentials() {
        return Optional.ofNullable(this.siteCredentials);
    }

    /**
     * A `source_control` block, as defined below.
     * 
     */
    @Import(name="sourceControl")
    private @Nullable Output sourceControl;

    /**
     * @return A `source_control` block, as defined below.
     * 
     */
    public Optional> sourceControl() {
        return Optional.ofNullable(this.sourceControl);
    }

    /**
     * The access key which will be used to access the backend storage account for the Function App.
     * 
     * > **Note:** When integrating a `CI/CD pipeline` and expecting to run from a deployed package in `Azure` you must seed your `app settings` as part of the application code for function app to be successfully deployed. `Important Default key pairs`: (`"WEBSITE_RUN_FROM_PACKAGE" = ""`, `"FUNCTIONS_WORKER_RUNTIME" = "node"` (or python, etc), `"WEBSITE_NODE_DEFAULT_VERSION" = "10.14.1"`, `"APPINSIGHTS_INSTRUMENTATIONKEY" = ""`).
     * 
     * > **Note:**  When using an App Service Plan in the `Free` or `Shared` Tiers `use_32_bit_worker_process` must be set to `true`.
     * 
     */
    @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.
     * 
     * > **Note:** When integrating a `CI/CD pipeline` and expecting to run from a deployed package in `Azure` you must seed your `app settings` as part of the application code for function app to be successfully deployed. `Important Default key pairs`: (`"WEBSITE_RUN_FROM_PACKAGE" = ""`, `"FUNCTIONS_WORKER_RUNTIME" = "node"` (or python, etc), `"WEBSITE_NODE_DEFAULT_VERSION" = "10.14.1"`, `"APPINSIGHTS_INSTRUMENTATIONKEY" = ""`).
     * 
     * > **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> storageAccountAccessKey() {
        return Optional.ofNullable(this.storageAccountAccessKey);
    }

    /**
     * The backend storage account name which will be used by this Function App (such as the dashboard, logs). Changing this forces a new resource to be created.
     * 
     */
    @Import(name="storageAccountName")
    private @Nullable Output storageAccountName;

    /**
     * @return The backend storage account name which will be used by this Function App (such as the dashboard, logs). Changing this forces a new resource to be created.
     * 
     */
    public Optional> storageAccountName() {
        return Optional.ofNullable(this.storageAccountName);
    }

    /**
     * A mapping of tags to assign to the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags to assign to the resource.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * The runtime version associated with the Function App. Defaults to `~1`.
     * 
     */
    @Import(name="version")
    private @Nullable Output version;

    /**
     * @return The runtime version associated with the Function App. Defaults to `~1`.
     * 
     */
    public Optional> version() {
        return Optional.ofNullable(this.version);
    }

    private FunctionAppState() {}

    private FunctionAppState(FunctionAppState $) {
        this.appServicePlanId = $.appServicePlanId;
        this.appSettings = $.appSettings;
        this.authSettings = $.authSettings;
        this.clientCertMode = $.clientCertMode;
        this.connectionStrings = $.connectionStrings;
        this.customDomainVerificationId = $.customDomainVerificationId;
        this.dailyMemoryTimeQuota = $.dailyMemoryTimeQuota;
        this.defaultHostname = $.defaultHostname;
        this.enableBuiltinLogging = $.enableBuiltinLogging;
        this.enabled = $.enabled;
        this.httpsOnly = $.httpsOnly;
        this.identity = $.identity;
        this.keyVaultReferenceIdentityId = $.keyVaultReferenceIdentityId;
        this.kind = $.kind;
        this.location = $.location;
        this.name = $.name;
        this.osType = $.osType;
        this.outboundIpAddresses = $.outboundIpAddresses;
        this.possibleOutboundIpAddresses = $.possibleOutboundIpAddresses;
        this.resourceGroupName = $.resourceGroupName;
        this.siteConfig = $.siteConfig;
        this.siteCredentials = $.siteCredentials;
        this.sourceControl = $.sourceControl;
        this.storageAccountAccessKey = $.storageAccountAccessKey;
        this.storageAccountName = $.storageAccountName;
        this.tags = $.tags;
        this.version = $.version;
    }

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

    public static final class Builder {
        private FunctionAppState $;

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

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

        /**
         * @param appServicePlanId The ID of the App Service Plan within which to create this Function App.
         * 
         * @return builder
         * 
         */
        public Builder appServicePlanId(@Nullable Output appServicePlanId) {
            $.appServicePlanId = appServicePlanId;
            return this;
        }

        /**
         * @param appServicePlanId The ID of the App Service Plan within which to create this Function App.
         * 
         * @return builder
         * 
         */
        public Builder appServicePlanId(String appServicePlanId) {
            return appServicePlanId(Output.of(appServicePlanId));
        }

        /**
         * @param appSettings A map of key-value pairs for [App Settings](https://docs.microsoft.com/azure/azure-functions/functions-app-settings) and custom values.
         * 
         * > **NOTE:** The values for `AzureWebJobsStorage` and `FUNCTIONS_EXTENSION_VERSION` will be filled by other input arguments and shouldn't be configured separately. `AzureWebJobsStorage` is filled based on `storage_account_name` and `storage_account_access_key`. `FUNCTIONS_EXTENSION_VERSION` is filled based on `version`.
         * 
         * @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/azure/azure-functions/functions-app-settings) and custom values.
         * 
         * > **NOTE:** The values for `AzureWebJobsStorage` and `FUNCTIONS_EXTENSION_VERSION` will be filled by other input arguments and shouldn't be configured separately. `AzureWebJobsStorage` is filled based on `storage_account_name` and `storage_account_access_key`. `FUNCTIONS_EXTENSION_VERSION` is filled based on `version`.
         * 
         * @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(FunctionAppAuthSettingsArgs authSettings) {
            return authSettings(Output.of(authSettings));
        }

        /**
         * @param clientCertMode The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.
         * 
         * @return builder
         * 
         */
        public Builder clientCertMode(@Nullable Output clientCertMode) {
            $.clientCertMode = clientCertMode;
            return this;
        }

        /**
         * @param clientCertMode The mode of the Function App's client certificates requirement for incoming requests. Possible values are `Required` and `Optional`.
         * 
         * @return builder
         * 
         */
        public Builder clientCertMode(String clientCertMode) {
            return clientCertMode(Output.of(clientCertMode));
        }

        /**
         * @param connectionStrings An `connection_string` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder connectionStrings(@Nullable Output> connectionStrings) {
            $.connectionStrings = connectionStrings;
            return this;
        }

        /**
         * @param connectionStrings An `connection_string` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder connectionStrings(List connectionStrings) {
            return connectionStrings(Output.of(connectionStrings));
        }

        /**
         * @param connectionStrings An `connection_string` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder connectionStrings(FunctionAppConnectionStringArgs... connectionStrings) {
            return connectionStrings(List.of(connectionStrings));
        }

        /**
         * @param customDomainVerificationId An identifier used by App Service to perform domain ownership verification via DNS TXT record.
         * 
         * @return builder
         * 
         */
        public Builder customDomainVerificationId(@Nullable Output customDomainVerificationId) {
            $.customDomainVerificationId = customDomainVerificationId;
            return this;
        }

        /**
         * @param customDomainVerificationId An identifier used by App Service to perform domain ownership verification via DNS TXT record.
         * 
         * @return builder
         * 
         */
        public Builder customDomainVerificationId(String customDomainVerificationId) {
            return customDomainVerificationId(Output.of(customDomainVerificationId));
        }

        /**
         * @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.
         * 
         * @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.
         * 
         * @return builder
         * 
         */
        public Builder dailyMemoryTimeQuota(Integer dailyMemoryTimeQuota) {
            return dailyMemoryTimeQuota(Output.of(dailyMemoryTimeQuota));
        }

        /**
         * @param defaultHostname The default hostname associated with the Function App - such as `mysite.azurewebsites.net`
         * 
         * @return builder
         * 
         */
        public Builder defaultHostname(@Nullable Output defaultHostname) {
            $.defaultHostname = defaultHostname;
            return this;
        }

        /**
         * @param defaultHostname The default hostname associated with the Function App - such as `mysite.azurewebsites.net`
         * 
         * @return builder
         * 
         */
        public Builder defaultHostname(String defaultHostname) {
            return defaultHostname(Output.of(defaultHostname));
        }

        /**
         * @param enableBuiltinLogging Should the built-in logging of this Function App be enabled? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enableBuiltinLogging(@Nullable Output enableBuiltinLogging) {
            $.enableBuiltinLogging = enableBuiltinLogging;
            return this;
        }

        /**
         * @param enableBuiltinLogging Should the built-in logging of this Function App be enabled? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enableBuiltinLogging(Boolean enableBuiltinLogging) {
            return enableBuiltinLogging(Output.of(enableBuiltinLogging));
        }

        /**
         * @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 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 An `identity` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity An `identity` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder identity(FunctionAppIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param keyVaultReferenceIdentityId The User Assigned Identity Id used for looking up KeyVault secrets. The identity must be assigned to the application. 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) for more information.
         * 
         * @return builder
         * 
         */
        public Builder keyVaultReferenceIdentityId(@Nullable Output keyVaultReferenceIdentityId) {
            $.keyVaultReferenceIdentityId = keyVaultReferenceIdentityId;
            return this;
        }

        /**
         * @param keyVaultReferenceIdentityId The User Assigned Identity Id used for looking up KeyVault secrets. The identity must be assigned to the application. 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) for more information.
         * 
         * @return builder
         * 
         */
        public Builder keyVaultReferenceIdentityId(String keyVaultReferenceIdentityId) {
            return keyVaultReferenceIdentityId(Output.of(keyVaultReferenceIdentityId));
        }

        /**
         * @param kind The Function App kind - such as `functionapp,linux,container`
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind The Function App kind - such as `functionapp,linux,container`
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param location Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name Specifies the name of the Function App. Changing this forces a new resource 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/azure/azure-resource-manager/management/resource-name-rules#microsoftweb).
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the Function App. Changing this forces a new resource 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/azure/azure-resource-manager/management/resource-name-rules#microsoftweb).
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param osType A string indicating the Operating System type for this function app. Possible values are `linux` and ``(empty string). Changing this forces a new resource to be created. Defaults to `""`.
         * 
         * > **NOTE:** This value will be `linux` for Linux derivatives, or an empty string for Windows (default). When set to `linux` you must also set `azure.appservice.Plan` arguments as `kind = "Linux"` and `reserved = true`
         * 
         * @return builder
         * 
         */
        public Builder osType(@Nullable Output osType) {
            $.osType = osType;
            return this;
        }

        /**
         * @param osType A string indicating the Operating System type for this function app. Possible values are `linux` and ``(empty string). Changing this forces a new resource to be created. Defaults to `""`.
         * 
         * > **NOTE:** This value will be `linux` for Linux derivatives, or an empty string for Windows (default). When set to `linux` you must also set `azure.appservice.Plan` arguments as `kind = "Linux"` and `reserved = true`
         * 
         * @return builder
         * 
         */
        public Builder osType(String osType) {
            return osType(Output.of(osType));
        }

        /**
         * @param outboundIpAddresses A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`
         * 
         * @return builder
         * 
         */
        public Builder outboundIpAddresses(@Nullable Output outboundIpAddresses) {
            $.outboundIpAddresses = outboundIpAddresses;
            return this;
        }

        /**
         * @param outboundIpAddresses A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12`
         * 
         * @return builder
         * 
         */
        public Builder outboundIpAddresses(String outboundIpAddresses) {
            return outboundIpAddresses(Output.of(outboundIpAddresses));
        }

        /**
         * @param possibleOutboundIpAddresses A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.
         * 
         * @return builder
         * 
         */
        public Builder possibleOutboundIpAddresses(@Nullable Output possibleOutboundIpAddresses) {
            $.possibleOutboundIpAddresses = possibleOutboundIpAddresses;
            return this;
        }

        /**
         * @param possibleOutboundIpAddresses A comma separated list of outbound IP addresses - such as `52.23.25.3,52.143.43.12,52.143.43.17` - not all of which are necessarily in use. Superset of `outbound_ip_addresses`.
         * 
         * @return builder
         * 
         */
        public Builder possibleOutboundIpAddresses(String possibleOutboundIpAddresses) {
            return possibleOutboundIpAddresses(Output.of(possibleOutboundIpAddresses));
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the Function App. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(@Nullable Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group in which to create the Function App. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param siteConfig A `site_config` object as defined below.
         * 
         * @return builder
         * 
         */
        public Builder siteConfig(@Nullable Output siteConfig) {
            $.siteConfig = siteConfig;
            return this;
        }

        /**
         * @param siteConfig A `site_config` object as defined below.
         * 
         * @return builder
         * 
         */
        public Builder siteConfig(FunctionAppSiteConfigArgs siteConfig) {
            return siteConfig(Output.of(siteConfig));
        }

        /**
         * @param siteCredentials A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.
         * 
         * @return builder
         * 
         */
        public Builder siteCredentials(@Nullable Output> siteCredentials) {
            $.siteCredentials = siteCredentials;
            return this;
        }

        /**
         * @param siteCredentials A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.
         * 
         * @return builder
         * 
         */
        public Builder siteCredentials(List siteCredentials) {
            return siteCredentials(Output.of(siteCredentials));
        }

        /**
         * @param siteCredentials A `site_credential` block as defined below, which contains the site-level credentials used to publish to this App Service.
         * 
         * @return builder
         * 
         */
        public Builder siteCredentials(FunctionAppSiteCredentialArgs... siteCredentials) {
            return siteCredentials(List.of(siteCredentials));
        }

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

        /**
         * @param sourceControl A `source_control` block, as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sourceControl(FunctionAppSourceControlArgs sourceControl) {
            return sourceControl(Output.of(sourceControl));
        }

        /**
         * @param storageAccountAccessKey The access key which will be used to access the backend storage account for the Function App.
         * 
         * > **Note:** When integrating a `CI/CD pipeline` and expecting to run from a deployed package in `Azure` you must seed your `app settings` as part of the application code for function app to be successfully deployed. `Important Default key pairs`: (`"WEBSITE_RUN_FROM_PACKAGE" = ""`, `"FUNCTIONS_WORKER_RUNTIME" = "node"` (or python, etc), `"WEBSITE_NODE_DEFAULT_VERSION" = "10.14.1"`, `"APPINSIGHTS_INSTRUMENTATIONKEY" = ""`).
         * 
         * > **Note:**  When using an App Service Plan in the `Free` or `Shared` Tiers `use_32_bit_worker_process` must be set to `true`.
         * 
         * @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.
         * 
         * > **Note:** When integrating a `CI/CD pipeline` and expecting to run from a deployed package in `Azure` you must seed your `app settings` as part of the application code for function app to be successfully deployed. `Important Default key pairs`: (`"WEBSITE_RUN_FROM_PACKAGE" = ""`, `"FUNCTIONS_WORKER_RUNTIME" = "node"` (or python, etc), `"WEBSITE_NODE_DEFAULT_VERSION" = "10.14.1"`, `"APPINSIGHTS_INSTRUMENTATIONKEY" = ""`).
         * 
         * > **Note:**  When using an App Service Plan in the `Free` or `Shared` Tiers `use_32_bit_worker_process` must be set to `true`.
         * 
         * @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 (such as the dashboard, logs). Changing this forces a new resource to be created.
         * 
         * @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 (such as the dashboard, logs). Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder storageAccountName(String storageAccountName) {
            return storageAccountName(Output.of(storageAccountName));
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param version The runtime version associated with the Function App. Defaults to `~1`.
         * 
         * @return builder
         * 
         */
        public Builder version(@Nullable Output version) {
            $.version = version;
            return this;
        }

        /**
         * @param version The runtime version associated with the Function App. Defaults to `~1`.
         * 
         * @return builder
         * 
         */
        public Builder version(String version) {
            return version(Output.of(version));
        }

        public FunctionAppState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy