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

com.pulumi.azurenative.web.AppServicePlanArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.web;

import com.pulumi.azurenative.web.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.web.inputs.HostingEnvironmentProfileArgs;
import com.pulumi.azurenative.web.inputs.KubeEnvironmentProfileArgs;
import com.pulumi.azurenative.web.inputs.SkuDescriptionArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 AppServicePlanArgs extends com.pulumi.resources.ResourceArgs {

    public static final AppServicePlanArgs Empty = new AppServicePlanArgs();

    /**
     * ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku
     * 
     */
    @Import(name="elasticScaleEnabled")
    private @Nullable Output elasticScaleEnabled;

    /**
     * @return ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku
     * 
     */
    public Optional> elasticScaleEnabled() {
        return Optional.ofNullable(this.elasticScaleEnabled);
    }

    /**
     * Extended Location.
     * 
     */
    @Import(name="extendedLocation")
    private @Nullable Output extendedLocation;

    /**
     * @return Extended Location.
     * 
     */
    public Optional> extendedLocation() {
        return Optional.ofNullable(this.extendedLocation);
    }

    /**
     * The time when the server farm free offer expires.
     * 
     */
    @Import(name="freeOfferExpirationTime")
    private @Nullable Output freeOfferExpirationTime;

    /**
     * @return The time when the server farm free offer expires.
     * 
     */
    public Optional> freeOfferExpirationTime() {
        return Optional.ofNullable(this.freeOfferExpirationTime);
    }

    /**
     * Specification for the App Service Environment to use for the App Service plan.
     * 
     */
    @Import(name="hostingEnvironmentProfile")
    private @Nullable Output hostingEnvironmentProfile;

    /**
     * @return Specification for the App Service Environment to use for the App Service plan.
     * 
     */
    public Optional> hostingEnvironmentProfile() {
        return Optional.ofNullable(this.hostingEnvironmentProfile);
    }

    /**
     * If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
     * 
     */
    @Import(name="hyperV")
    private @Nullable Output hyperV;

    /**
     * @return If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
     * 
     */
    public Optional> hyperV() {
        return Optional.ofNullable(this.hyperV);
    }

    /**
     * If <code>true</code>, this App Service Plan owns spot instances.
     * 
     */
    @Import(name="isSpot")
    private @Nullable Output isSpot;

    /**
     * @return If <code>true</code>, this App Service Plan owns spot instances.
     * 
     */
    public Optional> isSpot() {
        return Optional.ofNullable(this.isSpot);
    }

    /**
     * Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
     * 
     */
    @Import(name="isXenon")
    private @Nullable Output isXenon;

    /**
     * @return Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
     * 
     */
    public Optional> isXenon() {
        return Optional.ofNullable(this.isXenon);
    }

    /**
     * Kind of resource.
     * 
     */
    @Import(name="kind")
    private @Nullable Output kind;

    /**
     * @return Kind of resource.
     * 
     */
    public Optional> kind() {
        return Optional.ofNullable(this.kind);
    }

    /**
     * Specification for the Kubernetes Environment to use for the App Service plan.
     * 
     */
    @Import(name="kubeEnvironmentProfile")
    private @Nullable Output kubeEnvironmentProfile;

    /**
     * @return Specification for the Kubernetes Environment to use for the App Service plan.
     * 
     */
    public Optional> kubeEnvironmentProfile() {
        return Optional.ofNullable(this.kubeEnvironmentProfile);
    }

    /**
     * Resource Location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource Location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan
     * 
     */
    @Import(name="maximumElasticWorkerCount")
    private @Nullable Output maximumElasticWorkerCount;

    /**
     * @return Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan
     * 
     */
    public Optional> maximumElasticWorkerCount() {
        return Optional.ofNullable(this.maximumElasticWorkerCount);
    }

    /**
     * Name of the App Service plan.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the App Service plan.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
     * If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
     * 
     */
    @Import(name="perSiteScaling")
    private @Nullable Output perSiteScaling;

    /**
     * @return If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
     * If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
     * 
     */
    public Optional> perSiteScaling() {
        return Optional.ofNullable(this.perSiteScaling);
    }

    /**
     * If Linux app service plan <code>true</code>, <code>false</code> otherwise.
     * 
     */
    @Import(name="reserved")
    private @Nullable Output reserved;

    /**
     * @return If Linux app service plan <code>true</code>, <code>false</code> otherwise.
     * 
     */
    public Optional> reserved() {
        return Optional.ofNullable(this.reserved);
    }

    /**
     * Name of the resource group to which the resource belongs.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return Name of the resource group to which the resource belongs.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Description of a SKU for a scalable resource.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return Description of a SKU for a scalable resource.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * The time when the server farm expires. Valid only if it is a spot server farm.
     * 
     */
    @Import(name="spotExpirationTime")
    private @Nullable Output spotExpirationTime;

    /**
     * @return The time when the server farm expires. Valid only if it is a spot server farm.
     * 
     */
    public Optional> spotExpirationTime() {
        return Optional.ofNullable(this.spotExpirationTime);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Scaling worker count.
     * 
     */
    @Import(name="targetWorkerCount")
    private @Nullable Output targetWorkerCount;

    /**
     * @return Scaling worker count.
     * 
     */
    public Optional> targetWorkerCount() {
        return Optional.ofNullable(this.targetWorkerCount);
    }

    /**
     * Scaling worker size ID.
     * 
     */
    @Import(name="targetWorkerSizeId")
    private @Nullable Output targetWorkerSizeId;

    /**
     * @return Scaling worker size ID.
     * 
     */
    public Optional> targetWorkerSizeId() {
        return Optional.ofNullable(this.targetWorkerSizeId);
    }

    /**
     * Target worker tier assigned to the App Service plan.
     * 
     */
    @Import(name="workerTierName")
    private @Nullable Output workerTierName;

    /**
     * @return Target worker tier assigned to the App Service plan.
     * 
     */
    public Optional> workerTierName() {
        return Optional.ofNullable(this.workerTierName);
    }

    /**
     * If <code>true</code>, this App Service Plan will perform availability zone balancing.
     * If <code>false</code>, this App Service Plan will not perform availability zone balancing.
     * 
     */
    @Import(name="zoneRedundant")
    private @Nullable Output zoneRedundant;

    /**
     * @return If <code>true</code>, this App Service Plan will perform availability zone balancing.
     * If <code>false</code>, this App Service Plan will not perform availability zone balancing.
     * 
     */
    public Optional> zoneRedundant() {
        return Optional.ofNullable(this.zoneRedundant);
    }

    private AppServicePlanArgs() {}

    private AppServicePlanArgs(AppServicePlanArgs $) {
        this.elasticScaleEnabled = $.elasticScaleEnabled;
        this.extendedLocation = $.extendedLocation;
        this.freeOfferExpirationTime = $.freeOfferExpirationTime;
        this.hostingEnvironmentProfile = $.hostingEnvironmentProfile;
        this.hyperV = $.hyperV;
        this.isSpot = $.isSpot;
        this.isXenon = $.isXenon;
        this.kind = $.kind;
        this.kubeEnvironmentProfile = $.kubeEnvironmentProfile;
        this.location = $.location;
        this.maximumElasticWorkerCount = $.maximumElasticWorkerCount;
        this.name = $.name;
        this.perSiteScaling = $.perSiteScaling;
        this.reserved = $.reserved;
        this.resourceGroupName = $.resourceGroupName;
        this.sku = $.sku;
        this.spotExpirationTime = $.spotExpirationTime;
        this.tags = $.tags;
        this.targetWorkerCount = $.targetWorkerCount;
        this.targetWorkerSizeId = $.targetWorkerSizeId;
        this.workerTierName = $.workerTierName;
        this.zoneRedundant = $.zoneRedundant;
    }

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

    public static final class Builder {
        private AppServicePlanArgs $;

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

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

        /**
         * @param elasticScaleEnabled ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku
         * 
         * @return builder
         * 
         */
        public Builder elasticScaleEnabled(@Nullable Output elasticScaleEnabled) {
            $.elasticScaleEnabled = elasticScaleEnabled;
            return this;
        }

        /**
         * @param elasticScaleEnabled ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku
         * 
         * @return builder
         * 
         */
        public Builder elasticScaleEnabled(Boolean elasticScaleEnabled) {
            return elasticScaleEnabled(Output.of(elasticScaleEnabled));
        }

        /**
         * @param extendedLocation Extended Location.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(@Nullable Output extendedLocation) {
            $.extendedLocation = extendedLocation;
            return this;
        }

        /**
         * @param extendedLocation Extended Location.
         * 
         * @return builder
         * 
         */
        public Builder extendedLocation(ExtendedLocationArgs extendedLocation) {
            return extendedLocation(Output.of(extendedLocation));
        }

        /**
         * @param freeOfferExpirationTime The time when the server farm free offer expires.
         * 
         * @return builder
         * 
         */
        public Builder freeOfferExpirationTime(@Nullable Output freeOfferExpirationTime) {
            $.freeOfferExpirationTime = freeOfferExpirationTime;
            return this;
        }

        /**
         * @param freeOfferExpirationTime The time when the server farm free offer expires.
         * 
         * @return builder
         * 
         */
        public Builder freeOfferExpirationTime(String freeOfferExpirationTime) {
            return freeOfferExpirationTime(Output.of(freeOfferExpirationTime));
        }

        /**
         * @param hostingEnvironmentProfile Specification for the App Service Environment to use for the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder hostingEnvironmentProfile(@Nullable Output hostingEnvironmentProfile) {
            $.hostingEnvironmentProfile = hostingEnvironmentProfile;
            return this;
        }

        /**
         * @param hostingEnvironmentProfile Specification for the App Service Environment to use for the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder hostingEnvironmentProfile(HostingEnvironmentProfileArgs hostingEnvironmentProfile) {
            return hostingEnvironmentProfile(Output.of(hostingEnvironmentProfile));
        }

        /**
         * @param hyperV If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
         * 
         * @return builder
         * 
         */
        public Builder hyperV(@Nullable Output hyperV) {
            $.hyperV = hyperV;
            return this;
        }

        /**
         * @param hyperV If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
         * 
         * @return builder
         * 
         */
        public Builder hyperV(Boolean hyperV) {
            return hyperV(Output.of(hyperV));
        }

        /**
         * @param isSpot If <code>true</code>, this App Service Plan owns spot instances.
         * 
         * @return builder
         * 
         */
        public Builder isSpot(@Nullable Output isSpot) {
            $.isSpot = isSpot;
            return this;
        }

        /**
         * @param isSpot If <code>true</code>, this App Service Plan owns spot instances.
         * 
         * @return builder
         * 
         */
        public Builder isSpot(Boolean isSpot) {
            return isSpot(Output.of(isSpot));
        }

        /**
         * @param isXenon Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
         * 
         * @return builder
         * 
         */
        public Builder isXenon(@Nullable Output isXenon) {
            $.isXenon = isXenon;
            return this;
        }

        /**
         * @param isXenon Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise.
         * 
         * @return builder
         * 
         */
        public Builder isXenon(Boolean isXenon) {
            return isXenon(Output.of(isXenon));
        }

        /**
         * @param kind Kind of resource.
         * 
         * @return builder
         * 
         */
        public Builder kind(@Nullable Output kind) {
            $.kind = kind;
            return this;
        }

        /**
         * @param kind Kind of resource.
         * 
         * @return builder
         * 
         */
        public Builder kind(String kind) {
            return kind(Output.of(kind));
        }

        /**
         * @param kubeEnvironmentProfile Specification for the Kubernetes Environment to use for the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder kubeEnvironmentProfile(@Nullable Output kubeEnvironmentProfile) {
            $.kubeEnvironmentProfile = kubeEnvironmentProfile;
            return this;
        }

        /**
         * @param kubeEnvironmentProfile Specification for the Kubernetes Environment to use for the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder kubeEnvironmentProfile(KubeEnvironmentProfileArgs kubeEnvironmentProfile) {
            return kubeEnvironmentProfile(Output.of(kubeEnvironmentProfile));
        }

        /**
         * @param location Resource Location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource Location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param maximumElasticWorkerCount Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan
         * 
         * @return builder
         * 
         */
        public Builder maximumElasticWorkerCount(@Nullable Output maximumElasticWorkerCount) {
            $.maximumElasticWorkerCount = maximumElasticWorkerCount;
            return this;
        }

        /**
         * @param maximumElasticWorkerCount Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan
         * 
         * @return builder
         * 
         */
        public Builder maximumElasticWorkerCount(Integer maximumElasticWorkerCount) {
            return maximumElasticWorkerCount(Output.of(maximumElasticWorkerCount));
        }

        /**
         * @param name Name of the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param perSiteScaling If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
         * If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
         * 
         * @return builder
         * 
         */
        public Builder perSiteScaling(@Nullable Output perSiteScaling) {
            $.perSiteScaling = perSiteScaling;
            return this;
        }

        /**
         * @param perSiteScaling If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
         * If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
         * 
         * @return builder
         * 
         */
        public Builder perSiteScaling(Boolean perSiteScaling) {
            return perSiteScaling(Output.of(perSiteScaling));
        }

        /**
         * @param reserved If Linux app service plan <code>true</code>, <code>false</code> otherwise.
         * 
         * @return builder
         * 
         */
        public Builder reserved(@Nullable Output reserved) {
            $.reserved = reserved;
            return this;
        }

        /**
         * @param reserved If Linux app service plan <code>true</code>, <code>false</code> otherwise.
         * 
         * @return builder
         * 
         */
        public Builder reserved(Boolean reserved) {
            return reserved(Output.of(reserved));
        }

        /**
         * @param resourceGroupName Name of the resource group to which the resource belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName Name of the resource group to which the resource belongs.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param sku Description of a SKU for a scalable resource.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku Description of a SKU for a scalable resource.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuDescriptionArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param spotExpirationTime The time when the server farm expires. Valid only if it is a spot server farm.
         * 
         * @return builder
         * 
         */
        public Builder spotExpirationTime(@Nullable Output spotExpirationTime) {
            $.spotExpirationTime = spotExpirationTime;
            return this;
        }

        /**
         * @param spotExpirationTime The time when the server farm expires. Valid only if it is a spot server farm.
         * 
         * @return builder
         * 
         */
        public Builder spotExpirationTime(String spotExpirationTime) {
            return spotExpirationTime(Output.of(spotExpirationTime));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param targetWorkerCount Scaling worker count.
         * 
         * @return builder
         * 
         */
        public Builder targetWorkerCount(@Nullable Output targetWorkerCount) {
            $.targetWorkerCount = targetWorkerCount;
            return this;
        }

        /**
         * @param targetWorkerCount Scaling worker count.
         * 
         * @return builder
         * 
         */
        public Builder targetWorkerCount(Integer targetWorkerCount) {
            return targetWorkerCount(Output.of(targetWorkerCount));
        }

        /**
         * @param targetWorkerSizeId Scaling worker size ID.
         * 
         * @return builder
         * 
         */
        public Builder targetWorkerSizeId(@Nullable Output targetWorkerSizeId) {
            $.targetWorkerSizeId = targetWorkerSizeId;
            return this;
        }

        /**
         * @param targetWorkerSizeId Scaling worker size ID.
         * 
         * @return builder
         * 
         */
        public Builder targetWorkerSizeId(Integer targetWorkerSizeId) {
            return targetWorkerSizeId(Output.of(targetWorkerSizeId));
        }

        /**
         * @param workerTierName Target worker tier assigned to the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder workerTierName(@Nullable Output workerTierName) {
            $.workerTierName = workerTierName;
            return this;
        }

        /**
         * @param workerTierName Target worker tier assigned to the App Service plan.
         * 
         * @return builder
         * 
         */
        public Builder workerTierName(String workerTierName) {
            return workerTierName(Output.of(workerTierName));
        }

        /**
         * @param zoneRedundant If <code>true</code>, this App Service Plan will perform availability zone balancing.
         * If <code>false</code>, this App Service Plan will not perform availability zone balancing.
         * 
         * @return builder
         * 
         */
        public Builder zoneRedundant(@Nullable Output zoneRedundant) {
            $.zoneRedundant = zoneRedundant;
            return this;
        }

        /**
         * @param zoneRedundant If <code>true</code>, this App Service Plan will perform availability zone balancing.
         * If <code>false</code>, this App Service Plan will not perform availability zone balancing.
         * 
         * @return builder
         * 
         */
        public Builder zoneRedundant(Boolean zoneRedundant) {
            return zoneRedundant(Output.of(zoneRedundant));
        }

        public AppServicePlanArgs build() {
            $.hyperV = Codegen.booleanProp("hyperV").output().arg($.hyperV).def(false).getNullable();
            $.isXenon = Codegen.booleanProp("isXenon").output().arg($.isXenon).def(false).getNullable();
            $.perSiteScaling = Codegen.booleanProp("perSiteScaling").output().arg($.perSiteScaling).def(false).getNullable();
            $.reserved = Codegen.booleanProp("reserved").output().arg($.reserved).def(false).getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("AppServicePlanArgs", "resourceGroupName");
            }
            $.zoneRedundant = Codegen.booleanProp("zoneRedundant").output().arg($.zoneRedundant).def(false).getNullable();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy