import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface AsScalingPolicyConfig extends cdktf.TerraformMetaArguments { /** * Specifies whether the adjustment is an absolute number or a percentage of the current capacity. Valid values: `CHANGE_IN_CAPACITY`, `EXACT_CAPACITY` and `PERCENT_CHANGE_IN_CAPACITY`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#adjustment_type AsScalingPolicy#adjustment_type} */ readonly adjustmentType?: string; /** * Define the number of instances by which to scale.For `CHANGE_IN_CAPACITY` type or PERCENT_CHANGE_IN_CAPACITY, a positive increment adds to the current capacity and a negative value removes from the current capacity. For `EXACT_CAPACITY` type, it defines an absolute number of the existing Auto Scaling group size. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#adjustment_value AsScalingPolicy#adjustment_value} */ readonly adjustmentValue?: number; /** * Comparison operator. Valid values: `GREATER_THAN`, `GREATER_THAN_OR_EQUAL_TO`, `LESS_THAN`, `LESS_THAN_OR_EQUAL_TO`, `EQUAL_TO` and `NOT_EQUAL_TO`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#comparison_operator AsScalingPolicy#comparison_operator} */ readonly comparisonOperator?: string; /** * Retry times. Valid value ranges: (1~10). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#continuous_time AsScalingPolicy#continuous_time} */ readonly continuousTime?: number; /** * Cooldwon time in second. Default is `300`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#cooldown AsScalingPolicy#cooldown} */ readonly cooldown?: number; /** * Whether to disable scaling down applies only to the target tracking strategy; the default value is false. Value range: true: The target tracking strategy only triggers scaling up; false: The target tracking strategy triggers both scaling up and scaling down. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#disable_scale_in AsScalingPolicy#disable_scale_in} */ readonly disableScaleIn?: boolean | cdktf.IResolvable; /** * Instance warm-up time, in seconds, applicable only to target tracking strategies. Value range is 0-3600, with a default warm-up time of 300 seconds. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#estimated_instance_warmup AsScalingPolicy#estimated_instance_warmup} */ readonly estimatedInstanceWarmup?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#id AsScalingPolicy#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * Name of an indicator. Valid values: `CPU_UTILIZATION`, `MEM_UTILIZATION`, `LAN_TRAFFIC_OUT`, `LAN_TRAFFIC_IN`, `WAN_TRAFFIC_OUT` and `WAN_TRAFFIC_IN`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#metric_name AsScalingPolicy#metric_name} */ readonly metricName?: string; /** * An ID group of users to be notified when an alarm is triggered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#notification_user_group_ids AsScalingPolicy#notification_user_group_ids} */ readonly notificationUserGroupIds?: string[]; /** * Time period in second. Valid values: `60` and `300`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#period AsScalingPolicy#period} */ readonly period?: number; /** * Name of a policy used to define a reaction when an alarm is triggered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#policy_name AsScalingPolicy#policy_name} */ readonly policyName: string; /** * Alarm triggering policy type, the default type is SIMPLE. Value range: SIMPLE: Simple policy; TARGET_TRACKING: Target tracking policy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#policy_type AsScalingPolicy#policy_type} */ readonly policyType?: string; /** * Predefined monitoring items, applicable only to target tracking policies, and required in target tracking policy scenarios. Value range: ASG_AVG_CPU_UTILIZATION: Average CPU utilization; ASG_AVG_LAN_TRAFFIC_OUT: Average intranet outbound bandwidth; ASG_AVG_LAN_TRAFFIC_IN: Average intranet inbound bandwidth; ASG_AVG_WAN_TRAFFIC_OUT: Average internet outbound bandwidth; ASG_AVG_WAN_TRAFFIC_IN: Average internet inbound bandwidth. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#predefined_metric_type AsScalingPolicy#predefined_metric_type} */ readonly predefinedMetricType?: string; /** * ID of a scaling group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#scaling_group_id AsScalingPolicy#scaling_group_id} */ readonly scalingGroupId: string; /** * Statistic types. Valid values: `AVERAGE`, `MAXIMUM` and `MINIMUM`. Default is `AVERAGE`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#statistic AsScalingPolicy#statistic} */ readonly statistic?: string; /** * Target value, applicable only to target tracking strategies, and required in target tracking strategy scenarios. ASG_AVG_CPU_UTILIZATION: [1, 100), Unit: %; ASG_AVG_LAN_TRAFFIC_OUT: >0, Unit: Mbps; ASG_AVG_LAN_TRAFFIC_IN: >0, Unit: Mbps; ASG_AVG_WAN_TRAFFIC_OUT: >0, Unit: Mbps; ASG_AVG_WAN_TRAFFIC_IN: >0, Unit: Mbps. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#target_value AsScalingPolicy#target_value} */ readonly targetValue?: number; /** * Alarm threshold. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#threshold AsScalingPolicy#threshold} */ readonly threshold?: number; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy tencentcloud_as_scaling_policy} */ export declare class AsScalingPolicy extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_as_scaling_policy"; /** * Generates CDKTF code for importing a AsScalingPolicy resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the AsScalingPolicy to import * @param importFromId The id of the existing AsScalingPolicy that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the AsScalingPolicy to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/as_scaling_policy tencentcloud_as_scaling_policy} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options AsScalingPolicyConfig */ constructor(scope: Construct, id: string, config: AsScalingPolicyConfig); private _adjustmentType?; get adjustmentType(): string; set adjustmentType(value: string); resetAdjustmentType(): void; get adjustmentTypeInput(): string; private _adjustmentValue?; get adjustmentValue(): number; set adjustmentValue(value: number); resetAdjustmentValue(): void; get adjustmentValueInput(): number; private _comparisonOperator?; get comparisonOperator(): string; set comparisonOperator(value: string); resetComparisonOperator(): void; get comparisonOperatorInput(): string; private _continuousTime?; get continuousTime(): number; set continuousTime(value: number); resetContinuousTime(): void; get continuousTimeInput(): number; private _cooldown?; get cooldown(): number; set cooldown(value: number); resetCooldown(): void; get cooldownInput(): number; private _disableScaleIn?; get disableScaleIn(): boolean | cdktf.IResolvable; set disableScaleIn(value: boolean | cdktf.IResolvable); resetDisableScaleIn(): void; get disableScaleInInput(): any; private _estimatedInstanceWarmup?; get estimatedInstanceWarmup(): number; set estimatedInstanceWarmup(value: number); resetEstimatedInstanceWarmup(): void; get estimatedInstanceWarmupInput(): number; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _metricName?; get metricName(): string; set metricName(value: string); resetMetricName(): void; get metricNameInput(): string; private _notificationUserGroupIds?; get notificationUserGroupIds(): string[]; set notificationUserGroupIds(value: string[]); resetNotificationUserGroupIds(): void; get notificationUserGroupIdsInput(): string[]; private _period?; get period(): number; set period(value: number); resetPeriod(): void; get periodInput(): number; private _policyName?; get policyName(): string; set policyName(value: string); get policyNameInput(): string; private _policyType?; get policyType(): string; set policyType(value: string); resetPolicyType(): void; get policyTypeInput(): string; private _predefinedMetricType?; get predefinedMetricType(): string; set predefinedMetricType(value: string); resetPredefinedMetricType(): void; get predefinedMetricTypeInput(): string; private _scalingGroupId?; get scalingGroupId(): string; set scalingGroupId(value: string); get scalingGroupIdInput(): string; private _statistic?; get statistic(): string; set statistic(value: string); resetStatistic(): void; get statisticInput(): string; private _targetValue?; get targetValue(): number; set targetValue(value: number); resetTargetValue(): void; get targetValueInput(): number; private _threshold?; get threshold(): number; set threshold(value: number); resetThreshold(): void; get thresholdInput(): number; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }