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

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

import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotAuthSettingsArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotAuthSettingsV2Args;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotBackupArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotConnectionStringArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotIdentityArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotLogsArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotSiteConfigArgs;
import com.pulumi.azure.appservice.inputs.LinuxWebAppSlotStorageAccountArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
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 LinuxWebAppSlotArgs extends com.pulumi.resources.ResourceArgs {

    public static final LinuxWebAppSlotArgs Empty = new LinuxWebAppSlotArgs();

    /**
     * The ID of the Linux Web App this Deployment Slot will be part of.
     * 
     */
    @Import(name="appServiceId", required=true)
    private Output appServiceId;

    /**
     * @return The ID of the Linux Web App this Deployment Slot will be part of.
     * 
     */
    public Output appServiceId() {
        return this.appServiceId;
    }

    /**
     * A map of key-value pairs of App Settings.
     * 
     */
    @Import(name="appSettings")
    private @Nullable Output> appSettings;

    /**
     * @return A map of key-value pairs of App Settings.
     * 
     */
    public Optional>> appSettings() {
        return Optional.ofNullable(this.appSettings);
    }

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

    /**
     * @return An `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 Client Affinity be enabled?
     * 
     */
    @Import(name="clientAffinityEnabled")
    private @Nullable Output clientAffinityEnabled;

    /**
     * @return Should Client Affinity be enabled?
     * 
     */
    public Optional> clientAffinityEnabled() {
        return Optional.ofNullable(this.clientAffinityEnabled);
    }

    /**
     * Should Client Certificates be enabled?
     * 
     */
    @Import(name="clientCertificateEnabled")
    private @Nullable Output clientCertificateEnabled;

    /**
     * @return Should Client Certificates be enabled?
     * 
     */
    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 Client Certificate mode. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. This property has no effect when `client_cert_enabled` is `false`. Defaults to `Required`.
     * 
     */
    @Import(name="clientCertificateMode")
    private @Nullable Output clientCertificateMode;

    /**
     * @return The Client Certificate mode. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. This property has no effect when `client_cert_enabled` is `false`. Defaults to `Required`.
     * 
     */
    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 Linux Web App be enabled? Defaults to `true`.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output enabled;

    /**
     * @return Should the Linux Web App be 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);
    }

    /**
     * Should the Linux Web App require HTTPS connections. Defaults to `false`.
     * 
     */
    @Import(name="httpsOnly")
    private @Nullable Output httpsOnly;

    /**
     * @return Should the Linux Web App require HTTPS connections. 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 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);
    }

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

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

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

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

    /**
     * Should public network access be enabled for the Web App. Defaults to `true`.
     * 
     */
    @Import(name="publicNetworkAccessEnabled")
    private @Nullable Output publicNetworkAccessEnabled;

    /**
     * @return Should public network access be enabled for the Web App. Defaults to `true`.
     * 
     */
    public Optional> publicNetworkAccessEnabled() {
        return Optional.ofNullable(this.publicNetworkAccessEnabled);
    }

    /**
     * The ID of the Service Plan in which to run this slot. If not specified the same Service Plan as the Linux Web App will be used.
     * 
     * > **Note:** `service_plan_id` should only be specified if it differs from the Service Plan of the associated Linux Web App.
     * 
     */
    @Import(name="servicePlanId")
    private @Nullable Output servicePlanId;

    /**
     * @return The ID of the Service Plan in which to run this slot. If not specified the same Service Plan as the Linux Web App will be used.
     * 
     * > **Note:** `service_plan_id` should only be specified if it differs from the Service Plan of the associated Linux Web App.
     * 
     */
    public Optional> servicePlanId() {
        return Optional.ofNullable(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;
    }

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

    /**
     * A mapping of tags that should be assigned to the Linux Web App.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags that should be assigned to the Linux Web App.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

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

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

    /**
     * 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 Web App.
     * 
     * > **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`. Refer to the [Azure docs](https://docs.microsoft.com/en-us/azure/app-service/deploy-run-package) 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 Web App.
     * 
     * > **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`. Refer to the [Azure docs](https://docs.microsoft.com/en-us/azure/app-service/deploy-run-package) for further details.
     * 
     */
    public Optional> zipDeployFile() {
        return Optional.ofNullable(this.zipDeployFile);
    }

    private LinuxWebAppSlotArgs() {}

    private LinuxWebAppSlotArgs(LinuxWebAppSlotArgs $) {
        this.appServiceId = $.appServiceId;
        this.appSettings = $.appSettings;
        this.authSettings = $.authSettings;
        this.authSettingsV2 = $.authSettingsV2;
        this.backup = $.backup;
        this.clientAffinityEnabled = $.clientAffinityEnabled;
        this.clientCertificateEnabled = $.clientCertificateEnabled;
        this.clientCertificateExclusionPaths = $.clientCertificateExclusionPaths;
        this.clientCertificateMode = $.clientCertificateMode;
        this.connectionStrings = $.connectionStrings;
        this.enabled = $.enabled;
        this.ftpPublishBasicAuthenticationEnabled = $.ftpPublishBasicAuthenticationEnabled;
        this.httpsOnly = $.httpsOnly;
        this.identity = $.identity;
        this.keyVaultReferenceIdentityId = $.keyVaultReferenceIdentityId;
        this.logs = $.logs;
        this.name = $.name;
        this.publicNetworkAccessEnabled = $.publicNetworkAccessEnabled;
        this.servicePlanId = $.servicePlanId;
        this.siteConfig = $.siteConfig;
        this.storageAccounts = $.storageAccounts;
        this.tags = $.tags;
        this.virtualNetworkSubnetId = $.virtualNetworkSubnetId;
        this.webdeployPublishBasicAuthenticationEnabled = $.webdeployPublishBasicAuthenticationEnabled;
        this.zipDeployFile = $.zipDeployFile;
    }

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

    public static final class Builder {
        private LinuxWebAppSlotArgs $;

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

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

        /**
         * @param appServiceId The ID of the Linux Web App this Deployment Slot will be part of.
         * 
         * @return builder
         * 
         */
        public Builder appServiceId(Output appServiceId) {
            $.appServiceId = appServiceId;
            return this;
        }

        /**
         * @param appServiceId The ID of the Linux Web App this Deployment Slot will be part of.
         * 
         * @return builder
         * 
         */
        public Builder appServiceId(String appServiceId) {
            return appServiceId(Output.of(appServiceId));
        }

        /**
         * @param appSettings A map of key-value pairs of App Settings.
         * 
         * @return builder
         * 
         */
        public Builder appSettings(@Nullable Output> appSettings) {
            $.appSettings = appSettings;
            return this;
        }

        /**
         * @param appSettings A map of key-value pairs of App Settings.
         * 
         * @return builder
         * 
         */
        public Builder appSettings(Map appSettings) {
            return appSettings(Output.of(appSettings));
        }

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

        /**
         * @param authSettings An `auth_settings` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder authSettings(LinuxWebAppSlotAuthSettingsArgs 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(LinuxWebAppSlotAuthSettingsV2Args 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(LinuxWebAppSlotBackupArgs backup) {
            return backup(Output.of(backup));
        }

        /**
         * @param clientAffinityEnabled Should Client Affinity be enabled?
         * 
         * @return builder
         * 
         */
        public Builder clientAffinityEnabled(@Nullable Output clientAffinityEnabled) {
            $.clientAffinityEnabled = clientAffinityEnabled;
            return this;
        }

        /**
         * @param clientAffinityEnabled Should Client Affinity be enabled?
         * 
         * @return builder
         * 
         */
        public Builder clientAffinityEnabled(Boolean clientAffinityEnabled) {
            return clientAffinityEnabled(Output.of(clientAffinityEnabled));
        }

        /**
         * @param clientCertificateEnabled Should Client Certificates be enabled?
         * 
         * @return builder
         * 
         */
        public Builder clientCertificateEnabled(@Nullable Output clientCertificateEnabled) {
            $.clientCertificateEnabled = clientCertificateEnabled;
            return this;
        }

        /**
         * @param clientCertificateEnabled Should Client Certificates be enabled?
         * 
         * @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 Client Certificate mode. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. This property has no effect when `client_cert_enabled` is `false`. Defaults to `Required`.
         * 
         * @return builder
         * 
         */
        public Builder clientCertificateMode(@Nullable Output clientCertificateMode) {
            $.clientCertificateMode = clientCertificateMode;
            return this;
        }

        /**
         * @param clientCertificateMode The Client Certificate mode. Possible values are `Required`, `Optional`, and `OptionalInteractiveUser`. This property has no effect when `client_cert_enabled` is `false`. Defaults to `Required`.
         * 
         * @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(LinuxWebAppSlotConnectionStringArgs... connectionStrings) {
            return connectionStrings(List.of(connectionStrings));
        }

        /**
         * @param enabled Should the Linux Web App be enabled? Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Should the Linux Web App be 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 httpsOnly Should the Linux Web App require HTTPS connections. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder httpsOnly(@Nullable Output httpsOnly) {
            $.httpsOnly = httpsOnly;
            return this;
        }

        /**
         * @param httpsOnly Should the Linux Web App require HTTPS connections. 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(LinuxWebAppSlotIdentityArgs 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 logs A `logs` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder logs(@Nullable Output logs) {
            $.logs = logs;
            return this;
        }

        /**
         * @param logs A `logs` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder logs(LinuxWebAppSlotLogsArgs logs) {
            return logs(Output.of(logs));
        }

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

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

        /**
         * @param publicNetworkAccessEnabled Should public network access be enabled for the Web 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 Web App. Defaults to `true`.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccessEnabled(Boolean publicNetworkAccessEnabled) {
            return publicNetworkAccessEnabled(Output.of(publicNetworkAccessEnabled));
        }

        /**
         * @param servicePlanId The ID of the Service Plan in which to run this slot. If not specified the same Service Plan as the Linux Web App will be used.
         * 
         * > **Note:** `service_plan_id` should only be specified if it differs from the Service Plan of the associated Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder servicePlanId(@Nullable Output servicePlanId) {
            $.servicePlanId = servicePlanId;
            return this;
        }

        /**
         * @param servicePlanId The ID of the Service Plan in which to run this slot. If not specified the same Service Plan as the Linux Web App will be used.
         * 
         * > **Note:** `service_plan_id` should only be specified if it differs from the Service Plan of the associated Linux Web 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(LinuxWebAppSlotSiteConfigArgs siteConfig) {
            return siteConfig(Output.of(siteConfig));
        }

        /**
         * @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(LinuxWebAppSlotStorageAccountArgs... storageAccounts) {
            return storageAccounts(List.of(storageAccounts));
        }

        /**
         * @param tags A mapping of tags that should be assigned to the Linux Web App.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags that should be assigned to the Linux Web 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 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 Web App.
         * 
         * > **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`. Refer to the [Azure docs](https://docs.microsoft.com/en-us/azure/app-service/deploy-run-package) 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 Web App.
         * 
         * > **Note:** Using this value requires `WEBSITE_RUN_FROM_PACKAGE=1` to be set on the App in `app_settings`. Refer to the [Azure docs](https://docs.microsoft.com/en-us/azure/app-service/deploy-run-package) for further details.
         * 
         * @return builder
         * 
         */
        public Builder zipDeployFile(String zipDeployFile) {
            return zipDeployFile(Output.of(zipDeployFile));
        }

        public LinuxWebAppSlotArgs build() {
            if ($.appServiceId == null) {
                throw new MissingRequiredPropertyException("LinuxWebAppSlotArgs", "appServiceId");
            }
            if ($.siteConfig == null) {
                throw new MissingRequiredPropertyException("LinuxWebAppSlotArgs", "siteConfig");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy