Class CfnScalingPolicy

java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
All Implemented Interfaces:
IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct, software.constructs.IDependable

@Generated(value="jsii-pacmak/1.101.0 (build b95fe5d)", date="2024-07-12T19:33:57.903Z") @Stability(Stable) public class CfnScalingPolicy extends CfnResource implements IInspectable
The AWS::AutoScaling::ScalingPolicy resource specifies an Amazon EC2 Auto Scaling scaling policy so that the Auto Scaling group can scale the number of instances available for your application.

For more information about using scaling policies to scale your Auto Scaling group automatically, see Dynamic scaling and Predictive scaling in the Amazon EC2 Auto Scaling User Guide .

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.autoscaling.*;
 CfnScalingPolicy cfnScalingPolicy = CfnScalingPolicy.Builder.create(this, "MyCfnScalingPolicy")
         .autoScalingGroupName("autoScalingGroupName")
         // the properties below are optional
         .adjustmentType("adjustmentType")
         .cooldown("cooldown")
         .estimatedInstanceWarmup(123)
         .metricAggregationType("metricAggregationType")
         .minAdjustmentMagnitude(123)
         .policyType("policyType")
         .predictiveScalingConfiguration(PredictiveScalingConfigurationProperty.builder()
                 .metricSpecifications(List.of(PredictiveScalingMetricSpecificationProperty.builder()
                         .targetValue(123)
                         // the properties below are optional
                         .customizedCapacityMetricSpecification(PredictiveScalingCustomizedCapacityMetricProperty.builder()
                                 .metricDataQueries(List.of(MetricDataQueryProperty.builder()
                                         .id("id")
                                         // the properties below are optional
                                         .expression("expression")
                                         .label("label")
                                         .metricStat(MetricStatProperty.builder()
                                                 .metric(MetricProperty.builder()
                                                         .metricName("metricName")
                                                         .namespace("namespace")
                                                         // the properties below are optional
                                                         .dimensions(List.of(MetricDimensionProperty.builder()
                                                                 .name("name")
                                                                 .value("value")
                                                                 .build()))
                                                         .build())
                                                 .stat("stat")
                                                 // the properties below are optional
                                                 .unit("unit")
                                                 .build())
                                         .returnData(false)
                                         .build()))
                                 .build())
                         .customizedLoadMetricSpecification(PredictiveScalingCustomizedLoadMetricProperty.builder()
                                 .metricDataQueries(List.of(MetricDataQueryProperty.builder()
                                         .id("id")
                                         // the properties below are optional
                                         .expression("expression")
                                         .label("label")
                                         .metricStat(MetricStatProperty.builder()
                                                 .metric(MetricProperty.builder()
                                                         .metricName("metricName")
                                                         .namespace("namespace")
                                                         // the properties below are optional
                                                         .dimensions(List.of(MetricDimensionProperty.builder()
                                                                 .name("name")
                                                                 .value("value")
                                                                 .build()))
                                                         .build())
                                                 .stat("stat")
                                                 // the properties below are optional
                                                 .unit("unit")
                                                 .build())
                                         .returnData(false)
                                         .build()))
                                 .build())
                         .customizedScalingMetricSpecification(PredictiveScalingCustomizedScalingMetricProperty.builder()
                                 .metricDataQueries(List.of(MetricDataQueryProperty.builder()
                                         .id("id")
                                         // the properties below are optional
                                         .expression("expression")
                                         .label("label")
                                         .metricStat(MetricStatProperty.builder()
                                                 .metric(MetricProperty.builder()
                                                         .metricName("metricName")
                                                         .namespace("namespace")
                                                         // the properties below are optional
                                                         .dimensions(List.of(MetricDimensionProperty.builder()
                                                                 .name("name")
                                                                 .value("value")
                                                                 .build()))
                                                         .build())
                                                 .stat("stat")
                                                 // the properties below are optional
                                                 .unit("unit")
                                                 .build())
                                         .returnData(false)
                                         .build()))
                                 .build())
                         .predefinedLoadMetricSpecification(PredictiveScalingPredefinedLoadMetricProperty.builder()
                                 .predefinedMetricType("predefinedMetricType")
                                 // the properties below are optional
                                 .resourceLabel("resourceLabel")
                                 .build())
                         .predefinedMetricPairSpecification(PredictiveScalingPredefinedMetricPairProperty.builder()
                                 .predefinedMetricType("predefinedMetricType")
                                 // the properties below are optional
                                 .resourceLabel("resourceLabel")
                                 .build())
                         .predefinedScalingMetricSpecification(PredictiveScalingPredefinedScalingMetricProperty.builder()
                                 .predefinedMetricType("predefinedMetricType")
                                 // the properties below are optional
                                 .resourceLabel("resourceLabel")
                                 .build())
                         .build()))
                 // the properties below are optional
                 .maxCapacityBreachBehavior("maxCapacityBreachBehavior")
                 .maxCapacityBuffer(123)
                 .mode("mode")
                 .schedulingBufferTime(123)
                 .build())
         .scalingAdjustment(123)
         .stepAdjustments(List.of(StepAdjustmentProperty.builder()
                 .scalingAdjustment(123)
                 // the properties below are optional
                 .metricIntervalLowerBound(123)
                 .metricIntervalUpperBound(123)
                 .build()))
         .targetTrackingConfiguration(TargetTrackingConfigurationProperty.builder()
                 .targetValue(123)
                 // the properties below are optional
                 .customizedMetricSpecification(CustomizedMetricSpecificationProperty.builder()
                         .dimensions(List.of(MetricDimensionProperty.builder()
                                 .name("name")
                                 .value("value")
                                 .build()))
                         .metricName("metricName")
                         .metrics(List.of(TargetTrackingMetricDataQueryProperty.builder()
                                 .id("id")
                                 // the properties below are optional
                                 .expression("expression")
                                 .label("label")
                                 .metricStat(TargetTrackingMetricStatProperty.builder()
                                         .metric(MetricProperty.builder()
                                                 .metricName("metricName")
                                                 .namespace("namespace")
                                                 // the properties below are optional
                                                 .dimensions(List.of(MetricDimensionProperty.builder()
                                                         .name("name")
                                                         .value("value")
                                                         .build()))
                                                 .build())
                                         .stat("stat")
                                         // the properties below are optional
                                         .unit("unit")
                                         .build())
                                 .returnData(false)
                                 .build()))
                         .namespace("namespace")
                         .statistic("statistic")
                         .unit("unit")
                         .build())
                 .disableScaleIn(false)
                 .predefinedMetricSpecification(PredefinedMetricSpecificationProperty.builder()
                         .predefinedMetricType("predefinedMetricType")
                         // the properties below are optional
                         .resourceLabel("resourceLabel")
                         .build())
                 .build())
         .build();
 

See Also:
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnScalingPolicy

      protected CfnScalingPolicy(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnScalingPolicy

      protected CfnScalingPolicy(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnScalingPolicy

      @Stability(Stable) public CfnScalingPolicy(@NotNull software.constructs.Construct scope, @NotNull String id, @NotNull CfnScalingPolicyProps props)
      Parameters:
      scope - Scope in which this resource is defined. This parameter is required.
      id - Construct identifier for this resource (unique in its scope). This parameter is required.
      props - Resource properties. This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector - tree inspector to collect and process attributes. This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrArn

      @Stability(Stable) @NotNull public String getAttrArn()
      Returns the ARN of a scaling policy.
    • getAttrPolicyName

      @Stability(Stable) @NotNull public String getAttrPolicyName()
      Returns the name of a scaling policy.
    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getAutoScalingGroupName

      @Stability(Stable) @NotNull public String getAutoScalingGroupName()
      The name of the Auto Scaling group.
    • setAutoScalingGroupName

      @Stability(Stable) public void setAutoScalingGroupName(@NotNull String value)
      The name of the Auto Scaling group.
    • getAdjustmentType

      @Stability(Stable) @Nullable public String getAdjustmentType()
      Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).
    • setAdjustmentType

      @Stability(Stable) public void setAdjustmentType(@Nullable String value)
      Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage).
    • getCooldown

      @Stability(Stable) @Nullable public String getCooldown()
      A cooldown period, in seconds, that applies to a specific simple scaling policy.
    • setCooldown

      @Stability(Stable) public void setCooldown(@Nullable String value)
      A cooldown period, in seconds, that applies to a specific simple scaling policy.
    • getEstimatedInstanceWarmup

      @Stability(Stable) @Nullable public Number getEstimatedInstanceWarmup()
      Not needed if the default instance warmup is defined for the group..
    • setEstimatedInstanceWarmup

      @Stability(Stable) public void setEstimatedInstanceWarmup(@Nullable Number value)
      Not needed if the default instance warmup is defined for the group..
    • getMetricAggregationType

      @Stability(Stable) @Nullable public String getMetricAggregationType()
      The aggregation type for the CloudWatch metrics.
    • setMetricAggregationType

      @Stability(Stable) public void setMetricAggregationType(@Nullable String value)
      The aggregation type for the CloudWatch metrics.
    • getMinAdjustmentMagnitude

      @Stability(Stable) @Nullable public Number getMinAdjustmentMagnitude()
      The minimum value to scale by when the adjustment type is PercentChangeInCapacity .
    • setMinAdjustmentMagnitude

      @Stability(Stable) public void setMinAdjustmentMagnitude(@Nullable Number value)
      The minimum value to scale by when the adjustment type is PercentChangeInCapacity .
    • getPolicyType

      @Stability(Stable) @Nullable public String getPolicyType()
      One of the following policy types:.
    • setPolicyType

      @Stability(Stable) public void setPolicyType(@Nullable String value)
      One of the following policy types:.
    • getPredictiveScalingConfiguration

      @Stability(Stable) @Nullable public Object getPredictiveScalingConfiguration()
      A predictive scaling policy.

      Provides support for predefined and custom metrics.

    • setPredictiveScalingConfiguration

      @Stability(Stable) public void setPredictiveScalingConfiguration(@Nullable IResolvable value)
      A predictive scaling policy.

      Provides support for predefined and custom metrics.

    • setPredictiveScalingConfiguration

      @Stability(Stable) public void setPredictiveScalingConfiguration(@Nullable CfnScalingPolicy.PredictiveScalingConfigurationProperty value)
      A predictive scaling policy.

      Provides support for predefined and custom metrics.

    • getScalingAdjustment

      @Stability(Stable) @Nullable public Number getScalingAdjustment()
      The amount by which to scale, based on the specified adjustment type.
    • setScalingAdjustment

      @Stability(Stable) public void setScalingAdjustment(@Nullable Number value)
      The amount by which to scale, based on the specified adjustment type.
    • getStepAdjustments

      @Stability(Stable) @Nullable public Object getStepAdjustments()
      A set of adjustments that enable you to scale based on the size of the alarm breach.
    • setStepAdjustments

      @Stability(Stable) public void setStepAdjustments(@Nullable IResolvable value)
      A set of adjustments that enable you to scale based on the size of the alarm breach.
    • setStepAdjustments

      @Stability(Stable) public void setStepAdjustments(@Nullable List<Object> value)
      A set of adjustments that enable you to scale based on the size of the alarm breach.
    • getTargetTrackingConfiguration

      @Stability(Stable) @Nullable public Object getTargetTrackingConfiguration()
      A target tracking scaling policy.

      Provides support for predefined or custom metrics.

    • setTargetTrackingConfiguration

      @Stability(Stable) public void setTargetTrackingConfiguration(@Nullable IResolvable value)
      A target tracking scaling policy.

      Provides support for predefined or custom metrics.

    • setTargetTrackingConfiguration

      @Stability(Stable) public void setTargetTrackingConfiguration(@Nullable CfnScalingPolicy.TargetTrackingConfigurationProperty value)
      A target tracking scaling policy.

      Provides support for predefined or custom metrics.