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

com.pulumi.azure.appservice.inputs.ServicePlanState 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.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServicePlanState Empty = new ServicePlanState();

    /**
     * The ID of the App Service Environment to create this Service Plan in.
     * 
     * > **NOTE:** Requires an Isolated SKU. Use one of `I1`, `I2`, `I3` for `azurerm_app_service_environment`, or `I1v2`, `I2v2`, `I3v2` for `azure.appservice.EnvironmentV3`
     * 
     */
    @Import(name="appServiceEnvironmentId")
    private @Nullable Output appServiceEnvironmentId;

    /**
     * @return The ID of the App Service Environment to create this Service Plan in.
     * 
     * > **NOTE:** Requires an Isolated SKU. Use one of `I1`, `I2`, `I3` for `azurerm_app_service_environment`, or `I1v2`, `I2v2`, `I3v2` for `azure.appservice.EnvironmentV3`
     * 
     */
    public Optional> appServiceEnvironmentId() {
        return Optional.ofNullable(this.appServiceEnvironmentId);
    }

    /**
     * A string representing the Kind of Service Plan.
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return A string representing the Kind of Service Plan.
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * The Azure Region where the Service Plan should exist. Changing this forces a new Service Plan to be created.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The Azure Region where the Service Plan should exist. Changing this forces a new Service Plan to be created.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The maximum number of workers to use in an Elastic SKU Plan. Cannot be set unless using an Elastic SKU.
     * 
     */
    @Import(name="maximumElasticWorkerCount")
    private @Nullable Output maximumElasticWorkerCount;

    /**
     * @return The maximum number of workers to use in an Elastic SKU Plan. Cannot be set unless using an Elastic SKU.
     * 
     */
    public Optional> maximumElasticWorkerCount() {
        return Optional.ofNullable(this.maximumElasticWorkerCount);
    }

    /**
     * The name which should be used for this Service Plan. Changing this forces a new Service Plan to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name which should be used for this Service Plan. Changing this forces a new Service Plan to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The O/S type for the App Services to be hosted in this plan. Possible values include `Windows`, `Linux`, and `WindowsContainer`. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="osType")
    private @Nullable Output osType;

    /**
     * @return The O/S type for the App Services to be hosted in this plan. Possible values include `Windows`, `Linux`, and `WindowsContainer`. Changing this forces a new resource to be created.
     * 
     */
    public Optional> osType() {
        return Optional.ofNullable(this.osType);
    }

    /**
     * Should Per Site Scaling be enabled. Defaults to `false`.
     * 
     */
    @Import(name="perSiteScalingEnabled")
    private @Nullable Output perSiteScalingEnabled;

    /**
     * @return Should Per Site Scaling be enabled. Defaults to `false`.
     * 
     */
    public Optional> perSiteScalingEnabled() {
        return Optional.ofNullable(this.perSiteScalingEnabled);
    }

    /**
     * Whether this is a reserved Service Plan Type. `true` if `os_type` is `Linux`, otherwise `false`.
     * 
     */
    @Import(name="reserved")
    private @Nullable Output reserved;

    /**
     * @return Whether this is a reserved Service Plan Type. `true` if `os_type` is `Linux`, otherwise `false`.
     * 
     */
    public Optional> reserved() {
        return Optional.ofNullable(this.reserved);
    }

    /**
     * The name of the Resource Group where the Service Plan should exist. Changing this forces a new Service Plan to be created.
     * 
     */
    @Import(name="resourceGroupName")
    private @Nullable Output resourceGroupName;

    /**
     * @return The name of the Resource Group where the Service Plan should exist. Changing this forces a new Service Plan to be created.
     * 
     */
    public Optional> resourceGroupName() {
        return Optional.ofNullable(this.resourceGroupName);
    }

    /**
     * The SKU for the plan. Possible values include `B1`, `B2`, `B3`, `D1`, `F1`, `I1`, `I2`, `I3`, `I1v2`, `I2v2`, `I3v2`, `I4v2`, `I5v2`, `I6v2`, `P1v2`, `P2v2`, `P3v2`, `P0v3`, `P1v3`, `P2v3`, `P3v3`, `P1mv3`, `P2mv3`, `P3mv3`, `P4mv3`, `P5mv3`, `S1`, `S2`, `S3`, `SHARED`, `EP1`, `EP2`, `EP3`, `FC1`, `WS1`, `WS2`, `WS3`, and `Y1`.
     * 
     * > **NOTE:** Isolated SKUs (`I1`, `I2`, `I3`, `I1v2`, `I2v2`, and `I3v2`) can only be used with App Service Environments
     * 
     * > **NOTE:** Elastic and Consumption SKUs (`Y1`, `FC1`, `EP1`, `EP2`, and `EP3`) are for use with Function Apps.
     * 
     */
    @Import(name="skuName")
    private @Nullable Output skuName;

    /**
     * @return The SKU for the plan. Possible values include `B1`, `B2`, `B3`, `D1`, `F1`, `I1`, `I2`, `I3`, `I1v2`, `I2v2`, `I3v2`, `I4v2`, `I5v2`, `I6v2`, `P1v2`, `P2v2`, `P3v2`, `P0v3`, `P1v3`, `P2v3`, `P3v3`, `P1mv3`, `P2mv3`, `P3mv3`, `P4mv3`, `P5mv3`, `S1`, `S2`, `S3`, `SHARED`, `EP1`, `EP2`, `EP3`, `FC1`, `WS1`, `WS2`, `WS3`, and `Y1`.
     * 
     * > **NOTE:** Isolated SKUs (`I1`, `I2`, `I3`, `I1v2`, `I2v2`, and `I3v2`) can only be used with App Service Environments
     * 
     * > **NOTE:** Elastic and Consumption SKUs (`Y1`, `FC1`, `EP1`, `EP2`, and `EP3`) are for use with Function Apps.
     * 
     */
    public Optional> skuName() {
        return Optional.ofNullable(this.skuName);
    }

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

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

    /**
     * The number of Workers (instances) to be allocated.
     * 
     */
    @Import(name="workerCount")
    private @Nullable Output workerCount;

    /**
     * @return The number of Workers (instances) to be allocated.
     * 
     */
    public Optional> workerCount() {
        return Optional.ofNullable(this.workerCount);
    }

    /**
     * Should the Service Plan balance across Availability Zones in the region. Changing this forces a new resource to be created.
     * 
     * > **NOTE:** If this setting is set to `true` and the `worker_count` value is specified, it should be set to a multiple of the number of availability zones in the region. Please see the Azure documentation for the number of Availability Zones in your region.
     * 
     */
    @Import(name="zoneBalancingEnabled")
    private @Nullable Output zoneBalancingEnabled;

    /**
     * @return Should the Service Plan balance across Availability Zones in the region. Changing this forces a new resource to be created.
     * 
     * > **NOTE:** If this setting is set to `true` and the `worker_count` value is specified, it should be set to a multiple of the number of availability zones in the region. Please see the Azure documentation for the number of Availability Zones in your region.
     * 
     */
    public Optional> zoneBalancingEnabled() {
        return Optional.ofNullable(this.zoneBalancingEnabled);
    }

    private ServicePlanState() {}

    private ServicePlanState(ServicePlanState $) {
        this.appServiceEnvironmentId = $.appServiceEnvironmentId;
        this.kind = $.kind;
        this.location = $.location;
        this.maximumElasticWorkerCount = $.maximumElasticWorkerCount;
        this.name = $.name;
        this.osType = $.osType;
        this.perSiteScalingEnabled = $.perSiteScalingEnabled;
        this.reserved = $.reserved;
        this.resourceGroupName = $.resourceGroupName;
        this.skuName = $.skuName;
        this.tags = $.tags;
        this.workerCount = $.workerCount;
        this.zoneBalancingEnabled = $.zoneBalancingEnabled;
    }

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

    public static final class Builder {
        private ServicePlanState $;

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

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

        /**
         * @param appServiceEnvironmentId The ID of the App Service Environment to create this Service Plan in.
         * 
         * > **NOTE:** Requires an Isolated SKU. Use one of `I1`, `I2`, `I3` for `azurerm_app_service_environment`, or `I1v2`, `I2v2`, `I3v2` for `azure.appservice.EnvironmentV3`
         * 
         * @return builder
         * 
         */
        public Builder appServiceEnvironmentId(@Nullable Output appServiceEnvironmentId) {
            $.appServiceEnvironmentId = appServiceEnvironmentId;
            return this;
        }

        /**
         * @param appServiceEnvironmentId The ID of the App Service Environment to create this Service Plan in.
         * 
         * > **NOTE:** Requires an Isolated SKU. Use one of `I1`, `I2`, `I3` for `azurerm_app_service_environment`, or `I1v2`, `I2v2`, `I3v2` for `azure.appservice.EnvironmentV3`
         * 
         * @return builder
         * 
         */
        public Builder appServiceEnvironmentId(String appServiceEnvironmentId) {
            return appServiceEnvironmentId(Output.of(appServiceEnvironmentId));
        }

        /**
         * @param kind A string representing the Kind of Service Plan.
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind A string representing the Kind of Service Plan.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param location The Azure Region where the Service Plan should exist. Changing this forces a new Service Plan to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The Azure Region where the Service Plan should exist. Changing this forces a new Service Plan to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param maximumElasticWorkerCount The maximum number of workers to use in an Elastic SKU Plan. Cannot be set unless using an Elastic SKU.
         * 
         * @return builder
         * 
         */
        public Builder maximumElasticWorkerCount(@Nullable Output maximumElasticWorkerCount) {
            $.maximumElasticWorkerCount = maximumElasticWorkerCount;
            return this;
        }

        /**
         * @param maximumElasticWorkerCount The maximum number of workers to use in an Elastic SKU Plan. Cannot be set unless using an Elastic SKU.
         * 
         * @return builder
         * 
         */
        public Builder maximumElasticWorkerCount(Integer maximumElasticWorkerCount) {
            return maximumElasticWorkerCount(Output.of(maximumElasticWorkerCount));
        }

        /**
         * @param name The name which should be used for this Service Plan. Changing this forces a new Service Plan to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name which should be used for this Service Plan. Changing this forces a new Service Plan to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param osType The O/S type for the App Services to be hosted in this plan. Possible values include `Windows`, `Linux`, and `WindowsContainer`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder osType(@Nullable Output osType) {
            $.osType = osType;
            return this;
        }

        /**
         * @param osType The O/S type for the App Services to be hosted in this plan. Possible values include `Windows`, `Linux`, and `WindowsContainer`. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder osType(String osType) {
            return osType(Output.of(osType));
        }

        /**
         * @param perSiteScalingEnabled Should Per Site Scaling be enabled. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder perSiteScalingEnabled(@Nullable Output perSiteScalingEnabled) {
            $.perSiteScalingEnabled = perSiteScalingEnabled;
            return this;
        }

        /**
         * @param perSiteScalingEnabled Should Per Site Scaling be enabled. Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder perSiteScalingEnabled(Boolean perSiteScalingEnabled) {
            return perSiteScalingEnabled(Output.of(perSiteScalingEnabled));
        }

        /**
         * @param reserved Whether this is a reserved Service Plan Type. `true` if `os_type` is `Linux`, otherwise `false`.
         * 
         * @return builder
         * 
         */
        public Builder reserved(@Nullable Output reserved) {
            $.reserved = reserved;
            return this;
        }

        /**
         * @param reserved Whether this is a reserved Service Plan Type. `true` if `os_type` is `Linux`, otherwise `false`.
         * 
         * @return builder
         * 
         */
        public Builder reserved(Boolean reserved) {
            return reserved(Output.of(reserved));
        }

        /**
         * @param resourceGroupName The name of the Resource Group where the Service Plan should exist. Changing this forces a new Service Plan to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(@Nullable Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the Resource Group where the Service Plan should exist. Changing this forces a new Service Plan to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param skuName The SKU for the plan. Possible values include `B1`, `B2`, `B3`, `D1`, `F1`, `I1`, `I2`, `I3`, `I1v2`, `I2v2`, `I3v2`, `I4v2`, `I5v2`, `I6v2`, `P1v2`, `P2v2`, `P3v2`, `P0v3`, `P1v3`, `P2v3`, `P3v3`, `P1mv3`, `P2mv3`, `P3mv3`, `P4mv3`, `P5mv3`, `S1`, `S2`, `S3`, `SHARED`, `EP1`, `EP2`, `EP3`, `FC1`, `WS1`, `WS2`, `WS3`, and `Y1`.
         * 
         * > **NOTE:** Isolated SKUs (`I1`, `I2`, `I3`, `I1v2`, `I2v2`, and `I3v2`) can only be used with App Service Environments
         * 
         * > **NOTE:** Elastic and Consumption SKUs (`Y1`, `FC1`, `EP1`, `EP2`, and `EP3`) are for use with Function Apps.
         * 
         * @return builder
         * 
         */
        public Builder skuName(@Nullable Output skuName) {
            $.skuName = skuName;
            return this;
        }

        /**
         * @param skuName The SKU for the plan. Possible values include `B1`, `B2`, `B3`, `D1`, `F1`, `I1`, `I2`, `I3`, `I1v2`, `I2v2`, `I3v2`, `I4v2`, `I5v2`, `I6v2`, `P1v2`, `P2v2`, `P3v2`, `P0v3`, `P1v3`, `P2v3`, `P3v3`, `P1mv3`, `P2mv3`, `P3mv3`, `P4mv3`, `P5mv3`, `S1`, `S2`, `S3`, `SHARED`, `EP1`, `EP2`, `EP3`, `FC1`, `WS1`, `WS2`, `WS3`, and `Y1`.
         * 
         * > **NOTE:** Isolated SKUs (`I1`, `I2`, `I3`, `I1v2`, `I2v2`, and `I3v2`) can only be used with App Service Environments
         * 
         * > **NOTE:** Elastic and Consumption SKUs (`Y1`, `FC1`, `EP1`, `EP2`, and `EP3`) are for use with Function Apps.
         * 
         * @return builder
         * 
         */
        public Builder skuName(String skuName) {
            return skuName(Output.of(skuName));
        }

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

        /**
         * @param tags A mapping of tags which should be assigned to the AppService.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param workerCount The number of Workers (instances) to be allocated.
         * 
         * @return builder
         * 
         */
        public Builder workerCount(@Nullable Output workerCount) {
            $.workerCount = workerCount;
            return this;
        }

        /**
         * @param workerCount The number of Workers (instances) to be allocated.
         * 
         * @return builder
         * 
         */
        public Builder workerCount(Integer workerCount) {
            return workerCount(Output.of(workerCount));
        }

        /**
         * @param zoneBalancingEnabled Should the Service Plan balance across Availability Zones in the region. Changing this forces a new resource to be created.
         * 
         * > **NOTE:** If this setting is set to `true` and the `worker_count` value is specified, it should be set to a multiple of the number of availability zones in the region. Please see the Azure documentation for the number of Availability Zones in your region.
         * 
         * @return builder
         * 
         */
        public Builder zoneBalancingEnabled(@Nullable Output zoneBalancingEnabled) {
            $.zoneBalancingEnabled = zoneBalancingEnabled;
            return this;
        }

        /**
         * @param zoneBalancingEnabled Should the Service Plan balance across Availability Zones in the region. Changing this forces a new resource to be created.
         * 
         * > **NOTE:** If this setting is set to `true` and the `worker_count` value is specified, it should be set to a multiple of the number of availability zones in the region. Please see the Azure documentation for the number of Availability Zones in your region.
         * 
         * @return builder
         * 
         */
        public Builder zoneBalancingEnabled(Boolean zoneBalancingEnabled) {
            return zoneBalancingEnabled(Output.of(zoneBalancingEnabled));
        }

        public ServicePlanState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy