package ess

//Licensed under the Apache License, Version 2.0 (the "License");
//you may not use this file except in compliance with the License.
//You may obtain a copy of the License at
//
//http://www.apache.org/licenses/LICENSE-2.0
//
//Unless required by applicable law or agreed to in writing, software
//distributed under the License 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.
//
// Code generated by Alibaba Cloud SDK Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

// ScalingRule is a nested struct in ess response
type ScalingRule struct {
	MetricName               string                              `json:"MetricName" xml:"MetricName"`
	AdjustmentType           string                              `json:"AdjustmentType" xml:"AdjustmentType"`
	InitialMaxSize           int                                 `json:"InitialMaxSize" xml:"InitialMaxSize"`
	EstimatedInstanceWarmup  int                                 `json:"EstimatedInstanceWarmup" xml:"EstimatedInstanceWarmup"`
	ScaleOutEvaluationCount  int                                 `json:"ScaleOutEvaluationCount" xml:"ScaleOutEvaluationCount"`
	PredictiveScalingMode    string                              `json:"PredictiveScalingMode" xml:"PredictiveScalingMode"`
	MinAdjustmentMagnitude   int                                 `json:"MinAdjustmentMagnitude" xml:"MinAdjustmentMagnitude"`
	ScalingRuleAri           string                              `json:"ScalingRuleAri" xml:"ScalingRuleAri"`
	PredictiveTaskBufferTime int                                 `json:"PredictiveTaskBufferTime" xml:"PredictiveTaskBufferTime"`
	MinSize                  int                                 `json:"MinSize" xml:"MinSize"`
	ScalingGroupId           string                              `json:"ScalingGroupId" xml:"ScalingGroupId"`
	PredictiveValueBehavior  string                              `json:"PredictiveValueBehavior" xml:"PredictiveValueBehavior"`
	TargetValue              float64                             `json:"TargetValue" xml:"TargetValue"`
	Cooldown                 int                                 `json:"Cooldown" xml:"Cooldown"`
	MaxSize                  int                                 `json:"MaxSize" xml:"MaxSize"`
	PredictiveValueBuffer    int                                 `json:"PredictiveValueBuffer" xml:"PredictiveValueBuffer"`
	ScalingRuleType          string                              `json:"ScalingRuleType" xml:"ScalingRuleType"`
	AdjustmentValue          int                                 `json:"AdjustmentValue" xml:"AdjustmentValue"`
	ScaleInEvaluationCount   int                                 `json:"ScaleInEvaluationCount" xml:"ScaleInEvaluationCount"`
	DisableScaleIn           bool                                `json:"DisableScaleIn" xml:"DisableScaleIn"`
	ScalingRuleName          string                              `json:"ScalingRuleName" xml:"ScalingRuleName"`
	ScalingRuleId            string                              `json:"ScalingRuleId" xml:"ScalingRuleId"`
	MetricType               string                              `json:"MetricType" xml:"MetricType"`
	HybridMonitorNamespace   string                              `json:"HybridMonitorNamespace" xml:"HybridMonitorNamespace"`
	Alarms                   Alarms                              `json:"Alarms" xml:"Alarms"`
	StepAdjustments          StepAdjustments                     `json:"StepAdjustments" xml:"StepAdjustments"`
	AlarmDimensions          AlarmDimensions                     `json:"AlarmDimensions" xml:"AlarmDimensions"`
	HybridMetrics            HybridMetricsInDescribeScalingRules `json:"HybridMetrics" xml:"HybridMetrics"`
}
