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

com.pulumi.spotinst.gke.outputs.OceanImportAutoscaler 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.gke.outputs;

import com.pulumi.core.annotations.CustomType;
import com.pulumi.spotinst.gke.outputs.OceanImportAutoscalerDown;
import com.pulumi.spotinst.gke.outputs.OceanImportAutoscalerHeadroom;
import com.pulumi.spotinst.gke.outputs.OceanImportAutoscalerResourceLimits;
import java.lang.Boolean;
import java.lang.Integer;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class OceanImportAutoscaler {
    /**
     * @return Optionally set the auto headroom percentage, set a number between 0-200 to control the headroom % from the cluster. Relevant when isAutoConfig=true.
     * 
     */
    private @Nullable Integer autoHeadroomPercentage;
    /**
     * @return Cooldown period between scaling actions.
     * 
     */
    private @Nullable Integer cooldown;
    /**
     * @return Auto Scaling scale down operations.
     * 
     */
    private @Nullable OceanImportAutoscalerDown down;
    /**
     * @return enables automatic and manual headroom to work in parallel. When set to false, automatic headroom overrides all other headroom definitions manually configured, whether they are at cluster or VNG level.
     * 
     */
    private @Nullable Boolean enableAutomaticAndManualHeadroom;
    /**
     * @return Spare resource capacity management enabling fast assignment of Pods without waiting for new resources to launch.
     * 
     */
    private @Nullable OceanImportAutoscalerHeadroom headroom;
    /**
     * @return Automatically configure and optimize headroom resources.
     * 
     */
    private @Nullable Boolean isAutoConfig;
    /**
     * @return Enable the Ocean Kubernetes Autoscaler.
     * 
     */
    private @Nullable Boolean isEnabled;
    /**
     * @return Optionally set upper and lower bounds on the resource usage of the cluster.
     * 
     */
    private @Nullable OceanImportAutoscalerResourceLimits resourceLimits;

    private OceanImportAutoscaler() {}
    /**
     * @return Optionally set the auto headroom percentage, set a number between 0-200 to control the headroom % from the cluster. Relevant when isAutoConfig=true.
     * 
     */
    public Optional autoHeadroomPercentage() {
        return Optional.ofNullable(this.autoHeadroomPercentage);
    }
    /**
     * @return Cooldown period between scaling actions.
     * 
     */
    public Optional cooldown() {
        return Optional.ofNullable(this.cooldown);
    }
    /**
     * @return Auto Scaling scale down operations.
     * 
     */
    public Optional down() {
        return Optional.ofNullable(this.down);
    }
    /**
     * @return enables automatic and manual headroom to work in parallel. When set to false, automatic headroom overrides all other headroom definitions manually configured, whether they are at cluster or VNG level.
     * 
     */
    public Optional enableAutomaticAndManualHeadroom() {
        return Optional.ofNullable(this.enableAutomaticAndManualHeadroom);
    }
    /**
     * @return Spare resource capacity management enabling fast assignment of Pods without waiting for new resources to launch.
     * 
     */
    public Optional headroom() {
        return Optional.ofNullable(this.headroom);
    }
    /**
     * @return Automatically configure and optimize headroom resources.
     * 
     */
    public Optional isAutoConfig() {
        return Optional.ofNullable(this.isAutoConfig);
    }
    /**
     * @return Enable the Ocean Kubernetes Autoscaler.
     * 
     */
    public Optional isEnabled() {
        return Optional.ofNullable(this.isEnabled);
    }
    /**
     * @return Optionally set upper and lower bounds on the resource usage of the cluster.
     * 
     */
    public Optional resourceLimits() {
        return Optional.ofNullable(this.resourceLimits);
    }

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

    public static Builder builder(OceanImportAutoscaler defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private @Nullable Integer autoHeadroomPercentage;
        private @Nullable Integer cooldown;
        private @Nullable OceanImportAutoscalerDown down;
        private @Nullable Boolean enableAutomaticAndManualHeadroom;
        private @Nullable OceanImportAutoscalerHeadroom headroom;
        private @Nullable Boolean isAutoConfig;
        private @Nullable Boolean isEnabled;
        private @Nullable OceanImportAutoscalerResourceLimits resourceLimits;
        public Builder() {}
        public Builder(OceanImportAutoscaler defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.autoHeadroomPercentage = defaults.autoHeadroomPercentage;
    	      this.cooldown = defaults.cooldown;
    	      this.down = defaults.down;
    	      this.enableAutomaticAndManualHeadroom = defaults.enableAutomaticAndManualHeadroom;
    	      this.headroom = defaults.headroom;
    	      this.isAutoConfig = defaults.isAutoConfig;
    	      this.isEnabled = defaults.isEnabled;
    	      this.resourceLimits = defaults.resourceLimits;
        }

        @CustomType.Setter
        public Builder autoHeadroomPercentage(@Nullable Integer autoHeadroomPercentage) {

            this.autoHeadroomPercentage = autoHeadroomPercentage;
            return this;
        }
        @CustomType.Setter
        public Builder cooldown(@Nullable Integer cooldown) {

            this.cooldown = cooldown;
            return this;
        }
        @CustomType.Setter
        public Builder down(@Nullable OceanImportAutoscalerDown down) {

            this.down = down;
            return this;
        }
        @CustomType.Setter
        public Builder enableAutomaticAndManualHeadroom(@Nullable Boolean enableAutomaticAndManualHeadroom) {

            this.enableAutomaticAndManualHeadroom = enableAutomaticAndManualHeadroom;
            return this;
        }
        @CustomType.Setter
        public Builder headroom(@Nullable OceanImportAutoscalerHeadroom headroom) {

            this.headroom = headroom;
            return this;
        }
        @CustomType.Setter
        public Builder isAutoConfig(@Nullable Boolean isAutoConfig) {

            this.isAutoConfig = isAutoConfig;
            return this;
        }
        @CustomType.Setter
        public Builder isEnabled(@Nullable Boolean isEnabled) {

            this.isEnabled = isEnabled;
            return this;
        }
        @CustomType.Setter
        public Builder resourceLimits(@Nullable OceanImportAutoscalerResourceLimits resourceLimits) {

            this.resourceLimits = resourceLimits;
            return this;
        }
        public OceanImportAutoscaler build() {
            final var _resultValue = new OceanImportAutoscaler();
            _resultValue.autoHeadroomPercentage = autoHeadroomPercentage;
            _resultValue.cooldown = cooldown;
            _resultValue.down = down;
            _resultValue.enableAutomaticAndManualHeadroom = enableAutomaticAndManualHeadroom;
            _resultValue.headroom = headroom;
            _resultValue.isAutoConfig = isAutoConfig;
            _resultValue.isEnabled = isEnabled;
            _resultValue.resourceLimits = resourceLimits;
            return _resultValue;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy