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

com.amazonaws.services.autoscaling.model.ScalingPolicy Maven / Gradle / Ivy

Go to download

The AWS SDK for Java with support for OSGi. The AWS SDK for Java provides Java APIs for building software on AWS' cost-effective, scalable, and reliable infrastructure products. The AWS Java SDK allows developers to code against APIs for all of Amazon's infrastructure web services (Amazon S3, Amazon EC2, Amazon SQS, Amazon Relational Database Service, Amazon AutoScaling, etc).

There is a newer version: 1.11.60
Show newest version
/*
 * Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not
 * use this file except in compliance with the License. A copy of the License is
 * located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.autoscaling.model;

import java.io.Serializable;

/**
 * 

* Describes a scaling policy. *

*/ public class ScalingPolicy implements Serializable, Cloneable { /** *

* The name of the Auto Scaling group associated with this scaling policy. *

*/ private String autoScalingGroupName; /** *

* The name of the scaling policy. *

*/ private String policyName; /** *

* The Amazon Resource Name (ARN) of the policy. *

*/ private String policyARN; /** *

* The policy type. Valid values are SimpleScaling and * StepScaling. *

*/ private String policyType; /** *

* The adjustment type, which specifies how ScalingAdjustment * is interpreted. Valid values are ChangeInCapacity, * ExactCapacity, and PercentChangeInCapacity. *

*/ private String adjustmentType; /** *

* Available for backward compatibility. Use * MinAdjustmentMagnitude instead. *

*/ private Integer minAdjustmentStep; /** *

* The minimum number of instances to scale. If the value of * AdjustmentType is PercentChangeInCapacity, the * scaling policy changes the DesiredCapacity of the Auto * Scaling group by at least this many instances. Otherwise, the error is * ValidationError. *

*/ private Integer minAdjustmentMagnitude; /** *

* The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number * removes from the current capacity. *

*/ private Integer scalingAdjustment; /** *

* The amount of time, in seconds, after a scaling activity completes before * any further trigger-related scaling activities can start. *

*/ private Integer cooldown; /** *

* A set of adjustments that enable you to scale based on the size of the * alarm breach. *

*/ private com.amazonaws.internal.SdkInternalList stepAdjustments; /** *

* The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and Average. *

*/ private String metricAggregationType; /** *

* The estimated time, in seconds, until a newly launched instance can * contribute to the CloudWatch metrics. *

*/ private Integer estimatedInstanceWarmup; /** *

* The CloudWatch alarms related to the policy. *

*/ private com.amazonaws.internal.SdkInternalList alarms; /** *

* The name of the Auto Scaling group associated with this scaling policy. *

* * @param autoScalingGroupName * The name of the Auto Scaling group associated with this scaling * policy. */ public void setAutoScalingGroupName(String autoScalingGroupName) { this.autoScalingGroupName = autoScalingGroupName; } /** *

* The name of the Auto Scaling group associated with this scaling policy. *

* * @return The name of the Auto Scaling group associated with this scaling * policy. */ public String getAutoScalingGroupName() { return this.autoScalingGroupName; } /** *

* The name of the Auto Scaling group associated with this scaling policy. *

* * @param autoScalingGroupName * The name of the Auto Scaling group associated with this scaling * policy. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withAutoScalingGroupName(String autoScalingGroupName) { setAutoScalingGroupName(autoScalingGroupName); return this; } /** *

* The name of the scaling policy. *

* * @param policyName * The name of the scaling policy. */ public void setPolicyName(String policyName) { this.policyName = policyName; } /** *

* The name of the scaling policy. *

* * @return The name of the scaling policy. */ public String getPolicyName() { return this.policyName; } /** *

* The name of the scaling policy. *

* * @param policyName * The name of the scaling policy. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withPolicyName(String policyName) { setPolicyName(policyName); return this; } /** *

* The Amazon Resource Name (ARN) of the policy. *

* * @param policyARN * The Amazon Resource Name (ARN) of the policy. */ public void setPolicyARN(String policyARN) { this.policyARN = policyARN; } /** *

* The Amazon Resource Name (ARN) of the policy. *

* * @return The Amazon Resource Name (ARN) of the policy. */ public String getPolicyARN() { return this.policyARN; } /** *

* The Amazon Resource Name (ARN) of the policy. *

* * @param policyARN * The Amazon Resource Name (ARN) of the policy. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withPolicyARN(String policyARN) { setPolicyARN(policyARN); return this; } /** *

* The policy type. Valid values are SimpleScaling and * StepScaling. *

* * @param policyType * The policy type. Valid values are SimpleScaling and * StepScaling. */ public void setPolicyType(String policyType) { this.policyType = policyType; } /** *

* The policy type. Valid values are SimpleScaling and * StepScaling. *

* * @return The policy type. Valid values are SimpleScaling and * StepScaling. */ public String getPolicyType() { return this.policyType; } /** *

* The policy type. Valid values are SimpleScaling and * StepScaling. *

* * @param policyType * The policy type. Valid values are SimpleScaling and * StepScaling. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withPolicyType(String policyType) { setPolicyType(policyType); return this; } /** *

* The adjustment type, which specifies how ScalingAdjustment * is interpreted. Valid values are ChangeInCapacity, * ExactCapacity, and PercentChangeInCapacity. *

* * @param adjustmentType * The adjustment type, which specifies how * ScalingAdjustment is interpreted. Valid values are * ChangeInCapacity, ExactCapacity, and * PercentChangeInCapacity. */ public void setAdjustmentType(String adjustmentType) { this.adjustmentType = adjustmentType; } /** *

* The adjustment type, which specifies how ScalingAdjustment * is interpreted. Valid values are ChangeInCapacity, * ExactCapacity, and PercentChangeInCapacity. *

* * @return The adjustment type, which specifies how * ScalingAdjustment is interpreted. Valid values are * ChangeInCapacity, ExactCapacity, and * PercentChangeInCapacity. */ public String getAdjustmentType() { return this.adjustmentType; } /** *

* The adjustment type, which specifies how ScalingAdjustment * is interpreted. Valid values are ChangeInCapacity, * ExactCapacity, and PercentChangeInCapacity. *

* * @param adjustmentType * The adjustment type, which specifies how * ScalingAdjustment is interpreted. Valid values are * ChangeInCapacity, ExactCapacity, and * PercentChangeInCapacity. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withAdjustmentType(String adjustmentType) { setAdjustmentType(adjustmentType); return this; } /** *

* Available for backward compatibility. Use * MinAdjustmentMagnitude instead. *

* * @param minAdjustmentStep * Available for backward compatibility. Use * MinAdjustmentMagnitude instead. */ public void setMinAdjustmentStep(Integer minAdjustmentStep) { this.minAdjustmentStep = minAdjustmentStep; } /** *

* Available for backward compatibility. Use * MinAdjustmentMagnitude instead. *

* * @return Available for backward compatibility. Use * MinAdjustmentMagnitude instead. */ public Integer getMinAdjustmentStep() { return this.minAdjustmentStep; } /** *

* Available for backward compatibility. Use * MinAdjustmentMagnitude instead. *

* * @param minAdjustmentStep * Available for backward compatibility. Use * MinAdjustmentMagnitude instead. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withMinAdjustmentStep(Integer minAdjustmentStep) { setMinAdjustmentStep(minAdjustmentStep); return this; } /** *

* The minimum number of instances to scale. If the value of * AdjustmentType is PercentChangeInCapacity, the * scaling policy changes the DesiredCapacity of the Auto * Scaling group by at least this many instances. Otherwise, the error is * ValidationError. *

* * @param minAdjustmentMagnitude * The minimum number of instances to scale. If the value of * AdjustmentType is * PercentChangeInCapacity, the scaling policy changes * the DesiredCapacity of the Auto Scaling group by at * least this many instances. Otherwise, the error is * ValidationError. */ public void setMinAdjustmentMagnitude(Integer minAdjustmentMagnitude) { this.minAdjustmentMagnitude = minAdjustmentMagnitude; } /** *

* The minimum number of instances to scale. If the value of * AdjustmentType is PercentChangeInCapacity, the * scaling policy changes the DesiredCapacity of the Auto * Scaling group by at least this many instances. Otherwise, the error is * ValidationError. *

* * @return The minimum number of instances to scale. If the value of * AdjustmentType is * PercentChangeInCapacity, the scaling policy changes * the DesiredCapacity of the Auto Scaling group by at * least this many instances. Otherwise, the error is * ValidationError. */ public Integer getMinAdjustmentMagnitude() { return this.minAdjustmentMagnitude; } /** *

* The minimum number of instances to scale. If the value of * AdjustmentType is PercentChangeInCapacity, the * scaling policy changes the DesiredCapacity of the Auto * Scaling group by at least this many instances. Otherwise, the error is * ValidationError. *

* * @param minAdjustmentMagnitude * The minimum number of instances to scale. If the value of * AdjustmentType is * PercentChangeInCapacity, the scaling policy changes * the DesiredCapacity of the Auto Scaling group by at * least this many instances. Otherwise, the error is * ValidationError. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withMinAdjustmentMagnitude( Integer minAdjustmentMagnitude) { setMinAdjustmentMagnitude(minAdjustmentMagnitude); return this; } /** *

* The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number * removes from the current capacity. *

* * @param scalingAdjustment * The amount by which to scale, based on the specified adjustment * type. A positive value adds to the current capacity while a * negative number removes from the current capacity. */ public void setScalingAdjustment(Integer scalingAdjustment) { this.scalingAdjustment = scalingAdjustment; } /** *

* The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number * removes from the current capacity. *

* * @return The amount by which to scale, based on the specified adjustment * type. A positive value adds to the current capacity while a * negative number removes from the current capacity. */ public Integer getScalingAdjustment() { return this.scalingAdjustment; } /** *

* The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number * removes from the current capacity. *

* * @param scalingAdjustment * The amount by which to scale, based on the specified adjustment * type. A positive value adds to the current capacity while a * negative number removes from the current capacity. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withScalingAdjustment(Integer scalingAdjustment) { setScalingAdjustment(scalingAdjustment); return this; } /** *

* The amount of time, in seconds, after a scaling activity completes before * any further trigger-related scaling activities can start. *

* * @param cooldown * The amount of time, in seconds, after a scaling activity completes * before any further trigger-related scaling activities can start. */ public void setCooldown(Integer cooldown) { this.cooldown = cooldown; } /** *

* The amount of time, in seconds, after a scaling activity completes before * any further trigger-related scaling activities can start. *

* * @return The amount of time, in seconds, after a scaling activity * completes before any further trigger-related scaling activities * can start. */ public Integer getCooldown() { return this.cooldown; } /** *

* The amount of time, in seconds, after a scaling activity completes before * any further trigger-related scaling activities can start. *

* * @param cooldown * The amount of time, in seconds, after a scaling activity completes * before any further trigger-related scaling activities can start. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withCooldown(Integer cooldown) { setCooldown(cooldown); return this; } /** *

* A set of adjustments that enable you to scale based on the size of the * alarm breach. *

* * @return A set of adjustments that enable you to scale based on the size * of the alarm breach. */ public java.util.List getStepAdjustments() { if (stepAdjustments == null) { stepAdjustments = new com.amazonaws.internal.SdkInternalList(); } return stepAdjustments; } /** *

* A set of adjustments that enable you to scale based on the size of the * alarm breach. *

* * @param stepAdjustments * A set of adjustments that enable you to scale based on the size of * the alarm breach. */ public void setStepAdjustments( java.util.Collection stepAdjustments) { if (stepAdjustments == null) { this.stepAdjustments = null; return; } this.stepAdjustments = new com.amazonaws.internal.SdkInternalList( stepAdjustments); } /** *

* A set of adjustments that enable you to scale based on the size of the * alarm breach. *

*

* NOTE: This method appends the values to the existing list (if * any). Use {@link #setStepAdjustments(java.util.Collection)} or * {@link #withStepAdjustments(java.util.Collection)} if you want to * override the existing values. *

* * @param stepAdjustments * A set of adjustments that enable you to scale based on the size of * the alarm breach. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withStepAdjustments(StepAdjustment... stepAdjustments) { if (this.stepAdjustments == null) { setStepAdjustments(new com.amazonaws.internal.SdkInternalList( stepAdjustments.length)); } for (StepAdjustment ele : stepAdjustments) { this.stepAdjustments.add(ele); } return this; } /** *

* A set of adjustments that enable you to scale based on the size of the * alarm breach. *

* * @param stepAdjustments * A set of adjustments that enable you to scale based on the size of * the alarm breach. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withStepAdjustments( java.util.Collection stepAdjustments) { setStepAdjustments(stepAdjustments); return this; } /** *

* The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and Average. *

* * @param metricAggregationType * The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and * Average. */ public void setMetricAggregationType(String metricAggregationType) { this.metricAggregationType = metricAggregationType; } /** *

* The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and Average. *

* * @return The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and * Average. */ public String getMetricAggregationType() { return this.metricAggregationType; } /** *

* The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and Average. *

* * @param metricAggregationType * The aggregation type for the CloudWatch metrics. Valid values are * Minimum, Maximum, and * Average. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withMetricAggregationType(String metricAggregationType) { setMetricAggregationType(metricAggregationType); return this; } /** *

* The estimated time, in seconds, until a newly launched instance can * contribute to the CloudWatch metrics. *

* * @param estimatedInstanceWarmup * The estimated time, in seconds, until a newly launched instance * can contribute to the CloudWatch metrics. */ public void setEstimatedInstanceWarmup(Integer estimatedInstanceWarmup) { this.estimatedInstanceWarmup = estimatedInstanceWarmup; } /** *

* The estimated time, in seconds, until a newly launched instance can * contribute to the CloudWatch metrics. *

* * @return The estimated time, in seconds, until a newly launched instance * can contribute to the CloudWatch metrics. */ public Integer getEstimatedInstanceWarmup() { return this.estimatedInstanceWarmup; } /** *

* The estimated time, in seconds, until a newly launched instance can * contribute to the CloudWatch metrics. *

* * @param estimatedInstanceWarmup * The estimated time, in seconds, until a newly launched instance * can contribute to the CloudWatch metrics. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withEstimatedInstanceWarmup( Integer estimatedInstanceWarmup) { setEstimatedInstanceWarmup(estimatedInstanceWarmup); return this; } /** *

* The CloudWatch alarms related to the policy. *

* * @return The CloudWatch alarms related to the policy. */ public java.util.List getAlarms() { if (alarms == null) { alarms = new com.amazonaws.internal.SdkInternalList(); } return alarms; } /** *

* The CloudWatch alarms related to the policy. *

* * @param alarms * The CloudWatch alarms related to the policy. */ public void setAlarms(java.util.Collection alarms) { if (alarms == null) { this.alarms = null; return; } this.alarms = new com.amazonaws.internal.SdkInternalList(alarms); } /** *

* The CloudWatch alarms related to the policy. *

*

* NOTE: This method appends the values to the existing list (if * any). Use {@link #setAlarms(java.util.Collection)} or * {@link #withAlarms(java.util.Collection)} if you want to override the * existing values. *

* * @param alarms * The CloudWatch alarms related to the policy. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withAlarms(Alarm... alarms) { if (this.alarms == null) { setAlarms(new com.amazonaws.internal.SdkInternalList( alarms.length)); } for (Alarm ele : alarms) { this.alarms.add(ele); } return this; } /** *

* The CloudWatch alarms related to the policy. *

* * @param alarms * The CloudWatch alarms related to the policy. * @return Returns a reference to this object so that method calls can be * chained together. */ public ScalingPolicy withAlarms(java.util.Collection alarms) { setAlarms(alarms); return this; } /** * Returns a string representation of this object; useful for testing and * debugging. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getAutoScalingGroupName() != null) sb.append("AutoScalingGroupName: " + getAutoScalingGroupName() + ","); if (getPolicyName() != null) sb.append("PolicyName: " + getPolicyName() + ","); if (getPolicyARN() != null) sb.append("PolicyARN: " + getPolicyARN() + ","); if (getPolicyType() != null) sb.append("PolicyType: " + getPolicyType() + ","); if (getAdjustmentType() != null) sb.append("AdjustmentType: " + getAdjustmentType() + ","); if (getMinAdjustmentStep() != null) sb.append("MinAdjustmentStep: " + getMinAdjustmentStep() + ","); if (getMinAdjustmentMagnitude() != null) sb.append("MinAdjustmentMagnitude: " + getMinAdjustmentMagnitude() + ","); if (getScalingAdjustment() != null) sb.append("ScalingAdjustment: " + getScalingAdjustment() + ","); if (getCooldown() != null) sb.append("Cooldown: " + getCooldown() + ","); if (getStepAdjustments() != null) sb.append("StepAdjustments: " + getStepAdjustments() + ","); if (getMetricAggregationType() != null) sb.append("MetricAggregationType: " + getMetricAggregationType() + ","); if (getEstimatedInstanceWarmup() != null) sb.append("EstimatedInstanceWarmup: " + getEstimatedInstanceWarmup() + ","); if (getAlarms() != null) sb.append("Alarms: " + getAlarms()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof ScalingPolicy == false) return false; ScalingPolicy other = (ScalingPolicy) obj; if (other.getAutoScalingGroupName() == null ^ this.getAutoScalingGroupName() == null) return false; if (other.getAutoScalingGroupName() != null && other.getAutoScalingGroupName().equals( this.getAutoScalingGroupName()) == false) return false; if (other.getPolicyName() == null ^ this.getPolicyName() == null) return false; if (other.getPolicyName() != null && other.getPolicyName().equals(this.getPolicyName()) == false) return false; if (other.getPolicyARN() == null ^ this.getPolicyARN() == null) return false; if (other.getPolicyARN() != null && other.getPolicyARN().equals(this.getPolicyARN()) == false) return false; if (other.getPolicyType() == null ^ this.getPolicyType() == null) return false; if (other.getPolicyType() != null && other.getPolicyType().equals(this.getPolicyType()) == false) return false; if (other.getAdjustmentType() == null ^ this.getAdjustmentType() == null) return false; if (other.getAdjustmentType() != null && other.getAdjustmentType().equals(this.getAdjustmentType()) == false) return false; if (other.getMinAdjustmentStep() == null ^ this.getMinAdjustmentStep() == null) return false; if (other.getMinAdjustmentStep() != null && other.getMinAdjustmentStep().equals( this.getMinAdjustmentStep()) == false) return false; if (other.getMinAdjustmentMagnitude() == null ^ this.getMinAdjustmentMagnitude() == null) return false; if (other.getMinAdjustmentMagnitude() != null && other.getMinAdjustmentMagnitude().equals( this.getMinAdjustmentMagnitude()) == false) return false; if (other.getScalingAdjustment() == null ^ this.getScalingAdjustment() == null) return false; if (other.getScalingAdjustment() != null && other.getScalingAdjustment().equals( this.getScalingAdjustment()) == false) return false; if (other.getCooldown() == null ^ this.getCooldown() == null) return false; if (other.getCooldown() != null && other.getCooldown().equals(this.getCooldown()) == false) return false; if (other.getStepAdjustments() == null ^ this.getStepAdjustments() == null) return false; if (other.getStepAdjustments() != null && other.getStepAdjustments().equals(this.getStepAdjustments()) == false) return false; if (other.getMetricAggregationType() == null ^ this.getMetricAggregationType() == null) return false; if (other.getMetricAggregationType() != null && other.getMetricAggregationType().equals( this.getMetricAggregationType()) == false) return false; if (other.getEstimatedInstanceWarmup() == null ^ this.getEstimatedInstanceWarmup() == null) return false; if (other.getEstimatedInstanceWarmup() != null && other.getEstimatedInstanceWarmup().equals( this.getEstimatedInstanceWarmup()) == false) return false; if (other.getAlarms() == null ^ this.getAlarms() == null) return false; if (other.getAlarms() != null && other.getAlarms().equals(this.getAlarms()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getAutoScalingGroupName() == null) ? 0 : getAutoScalingGroupName().hashCode()); hashCode = prime * hashCode + ((getPolicyName() == null) ? 0 : getPolicyName().hashCode()); hashCode = prime * hashCode + ((getPolicyARN() == null) ? 0 : getPolicyARN().hashCode()); hashCode = prime * hashCode + ((getPolicyType() == null) ? 0 : getPolicyType().hashCode()); hashCode = prime * hashCode + ((getAdjustmentType() == null) ? 0 : getAdjustmentType() .hashCode()); hashCode = prime * hashCode + ((getMinAdjustmentStep() == null) ? 0 : getMinAdjustmentStep().hashCode()); hashCode = prime * hashCode + ((getMinAdjustmentMagnitude() == null) ? 0 : getMinAdjustmentMagnitude().hashCode()); hashCode = prime * hashCode + ((getScalingAdjustment() == null) ? 0 : getScalingAdjustment().hashCode()); hashCode = prime * hashCode + ((getCooldown() == null) ? 0 : getCooldown().hashCode()); hashCode = prime * hashCode + ((getStepAdjustments() == null) ? 0 : getStepAdjustments() .hashCode()); hashCode = prime * hashCode + ((getMetricAggregationType() == null) ? 0 : getMetricAggregationType().hashCode()); hashCode = prime * hashCode + ((getEstimatedInstanceWarmup() == null) ? 0 : getEstimatedInstanceWarmup().hashCode()); hashCode = prime * hashCode + ((getAlarms() == null) ? 0 : getAlarms().hashCode()); return hashCode; } @Override public ScalingPolicy clone() { try { return (ScalingPolicy) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException( "Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy