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

com.pulumi.azurenative.containerservice.inputs.ManagedClusterPropertiesAutoScalerProfileArgs Maven / Gradle / Ivy

// *** 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.containerservice.inputs;

import com.pulumi.azurenative.containerservice.enums.Expander;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Parameters to be applied to the cluster-autoscaler when enabled
 * 
 */
public final class ManagedClusterPropertiesAutoScalerProfileArgs extends com.pulumi.resources.ResourceArgs {

    public static final ManagedClusterPropertiesAutoScalerProfileArgs Empty = new ManagedClusterPropertiesAutoScalerProfileArgs();

    /**
     * Valid values are 'true' and 'false'
     * 
     */
    @Import(name="balanceSimilarNodeGroups")
    private @Nullable Output balanceSimilarNodeGroups;

    /**
     * @return Valid values are 'true' and 'false'
     * 
     */
    public Optional> balanceSimilarNodeGroups() {
        return Optional.ofNullable(this.balanceSimilarNodeGroups);
    }

    /**
     * If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information.
     * 
     */
    @Import(name="expander")
    private @Nullable Output> expander;

    /**
     * @return If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information.
     * 
     */
    public Optional>> expander() {
        return Optional.ofNullable(this.expander);
    }

    /**
     * The default is 10.
     * 
     */
    @Import(name="maxEmptyBulkDelete")
    private @Nullable Output maxEmptyBulkDelete;

    /**
     * @return The default is 10.
     * 
     */
    public Optional> maxEmptyBulkDelete() {
        return Optional.ofNullable(this.maxEmptyBulkDelete);
    }

    /**
     * The default is 600.
     * 
     */
    @Import(name="maxGracefulTerminationSec")
    private @Nullable Output maxGracefulTerminationSec;

    /**
     * @return The default is 600.
     * 
     */
    public Optional> maxGracefulTerminationSec() {
        return Optional.ofNullable(this.maxGracefulTerminationSec);
    }

    /**
     * The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    @Import(name="maxNodeProvisionTime")
    private @Nullable Output maxNodeProvisionTime;

    /**
     * @return The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    public Optional> maxNodeProvisionTime() {
        return Optional.ofNullable(this.maxNodeProvisionTime);
    }

    /**
     * The default is 45. The maximum is 100 and the minimum is 0.
     * 
     */
    @Import(name="maxTotalUnreadyPercentage")
    private @Nullable Output maxTotalUnreadyPercentage;

    /**
     * @return The default is 45. The maximum is 100 and the minimum is 0.
     * 
     */
    public Optional> maxTotalUnreadyPercentage() {
        return Optional.ofNullable(this.maxTotalUnreadyPercentage);
    }

    /**
     * For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc).
     * 
     */
    @Import(name="newPodScaleUpDelay")
    private @Nullable Output newPodScaleUpDelay;

    /**
     * @return For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc).
     * 
     */
    public Optional> newPodScaleUpDelay() {
        return Optional.ofNullable(this.newPodScaleUpDelay);
    }

    /**
     * This must be an integer. The default is 3.
     * 
     */
    @Import(name="okTotalUnreadyCount")
    private @Nullable Output okTotalUnreadyCount;

    /**
     * @return This must be an integer. The default is 3.
     * 
     */
    public Optional> okTotalUnreadyCount() {
        return Optional.ofNullable(this.okTotalUnreadyCount);
    }

    /**
     * The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    @Import(name="scaleDownDelayAfterAdd")
    private @Nullable Output scaleDownDelayAfterAdd;

    /**
     * @return The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    public Optional> scaleDownDelayAfterAdd() {
        return Optional.ofNullable(this.scaleDownDelayAfterAdd);
    }

    /**
     * The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    @Import(name="scaleDownDelayAfterDelete")
    private @Nullable Output scaleDownDelayAfterDelete;

    /**
     * @return The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    public Optional> scaleDownDelayAfterDelete() {
        return Optional.ofNullable(this.scaleDownDelayAfterDelete);
    }

    /**
     * The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    @Import(name="scaleDownDelayAfterFailure")
    private @Nullable Output scaleDownDelayAfterFailure;

    /**
     * @return The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    public Optional> scaleDownDelayAfterFailure() {
        return Optional.ofNullable(this.scaleDownDelayAfterFailure);
    }

    /**
     * The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    @Import(name="scaleDownUnneededTime")
    private @Nullable Output scaleDownUnneededTime;

    /**
     * @return The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    public Optional> scaleDownUnneededTime() {
        return Optional.ofNullable(this.scaleDownUnneededTime);
    }

    /**
     * The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    @Import(name="scaleDownUnreadyTime")
    private @Nullable Output scaleDownUnreadyTime;

    /**
     * @return The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
     * 
     */
    public Optional> scaleDownUnreadyTime() {
        return Optional.ofNullable(this.scaleDownUnreadyTime);
    }

    /**
     * The default is '0.5'.
     * 
     */
    @Import(name="scaleDownUtilizationThreshold")
    private @Nullable Output scaleDownUtilizationThreshold;

    /**
     * @return The default is '0.5'.
     * 
     */
    public Optional> scaleDownUtilizationThreshold() {
        return Optional.ofNullable(this.scaleDownUtilizationThreshold);
    }

    /**
     * The default is '10'. Values must be an integer number of seconds.
     * 
     */
    @Import(name="scanInterval")
    private @Nullable Output scanInterval;

    /**
     * @return The default is '10'. Values must be an integer number of seconds.
     * 
     */
    public Optional> scanInterval() {
        return Optional.ofNullable(this.scanInterval);
    }

    /**
     * The default is true.
     * 
     */
    @Import(name="skipNodesWithLocalStorage")
    private @Nullable Output skipNodesWithLocalStorage;

    /**
     * @return The default is true.
     * 
     */
    public Optional> skipNodesWithLocalStorage() {
        return Optional.ofNullable(this.skipNodesWithLocalStorage);
    }

    /**
     * The default is true.
     * 
     */
    @Import(name="skipNodesWithSystemPods")
    private @Nullable Output skipNodesWithSystemPods;

    /**
     * @return The default is true.
     * 
     */
    public Optional> skipNodesWithSystemPods() {
        return Optional.ofNullable(this.skipNodesWithSystemPods);
    }

    private ManagedClusterPropertiesAutoScalerProfileArgs() {}

    private ManagedClusterPropertiesAutoScalerProfileArgs(ManagedClusterPropertiesAutoScalerProfileArgs $) {
        this.balanceSimilarNodeGroups = $.balanceSimilarNodeGroups;
        this.expander = $.expander;
        this.maxEmptyBulkDelete = $.maxEmptyBulkDelete;
        this.maxGracefulTerminationSec = $.maxGracefulTerminationSec;
        this.maxNodeProvisionTime = $.maxNodeProvisionTime;
        this.maxTotalUnreadyPercentage = $.maxTotalUnreadyPercentage;
        this.newPodScaleUpDelay = $.newPodScaleUpDelay;
        this.okTotalUnreadyCount = $.okTotalUnreadyCount;
        this.scaleDownDelayAfterAdd = $.scaleDownDelayAfterAdd;
        this.scaleDownDelayAfterDelete = $.scaleDownDelayAfterDelete;
        this.scaleDownDelayAfterFailure = $.scaleDownDelayAfterFailure;
        this.scaleDownUnneededTime = $.scaleDownUnneededTime;
        this.scaleDownUnreadyTime = $.scaleDownUnreadyTime;
        this.scaleDownUtilizationThreshold = $.scaleDownUtilizationThreshold;
        this.scanInterval = $.scanInterval;
        this.skipNodesWithLocalStorage = $.skipNodesWithLocalStorage;
        this.skipNodesWithSystemPods = $.skipNodesWithSystemPods;
    }

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

    public static final class Builder {
        private ManagedClusterPropertiesAutoScalerProfileArgs $;

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

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

        /**
         * @param balanceSimilarNodeGroups Valid values are 'true' and 'false'
         * 
         * @return builder
         * 
         */
        public Builder balanceSimilarNodeGroups(@Nullable Output balanceSimilarNodeGroups) {
            $.balanceSimilarNodeGroups = balanceSimilarNodeGroups;
            return this;
        }

        /**
         * @param balanceSimilarNodeGroups Valid values are 'true' and 'false'
         * 
         * @return builder
         * 
         */
        public Builder balanceSimilarNodeGroups(String balanceSimilarNodeGroups) {
            return balanceSimilarNodeGroups(Output.of(balanceSimilarNodeGroups));
        }

        /**
         * @param expander If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information.
         * 
         * @return builder
         * 
         */
        public Builder expander(@Nullable Output> expander) {
            $.expander = expander;
            return this;
        }

        /**
         * @param expander If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information.
         * 
         * @return builder
         * 
         */
        public Builder expander(Either expander) {
            return expander(Output.of(expander));
        }

        /**
         * @param expander If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information.
         * 
         * @return builder
         * 
         */
        public Builder expander(String expander) {
            return expander(Either.ofLeft(expander));
        }

        /**
         * @param expander If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information.
         * 
         * @return builder
         * 
         */
        public Builder expander(Expander expander) {
            return expander(Either.ofRight(expander));
        }

        /**
         * @param maxEmptyBulkDelete The default is 10.
         * 
         * @return builder
         * 
         */
        public Builder maxEmptyBulkDelete(@Nullable Output maxEmptyBulkDelete) {
            $.maxEmptyBulkDelete = maxEmptyBulkDelete;
            return this;
        }

        /**
         * @param maxEmptyBulkDelete The default is 10.
         * 
         * @return builder
         * 
         */
        public Builder maxEmptyBulkDelete(String maxEmptyBulkDelete) {
            return maxEmptyBulkDelete(Output.of(maxEmptyBulkDelete));
        }

        /**
         * @param maxGracefulTerminationSec The default is 600.
         * 
         * @return builder
         * 
         */
        public Builder maxGracefulTerminationSec(@Nullable Output maxGracefulTerminationSec) {
            $.maxGracefulTerminationSec = maxGracefulTerminationSec;
            return this;
        }

        /**
         * @param maxGracefulTerminationSec The default is 600.
         * 
         * @return builder
         * 
         */
        public Builder maxGracefulTerminationSec(String maxGracefulTerminationSec) {
            return maxGracefulTerminationSec(Output.of(maxGracefulTerminationSec));
        }

        /**
         * @param maxNodeProvisionTime The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder maxNodeProvisionTime(@Nullable Output maxNodeProvisionTime) {
            $.maxNodeProvisionTime = maxNodeProvisionTime;
            return this;
        }

        /**
         * @param maxNodeProvisionTime The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder maxNodeProvisionTime(String maxNodeProvisionTime) {
            return maxNodeProvisionTime(Output.of(maxNodeProvisionTime));
        }

        /**
         * @param maxTotalUnreadyPercentage The default is 45. The maximum is 100 and the minimum is 0.
         * 
         * @return builder
         * 
         */
        public Builder maxTotalUnreadyPercentage(@Nullable Output maxTotalUnreadyPercentage) {
            $.maxTotalUnreadyPercentage = maxTotalUnreadyPercentage;
            return this;
        }

        /**
         * @param maxTotalUnreadyPercentage The default is 45. The maximum is 100 and the minimum is 0.
         * 
         * @return builder
         * 
         */
        public Builder maxTotalUnreadyPercentage(String maxTotalUnreadyPercentage) {
            return maxTotalUnreadyPercentage(Output.of(maxTotalUnreadyPercentage));
        }

        /**
         * @param newPodScaleUpDelay For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc).
         * 
         * @return builder
         * 
         */
        public Builder newPodScaleUpDelay(@Nullable Output newPodScaleUpDelay) {
            $.newPodScaleUpDelay = newPodScaleUpDelay;
            return this;
        }

        /**
         * @param newPodScaleUpDelay For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc).
         * 
         * @return builder
         * 
         */
        public Builder newPodScaleUpDelay(String newPodScaleUpDelay) {
            return newPodScaleUpDelay(Output.of(newPodScaleUpDelay));
        }

        /**
         * @param okTotalUnreadyCount This must be an integer. The default is 3.
         * 
         * @return builder
         * 
         */
        public Builder okTotalUnreadyCount(@Nullable Output okTotalUnreadyCount) {
            $.okTotalUnreadyCount = okTotalUnreadyCount;
            return this;
        }

        /**
         * @param okTotalUnreadyCount This must be an integer. The default is 3.
         * 
         * @return builder
         * 
         */
        public Builder okTotalUnreadyCount(String okTotalUnreadyCount) {
            return okTotalUnreadyCount(Output.of(okTotalUnreadyCount));
        }

        /**
         * @param scaleDownDelayAfterAdd The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownDelayAfterAdd(@Nullable Output scaleDownDelayAfterAdd) {
            $.scaleDownDelayAfterAdd = scaleDownDelayAfterAdd;
            return this;
        }

        /**
         * @param scaleDownDelayAfterAdd The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownDelayAfterAdd(String scaleDownDelayAfterAdd) {
            return scaleDownDelayAfterAdd(Output.of(scaleDownDelayAfterAdd));
        }

        /**
         * @param scaleDownDelayAfterDelete The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownDelayAfterDelete(@Nullable Output scaleDownDelayAfterDelete) {
            $.scaleDownDelayAfterDelete = scaleDownDelayAfterDelete;
            return this;
        }

        /**
         * @param scaleDownDelayAfterDelete The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownDelayAfterDelete(String scaleDownDelayAfterDelete) {
            return scaleDownDelayAfterDelete(Output.of(scaleDownDelayAfterDelete));
        }

        /**
         * @param scaleDownDelayAfterFailure The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownDelayAfterFailure(@Nullable Output scaleDownDelayAfterFailure) {
            $.scaleDownDelayAfterFailure = scaleDownDelayAfterFailure;
            return this;
        }

        /**
         * @param scaleDownDelayAfterFailure The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownDelayAfterFailure(String scaleDownDelayAfterFailure) {
            return scaleDownDelayAfterFailure(Output.of(scaleDownDelayAfterFailure));
        }

        /**
         * @param scaleDownUnneededTime The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownUnneededTime(@Nullable Output scaleDownUnneededTime) {
            $.scaleDownUnneededTime = scaleDownUnneededTime;
            return this;
        }

        /**
         * @param scaleDownUnneededTime The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownUnneededTime(String scaleDownUnneededTime) {
            return scaleDownUnneededTime(Output.of(scaleDownUnneededTime));
        }

        /**
         * @param scaleDownUnreadyTime The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownUnreadyTime(@Nullable Output scaleDownUnreadyTime) {
            $.scaleDownUnreadyTime = scaleDownUnreadyTime;
            return this;
        }

        /**
         * @param scaleDownUnreadyTime The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownUnreadyTime(String scaleDownUnreadyTime) {
            return scaleDownUnreadyTime(Output.of(scaleDownUnreadyTime));
        }

        /**
         * @param scaleDownUtilizationThreshold The default is '0.5'.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownUtilizationThreshold(@Nullable Output scaleDownUtilizationThreshold) {
            $.scaleDownUtilizationThreshold = scaleDownUtilizationThreshold;
            return this;
        }

        /**
         * @param scaleDownUtilizationThreshold The default is '0.5'.
         * 
         * @return builder
         * 
         */
        public Builder scaleDownUtilizationThreshold(String scaleDownUtilizationThreshold) {
            return scaleDownUtilizationThreshold(Output.of(scaleDownUtilizationThreshold));
        }

        /**
         * @param scanInterval The default is '10'. Values must be an integer number of seconds.
         * 
         * @return builder
         * 
         */
        public Builder scanInterval(@Nullable Output scanInterval) {
            $.scanInterval = scanInterval;
            return this;
        }

        /**
         * @param scanInterval The default is '10'. Values must be an integer number of seconds.
         * 
         * @return builder
         * 
         */
        public Builder scanInterval(String scanInterval) {
            return scanInterval(Output.of(scanInterval));
        }

        /**
         * @param skipNodesWithLocalStorage The default is true.
         * 
         * @return builder
         * 
         */
        public Builder skipNodesWithLocalStorage(@Nullable Output skipNodesWithLocalStorage) {
            $.skipNodesWithLocalStorage = skipNodesWithLocalStorage;
            return this;
        }

        /**
         * @param skipNodesWithLocalStorage The default is true.
         * 
         * @return builder
         * 
         */
        public Builder skipNodesWithLocalStorage(String skipNodesWithLocalStorage) {
            return skipNodesWithLocalStorage(Output.of(skipNodesWithLocalStorage));
        }

        /**
         * @param skipNodesWithSystemPods The default is true.
         * 
         * @return builder
         * 
         */
        public Builder skipNodesWithSystemPods(@Nullable Output skipNodesWithSystemPods) {
            $.skipNodesWithSystemPods = skipNodesWithSystemPods;
            return this;
        }

        /**
         * @param skipNodesWithSystemPods The default is true.
         * 
         * @return builder
         * 
         */
        public Builder skipNodesWithSystemPods(String skipNodesWithSystemPods) {
            return skipNodesWithSystemPods(Output.of(skipNodesWithSystemPods));
        }

        public ManagedClusterPropertiesAutoScalerProfileArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy