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"`
	Alarms                   Alarms          `json:"Alarms" xml:"Alarms"`
	StepAdjustments          StepAdjustments `json:"StepAdjustments" xml:"StepAdjustments"`
}
