AWS SDK for C++

AWS SDK for C++ Version 1.11.759

Loading...
Searching...
No Matches
TargetTrackingConfiguration.h
1
6#pragma once
7#include <aws/autoscaling-plans/AutoScalingPlans_EXPORTS.h>
8#include <aws/autoscaling-plans/model/CustomizedScalingMetricSpecification.h>
9#include <aws/autoscaling-plans/model/PredefinedScalingMetricSpecification.h>
10
11#include <utility>
12
13namespace Aws {
14namespace Utils {
15namespace Json {
16class JsonValue;
17class JsonView;
18} // namespace Json
19} // namespace Utils
20namespace AutoScalingPlans {
21namespace Model {
22
31 public:
32 AWS_AUTOSCALINGPLANS_API TargetTrackingConfiguration() = default;
33 AWS_AUTOSCALINGPLANS_API TargetTrackingConfiguration(Aws::Utils::Json::JsonView jsonValue);
35 AWS_AUTOSCALINGPLANS_API Aws::Utils::Json::JsonValue Jsonize() const;
36
38
43 return m_predefinedScalingMetricSpecification;
44 }
45 inline bool PredefinedScalingMetricSpecificationHasBeenSet() const { return m_predefinedScalingMetricSpecificationHasBeenSet; }
46 template <typename PredefinedScalingMetricSpecificationT = PredefinedScalingMetricSpecification>
47 void SetPredefinedScalingMetricSpecification(PredefinedScalingMetricSpecificationT&& value) {
48 m_predefinedScalingMetricSpecificationHasBeenSet = true;
49 m_predefinedScalingMetricSpecification = std::forward<PredefinedScalingMetricSpecificationT>(value);
50 }
51 template <typename PredefinedScalingMetricSpecificationT = PredefinedScalingMetricSpecification>
52 TargetTrackingConfiguration& WithPredefinedScalingMetricSpecification(PredefinedScalingMetricSpecificationT&& value) {
53 SetPredefinedScalingMetricSpecification(std::forward<PredefinedScalingMetricSpecificationT>(value));
54 return *this;
55 }
57
59
64 return m_customizedScalingMetricSpecification;
65 }
66 inline bool CustomizedScalingMetricSpecificationHasBeenSet() const { return m_customizedScalingMetricSpecificationHasBeenSet; }
67 template <typename CustomizedScalingMetricSpecificationT = CustomizedScalingMetricSpecification>
68 void SetCustomizedScalingMetricSpecification(CustomizedScalingMetricSpecificationT&& value) {
69 m_customizedScalingMetricSpecificationHasBeenSet = true;
70 m_customizedScalingMetricSpecification = std::forward<CustomizedScalingMetricSpecificationT>(value);
71 }
72 template <typename CustomizedScalingMetricSpecificationT = CustomizedScalingMetricSpecification>
73 TargetTrackingConfiguration& WithCustomizedScalingMetricSpecification(CustomizedScalingMetricSpecificationT&& value) {
74 SetCustomizedScalingMetricSpecification(std::forward<CustomizedScalingMetricSpecificationT>(value));
75 return *this;
76 }
78
80
85 inline double GetTargetValue() const { return m_targetValue; }
86 inline bool TargetValueHasBeenSet() const { return m_targetValueHasBeenSet; }
87 inline void SetTargetValue(double value) {
88 m_targetValueHasBeenSet = true;
89 m_targetValue = value;
90 }
92 SetTargetValue(value);
93 return *this;
94 }
96
98
105 inline bool GetDisableScaleIn() const { return m_disableScaleIn; }
106 inline bool DisableScaleInHasBeenSet() const { return m_disableScaleInHasBeenSet; }
107 inline void SetDisableScaleIn(bool value) {
108 m_disableScaleInHasBeenSet = true;
109 m_disableScaleIn = value;
110 }
112 SetDisableScaleIn(value);
113 return *this;
114 }
116
118
128 inline int GetScaleOutCooldown() const { return m_scaleOutCooldown; }
129 inline bool ScaleOutCooldownHasBeenSet() const { return m_scaleOutCooldownHasBeenSet; }
130 inline void SetScaleOutCooldown(int value) {
131 m_scaleOutCooldownHasBeenSet = true;
132 m_scaleOutCooldown = value;
133 }
135 SetScaleOutCooldown(value);
136 return *this;
137 }
139
141
152 inline int GetScaleInCooldown() const { return m_scaleInCooldown; }
153 inline bool ScaleInCooldownHasBeenSet() const { return m_scaleInCooldownHasBeenSet; }
154 inline void SetScaleInCooldown(int value) {
155 m_scaleInCooldownHasBeenSet = true;
156 m_scaleInCooldown = value;
157 }
159 SetScaleInCooldown(value);
160 return *this;
161 }
163
165
170 inline int GetEstimatedInstanceWarmup() const { return m_estimatedInstanceWarmup; }
171 inline bool EstimatedInstanceWarmupHasBeenSet() const { return m_estimatedInstanceWarmupHasBeenSet; }
172 inline void SetEstimatedInstanceWarmup(int value) {
173 m_estimatedInstanceWarmupHasBeenSet = true;
174 m_estimatedInstanceWarmup = value;
175 }
178 return *this;
179 }
181 private:
182 PredefinedScalingMetricSpecification m_predefinedScalingMetricSpecification;
183
184 CustomizedScalingMetricSpecification m_customizedScalingMetricSpecification;
185
186 double m_targetValue{0.0};
187
188 bool m_disableScaleIn{false};
189
190 int m_scaleOutCooldown{0};
191
192 int m_scaleInCooldown{0};
193
194 int m_estimatedInstanceWarmup{0};
195 bool m_predefinedScalingMetricSpecificationHasBeenSet = false;
196 bool m_customizedScalingMetricSpecificationHasBeenSet = false;
197 bool m_targetValueHasBeenSet = false;
198 bool m_disableScaleInHasBeenSet = false;
199 bool m_scaleOutCooldownHasBeenSet = false;
200 bool m_scaleInCooldownHasBeenSet = false;
201 bool m_estimatedInstanceWarmupHasBeenSet = false;
202};
203
204} // namespace Model
205} // namespace AutoScalingPlans
206} // namespace Aws
void SetCustomizedScalingMetricSpecification(CustomizedScalingMetricSpecificationT &&value)
TargetTrackingConfiguration & WithPredefinedScalingMetricSpecification(PredefinedScalingMetricSpecificationT &&value)
void SetPredefinedScalingMetricSpecification(PredefinedScalingMetricSpecificationT &&value)
AWS_AUTOSCALINGPLANS_API TargetTrackingConfiguration()=default
TargetTrackingConfiguration & WithCustomizedScalingMetricSpecification(CustomizedScalingMetricSpecificationT &&value)
AWS_AUTOSCALINGPLANS_API TargetTrackingConfiguration & operator=(Aws::Utils::Json::JsonView jsonValue)
AWS_AUTOSCALINGPLANS_API Aws::Utils::Json::JsonValue Jsonize() const
const PredefinedScalingMetricSpecification & GetPredefinedScalingMetricSpecification() const
AWS_AUTOSCALINGPLANS_API TargetTrackingConfiguration(Aws::Utils::Json::JsonView jsonValue)
const CustomizedScalingMetricSpecification & GetCustomizedScalingMetricSpecification() const
Aws::Utils::Json::JsonValue JsonValue