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

com.pulumi.spotinst.azure.inputs.OceanNpAutoscalerArgs Maven / Gradle / Ivy

The 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.spotinst.azure.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.spotinst.azure.inputs.OceanNpAutoscalerAutoscaleDownArgs;
import com.pulumi.spotinst.azure.inputs.OceanNpAutoscalerAutoscaleHeadroomArgs;
import com.pulumi.spotinst.azure.inputs.OceanNpAutoscalerResourceLimitsArgs;
import java.lang.Boolean;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final OceanNpAutoscalerArgs Empty = new OceanNpAutoscalerArgs();

    /**
     * Auto Scaling scale down operations.
     * 
     */
    @Import(name="autoscaleDown")
    private @Nullable Output autoscaleDown;

    /**
     * @return Auto Scaling scale down operations.
     * 
     */
    public Optional> autoscaleDown() {
        return Optional.ofNullable(this.autoscaleDown);
    }

    /**
     * Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
     * 
     */
    @Import(name="autoscaleHeadroom")
    private @Nullable Output autoscaleHeadroom;

    /**
     * @return Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
     * 
     */
    public Optional> autoscaleHeadroom() {
        return Optional.ofNullable(this.autoscaleHeadroom);
    }

    /**
     * Enable the Ocean Kubernetes Autoscaler.
     * 
     */
    @Import(name="autoscaleIsEnabled")
    private @Nullable Output autoscaleIsEnabled;

    /**
     * @return Enable the Ocean Kubernetes Autoscaler.
     * 
     */
    public Optional> autoscaleIsEnabled() {
        return Optional.ofNullable(this.autoscaleIsEnabled);
    }

    /**
     * Optionally set upper and lower bounds on the resource usage of the cluster.
     * 
     */
    @Import(name="resourceLimits")
    private @Nullable Output resourceLimits;

    /**
     * @return Optionally set upper and lower bounds on the resource usage of the cluster.
     * 
     */
    public Optional> resourceLimits() {
        return Optional.ofNullable(this.resourceLimits);
    }

    private OceanNpAutoscalerArgs() {}

    private OceanNpAutoscalerArgs(OceanNpAutoscalerArgs $) {
        this.autoscaleDown = $.autoscaleDown;
        this.autoscaleHeadroom = $.autoscaleHeadroom;
        this.autoscaleIsEnabled = $.autoscaleIsEnabled;
        this.resourceLimits = $.resourceLimits;
    }

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

    public static final class Builder {
        private OceanNpAutoscalerArgs $;

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

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

        /**
         * @param autoscaleDown Auto Scaling scale down operations.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleDown(@Nullable Output autoscaleDown) {
            $.autoscaleDown = autoscaleDown;
            return this;
        }

        /**
         * @param autoscaleDown Auto Scaling scale down operations.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleDown(OceanNpAutoscalerAutoscaleDownArgs autoscaleDown) {
            return autoscaleDown(Output.of(autoscaleDown));
        }

        /**
         * @param autoscaleHeadroom Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleHeadroom(@Nullable Output autoscaleHeadroom) {
            $.autoscaleHeadroom = autoscaleHeadroom;
            return this;
        }

        /**
         * @param autoscaleHeadroom Spare resource capacity management enabling fast assignment of pods without waiting for new resources to launch.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleHeadroom(OceanNpAutoscalerAutoscaleHeadroomArgs autoscaleHeadroom) {
            return autoscaleHeadroom(Output.of(autoscaleHeadroom));
        }

        /**
         * @param autoscaleIsEnabled Enable the Ocean Kubernetes Autoscaler.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleIsEnabled(@Nullable Output autoscaleIsEnabled) {
            $.autoscaleIsEnabled = autoscaleIsEnabled;
            return this;
        }

        /**
         * @param autoscaleIsEnabled Enable the Ocean Kubernetes Autoscaler.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleIsEnabled(Boolean autoscaleIsEnabled) {
            return autoscaleIsEnabled(Output.of(autoscaleIsEnabled));
        }

        /**
         * @param resourceLimits Optionally set upper and lower bounds on the resource usage of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder resourceLimits(@Nullable Output resourceLimits) {
            $.resourceLimits = resourceLimits;
            return this;
        }

        /**
         * @param resourceLimits Optionally set upper and lower bounds on the resource usage of the cluster.
         * 
         * @return builder
         * 
         */
        public Builder resourceLimits(OceanNpAutoscalerResourceLimitsArgs resourceLimits) {
            return resourceLimits(Output.of(resourceLimits));
        }

        public OceanNpAutoscalerArgs build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy