/* * Copyright 2018-2023 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; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class PutScalingPolicyRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The name of the Auto Scaling group. *

*/ private String autoScalingGroupName; /** *

* The name of the policy. *

*/ private String policyName; /** *

* One of the following policy types: *

* */ private String policyType; /** *

* Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid * values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity. *

*

* Required if the policy type is StepScaling or SimpleScaling. For more information, see * * Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide. *

*/ private String adjustmentType; /** *

* Available for backward compatibility. Use MinAdjustmentMagnitude instead. *

*/ private Integer minAdjustmentStep; /** *

* The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, * suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a * MinAdjustmentMagnitude of 2. If the group has 4 instances and the scaling policy is performed, 25 * percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Amazon EC2 Auto * Scaling scales out the group by 2 instances. *

*

* Valid only if the policy type is StepScaling or SimpleScaling. For more information, * see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide. *

* *

* Some Auto Scaling groups use instance weights. In this case, set the MinAdjustmentMagnitude to a * value that is at least as large as your largest instance weight. *

*
*/ 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. For exact capacity, you must specify a * non-negative value. *

*

* Required if the policy type is SimpleScaling. (Not used with any other policy type.) *

*/ private Integer scalingAdjustment; /** *

* A cooldown period, in seconds, that applies to a specific simple scaling policy. When a cooldown period is * specified here, it overrides the default cooldown. *

*

* Valid only if the policy type is SimpleScaling. For more information, see Scaling cooldowns for Amazon EC2 Auto * Scaling in the Amazon EC2 Auto Scaling User Guide. *

*

* Default: None *

*/ private Integer cooldown; /** *

* The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, * and Average. If the aggregation type is null, the value is treated as Average. *

*

* Valid only if the policy type is StepScaling. *

*/ private String metricAggregationType; /** *

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

*

* Required if the policy type is StepScaling. (Not used with any other policy type.) *

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

* Not needed if the default instance warmup is defined for the group. *

*

* The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. This * warm-up period applies to instances launched due to a specific target tracking or step scaling policy. When a * warm-up period is specified here, it overrides the default instance warmup. *

*

* Valid only if the policy type is TargetTrackingScaling or StepScaling. *

* *

* The default is to use the value for the default instance warmup defined for the group. If default instance warmup * is null, then EstimatedInstanceWarmup falls back to the value of default cooldown. *

*
*/ private Integer estimatedInstanceWarmup; /** *

* A target tracking scaling policy. Provides support for predefined or custom metrics. *

*

* The following predefined metrics are available: *

* *

* If you specify ALBRequestCountPerTarget for the metric, you must specify the * ResourceLabel property with the PredefinedMetricSpecification. *

*

* For more information, see TargetTrackingConfiguration in the Amazon EC2 Auto Scaling API Reference. *

*

* Required if the policy type is TargetTrackingScaling. *

*/ private TargetTrackingConfiguration targetTrackingConfiguration; /** *

* Indicates whether the scaling policy is enabled or disabled. The default is enabled. For more information, see Disabling a * scaling policy for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide. *

*/ private Boolean enabled; /** *

* A predictive scaling policy. Provides support for predefined and custom metrics. *

*

* Predefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count. *

*

* For more information, see PredictiveScalingConfiguration in the Amazon EC2 Auto Scaling API Reference. *

*

* Required if the policy type is PredictiveScaling. *

*/ private PredictiveScalingConfiguration predictiveScalingConfiguration; /** *

* The name of the Auto Scaling group. *

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

* The name of the Auto Scaling group. *

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

* The name of the Auto Scaling group. *

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

* The name of the policy. *

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

* The name of the policy. *

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

* The name of the policy. *

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

* One of the following policy types: *

* * * @param policyType * One of the following policy types:

*