AWS SDK for C++

AWS SDK for C++ Version 1.11.756

Loading...
Searching...
No Matches
AutoScalingGroup.h
1
6#pragma once
7#include <aws/autoscaling/AutoScaling_EXPORTS.h>
8#include <aws/autoscaling/model/AvailabilityZoneDistribution.h>
9#include <aws/autoscaling/model/AvailabilityZoneImpairmentPolicy.h>
10#include <aws/autoscaling/model/CapacityReservationSpecification.h>
11#include <aws/autoscaling/model/DeletionProtection.h>
12#include <aws/autoscaling/model/EnabledMetric.h>
13#include <aws/autoscaling/model/Instance.h>
14#include <aws/autoscaling/model/InstanceLifecyclePolicy.h>
15#include <aws/autoscaling/model/InstanceMaintenancePolicy.h>
16#include <aws/autoscaling/model/LaunchTemplateSpecification.h>
17#include <aws/autoscaling/model/MixedInstancesPolicy.h>
18#include <aws/autoscaling/model/SuspendedProcess.h>
19#include <aws/autoscaling/model/TagDescription.h>
20#include <aws/autoscaling/model/TrafficSourceIdentifier.h>
21#include <aws/autoscaling/model/WarmPoolConfiguration.h>
22#include <aws/core/utils/DateTime.h>
23#include <aws/core/utils/memory/stl/AWSStreamFwd.h>
24#include <aws/core/utils/memory/stl/AWSString.h>
25#include <aws/core/utils/memory/stl/AWSVector.h>
26
27#include <utility>
28
29namespace Aws {
30namespace Utils {
31namespace Xml {
32class XmlNode;
33} // namespace Xml
34} // namespace Utils
35namespace AutoScaling {
36namespace Model {
37
44 public:
45 AWS_AUTOSCALING_API AutoScalingGroup() = default;
46 AWS_AUTOSCALING_API AutoScalingGroup(const Aws::Utils::Xml::XmlNode& xmlNode);
47 AWS_AUTOSCALING_API AutoScalingGroup& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
48
49 AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const;
50 AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& oStream, const char* location) const;
51
53
56 inline const Aws::String& GetAutoScalingGroupName() const { return m_autoScalingGroupName; }
57 inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; }
58 template <typename AutoScalingGroupNameT = Aws::String>
59 void SetAutoScalingGroupName(AutoScalingGroupNameT&& value) {
60 m_autoScalingGroupNameHasBeenSet = true;
61 m_autoScalingGroupName = std::forward<AutoScalingGroupNameT>(value);
62 }
63 template <typename AutoScalingGroupNameT = Aws::String>
64 AutoScalingGroup& WithAutoScalingGroupName(AutoScalingGroupNameT&& value) {
65 SetAutoScalingGroupName(std::forward<AutoScalingGroupNameT>(value));
66 return *this;
67 }
69
71
74 inline const Aws::String& GetAutoScalingGroupARN() const { return m_autoScalingGroupARN; }
75 inline bool AutoScalingGroupARNHasBeenSet() const { return m_autoScalingGroupARNHasBeenSet; }
76 template <typename AutoScalingGroupARNT = Aws::String>
77 void SetAutoScalingGroupARN(AutoScalingGroupARNT&& value) {
78 m_autoScalingGroupARNHasBeenSet = true;
79 m_autoScalingGroupARN = std::forward<AutoScalingGroupARNT>(value);
80 }
81 template <typename AutoScalingGroupARNT = Aws::String>
82 AutoScalingGroup& WithAutoScalingGroupARN(AutoScalingGroupARNT&& value) {
83 SetAutoScalingGroupARN(std::forward<AutoScalingGroupARNT>(value));
84 return *this;
85 }
87
89
93 inline const Aws::String& GetLaunchConfigurationName() const { return m_launchConfigurationName; }
94 inline bool LaunchConfigurationNameHasBeenSet() const { return m_launchConfigurationNameHasBeenSet; }
95 template <typename LaunchConfigurationNameT = Aws::String>
96 void SetLaunchConfigurationName(LaunchConfigurationNameT&& value) {
97 m_launchConfigurationNameHasBeenSet = true;
98 m_launchConfigurationName = std::forward<LaunchConfigurationNameT>(value);
99 }
100 template <typename LaunchConfigurationNameT = Aws::String>
101 AutoScalingGroup& WithLaunchConfigurationName(LaunchConfigurationNameT&& value) {
102 SetLaunchConfigurationName(std::forward<LaunchConfigurationNameT>(value));
103 return *this;
104 }
106
108
111 inline const LaunchTemplateSpecification& GetLaunchTemplate() const { return m_launchTemplate; }
112 inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; }
113 template <typename LaunchTemplateT = LaunchTemplateSpecification>
114 void SetLaunchTemplate(LaunchTemplateT&& value) {
115 m_launchTemplateHasBeenSet = true;
116 m_launchTemplate = std::forward<LaunchTemplateT>(value);
117 }
118 template <typename LaunchTemplateT = LaunchTemplateSpecification>
119 AutoScalingGroup& WithLaunchTemplate(LaunchTemplateT&& value) {
120 SetLaunchTemplate(std::forward<LaunchTemplateT>(value));
121 return *this;
122 }
124
126
129 inline const MixedInstancesPolicy& GetMixedInstancesPolicy() const { return m_mixedInstancesPolicy; }
130 inline bool MixedInstancesPolicyHasBeenSet() const { return m_mixedInstancesPolicyHasBeenSet; }
131 template <typename MixedInstancesPolicyT = MixedInstancesPolicy>
132 void SetMixedInstancesPolicy(MixedInstancesPolicyT&& value) {
133 m_mixedInstancesPolicyHasBeenSet = true;
134 m_mixedInstancesPolicy = std::forward<MixedInstancesPolicyT>(value);
135 }
136 template <typename MixedInstancesPolicyT = MixedInstancesPolicy>
137 AutoScalingGroup& WithMixedInstancesPolicy(MixedInstancesPolicyT&& value) {
138 SetMixedInstancesPolicy(std::forward<MixedInstancesPolicyT>(value));
139 return *this;
140 }
142
144
147 inline int GetMinSize() const { return m_minSize; }
148 inline bool MinSizeHasBeenSet() const { return m_minSizeHasBeenSet; }
149 inline void SetMinSize(int value) {
150 m_minSizeHasBeenSet = true;
151 m_minSize = value;
152 }
153 inline AutoScalingGroup& WithMinSize(int value) {
154 SetMinSize(value);
155 return *this;
156 }
158
160
163 inline int GetMaxSize() const { return m_maxSize; }
164 inline bool MaxSizeHasBeenSet() const { return m_maxSizeHasBeenSet; }
165 inline void SetMaxSize(int value) {
166 m_maxSizeHasBeenSet = true;
167 m_maxSize = value;
168 }
169 inline AutoScalingGroup& WithMaxSize(int value) {
170 SetMaxSize(value);
171 return *this;
172 }
174
176
179 inline int GetDesiredCapacity() const { return m_desiredCapacity; }
180 inline bool DesiredCapacityHasBeenSet() const { return m_desiredCapacityHasBeenSet; }
181 inline void SetDesiredCapacity(int value) {
182 m_desiredCapacityHasBeenSet = true;
183 m_desiredCapacity = value;
184 }
186 SetDesiredCapacity(value);
187 return *this;
188 }
190
192
196 inline int GetPredictedCapacity() const { return m_predictedCapacity; }
197 inline bool PredictedCapacityHasBeenSet() const { return m_predictedCapacityHasBeenSet; }
198 inline void SetPredictedCapacity(int value) {
199 m_predictedCapacityHasBeenSet = true;
200 m_predictedCapacity = value;
201 }
204 return *this;
205 }
207
209
213 inline int GetDefaultCooldown() const { return m_defaultCooldown; }
214 inline bool DefaultCooldownHasBeenSet() const { return m_defaultCooldownHasBeenSet; }
215 inline void SetDefaultCooldown(int value) {
216 m_defaultCooldownHasBeenSet = true;
217 m_defaultCooldown = value;
218 }
220 SetDefaultCooldown(value);
221 return *this;
222 }
224
226
229 inline const Aws::Vector<Aws::String>& GetAvailabilityZones() const { return m_availabilityZones; }
230 inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; }
231 template <typename AvailabilityZonesT = Aws::Vector<Aws::String>>
232 void SetAvailabilityZones(AvailabilityZonesT&& value) {
233 m_availabilityZonesHasBeenSet = true;
234 m_availabilityZones = std::forward<AvailabilityZonesT>(value);
235 }
236 template <typename AvailabilityZonesT = Aws::Vector<Aws::String>>
237 AutoScalingGroup& WithAvailabilityZones(AvailabilityZonesT&& value) {
238 SetAvailabilityZones(std::forward<AvailabilityZonesT>(value));
239 return *this;
240 }
241 template <typename AvailabilityZonesT = Aws::String>
242 AutoScalingGroup& AddAvailabilityZones(AvailabilityZonesT&& value) {
243 m_availabilityZonesHasBeenSet = true;
244 m_availabilityZones.emplace_back(std::forward<AvailabilityZonesT>(value));
245 return *this;
246 }
248
250
253 inline const Aws::Vector<Aws::String>& GetLoadBalancerNames() const { return m_loadBalancerNames; }
254 inline bool LoadBalancerNamesHasBeenSet() const { return m_loadBalancerNamesHasBeenSet; }
255 template <typename LoadBalancerNamesT = Aws::Vector<Aws::String>>
256 void SetLoadBalancerNames(LoadBalancerNamesT&& value) {
257 m_loadBalancerNamesHasBeenSet = true;
258 m_loadBalancerNames = std::forward<LoadBalancerNamesT>(value);
259 }
260 template <typename LoadBalancerNamesT = Aws::Vector<Aws::String>>
261 AutoScalingGroup& WithLoadBalancerNames(LoadBalancerNamesT&& value) {
262 SetLoadBalancerNames(std::forward<LoadBalancerNamesT>(value));
263 return *this;
264 }
265 template <typename LoadBalancerNamesT = Aws::String>
266 AutoScalingGroup& AddLoadBalancerNames(LoadBalancerNamesT&& value) {
267 m_loadBalancerNamesHasBeenSet = true;
268 m_loadBalancerNames.emplace_back(std::forward<LoadBalancerNamesT>(value));
269 return *this;
270 }
272
274
278 inline const Aws::Vector<Aws::String>& GetTargetGroupARNs() const { return m_targetGroupARNs; }
279 inline bool TargetGroupARNsHasBeenSet() const { return m_targetGroupARNsHasBeenSet; }
280 template <typename TargetGroupARNsT = Aws::Vector<Aws::String>>
281 void SetTargetGroupARNs(TargetGroupARNsT&& value) {
282 m_targetGroupARNsHasBeenSet = true;
283 m_targetGroupARNs = std::forward<TargetGroupARNsT>(value);
284 }
285 template <typename TargetGroupARNsT = Aws::Vector<Aws::String>>
286 AutoScalingGroup& WithTargetGroupARNs(TargetGroupARNsT&& value) {
287 SetTargetGroupARNs(std::forward<TargetGroupARNsT>(value));
288 return *this;
289 }
290 template <typename TargetGroupARNsT = Aws::String>
291 AutoScalingGroup& AddTargetGroupARNs(TargetGroupARNsT&& value) {
292 m_targetGroupARNsHasBeenSet = true;
293 m_targetGroupARNs.emplace_back(std::forward<TargetGroupARNsT>(value));
294 return *this;
295 }
297
299
303 inline const Aws::String& GetHealthCheckType() const { return m_healthCheckType; }
304 inline bool HealthCheckTypeHasBeenSet() const { return m_healthCheckTypeHasBeenSet; }
305 template <typename HealthCheckTypeT = Aws::String>
306 void SetHealthCheckType(HealthCheckTypeT&& value) {
307 m_healthCheckTypeHasBeenSet = true;
308 m_healthCheckType = std::forward<HealthCheckTypeT>(value);
309 }
310 template <typename HealthCheckTypeT = Aws::String>
311 AutoScalingGroup& WithHealthCheckType(HealthCheckTypeT&& value) {
312 SetHealthCheckType(std::forward<HealthCheckTypeT>(value));
313 return *this;
314 }
316
318
322 inline int GetHealthCheckGracePeriod() const { return m_healthCheckGracePeriod; }
323 inline bool HealthCheckGracePeriodHasBeenSet() const { return m_healthCheckGracePeriodHasBeenSet; }
324 inline void SetHealthCheckGracePeriod(int value) {
325 m_healthCheckGracePeriodHasBeenSet = true;
326 m_healthCheckGracePeriod = value;
327 }
330 return *this;
331 }
333
335
338 inline const Aws::Vector<Instance>& GetInstances() const { return m_instances; }
339 inline bool InstancesHasBeenSet() const { return m_instancesHasBeenSet; }
340 template <typename InstancesT = Aws::Vector<Instance>>
341 void SetInstances(InstancesT&& value) {
342 m_instancesHasBeenSet = true;
343 m_instances = std::forward<InstancesT>(value);
344 }
345 template <typename InstancesT = Aws::Vector<Instance>>
346 AutoScalingGroup& WithInstances(InstancesT&& value) {
347 SetInstances(std::forward<InstancesT>(value));
348 return *this;
349 }
350 template <typename InstancesT = Instance>
351 AutoScalingGroup& AddInstances(InstancesT&& value) {
352 m_instancesHasBeenSet = true;
353 m_instances.emplace_back(std::forward<InstancesT>(value));
354 return *this;
355 }
357
359
362 inline const Aws::Utils::DateTime& GetCreatedTime() const { return m_createdTime; }
363 inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; }
364 template <typename CreatedTimeT = Aws::Utils::DateTime>
365 void SetCreatedTime(CreatedTimeT&& value) {
366 m_createdTimeHasBeenSet = true;
367 m_createdTime = std::forward<CreatedTimeT>(value);
368 }
369 template <typename CreatedTimeT = Aws::Utils::DateTime>
370 AutoScalingGroup& WithCreatedTime(CreatedTimeT&& value) {
371 SetCreatedTime(std::forward<CreatedTimeT>(value));
372 return *this;
373 }
375
377
380 inline const Aws::Vector<SuspendedProcess>& GetSuspendedProcesses() const { return m_suspendedProcesses; }
381 inline bool SuspendedProcessesHasBeenSet() const { return m_suspendedProcessesHasBeenSet; }
382 template <typename SuspendedProcessesT = Aws::Vector<SuspendedProcess>>
383 void SetSuspendedProcesses(SuspendedProcessesT&& value) {
384 m_suspendedProcessesHasBeenSet = true;
385 m_suspendedProcesses = std::forward<SuspendedProcessesT>(value);
386 }
387 template <typename SuspendedProcessesT = Aws::Vector<SuspendedProcess>>
388 AutoScalingGroup& WithSuspendedProcesses(SuspendedProcessesT&& value) {
389 SetSuspendedProcesses(std::forward<SuspendedProcessesT>(value));
390 return *this;
391 }
392 template <typename SuspendedProcessesT = SuspendedProcess>
393 AutoScalingGroup& AddSuspendedProcesses(SuspendedProcessesT&& value) {
394 m_suspendedProcessesHasBeenSet = true;
395 m_suspendedProcesses.emplace_back(std::forward<SuspendedProcessesT>(value));
396 return *this;
397 }
399
401
405 inline const Aws::String& GetPlacementGroup() const { return m_placementGroup; }
406 inline bool PlacementGroupHasBeenSet() const { return m_placementGroupHasBeenSet; }
407 template <typename PlacementGroupT = Aws::String>
408 void SetPlacementGroup(PlacementGroupT&& value) {
409 m_placementGroupHasBeenSet = true;
410 m_placementGroup = std::forward<PlacementGroupT>(value);
411 }
412 template <typename PlacementGroupT = Aws::String>
413 AutoScalingGroup& WithPlacementGroup(PlacementGroupT&& value) {
414 SetPlacementGroup(std::forward<PlacementGroupT>(value));
415 return *this;
416 }
418
420
423 inline const Aws::String& GetVPCZoneIdentifier() const { return m_vPCZoneIdentifier; }
424 inline bool VPCZoneIdentifierHasBeenSet() const { return m_vPCZoneIdentifierHasBeenSet; }
425 template <typename VPCZoneIdentifierT = Aws::String>
426 void SetVPCZoneIdentifier(VPCZoneIdentifierT&& value) {
427 m_vPCZoneIdentifierHasBeenSet = true;
428 m_vPCZoneIdentifier = std::forward<VPCZoneIdentifierT>(value);
429 }
430 template <typename VPCZoneIdentifierT = Aws::String>
431 AutoScalingGroup& WithVPCZoneIdentifier(VPCZoneIdentifierT&& value) {
432 SetVPCZoneIdentifier(std::forward<VPCZoneIdentifierT>(value));
433 return *this;
434 }
436
438
441 inline const Aws::Vector<EnabledMetric>& GetEnabledMetrics() const { return m_enabledMetrics; }
442 inline bool EnabledMetricsHasBeenSet() const { return m_enabledMetricsHasBeenSet; }
443 template <typename EnabledMetricsT = Aws::Vector<EnabledMetric>>
444 void SetEnabledMetrics(EnabledMetricsT&& value) {
445 m_enabledMetricsHasBeenSet = true;
446 m_enabledMetrics = std::forward<EnabledMetricsT>(value);
447 }
448 template <typename EnabledMetricsT = Aws::Vector<EnabledMetric>>
449 AutoScalingGroup& WithEnabledMetrics(EnabledMetricsT&& value) {
450 SetEnabledMetrics(std::forward<EnabledMetricsT>(value));
451 return *this;
452 }
453 template <typename EnabledMetricsT = EnabledMetric>
454 AutoScalingGroup& AddEnabledMetrics(EnabledMetricsT&& value) {
455 m_enabledMetricsHasBeenSet = true;
456 m_enabledMetrics.emplace_back(std::forward<EnabledMetricsT>(value));
457 return *this;
458 }
460
462
467 inline const Aws::String& GetStatus() const { return m_status; }
468 inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
469 template <typename StatusT = Aws::String>
470 void SetStatus(StatusT&& value) {
471 m_statusHasBeenSet = true;
472 m_status = std::forward<StatusT>(value);
473 }
474 template <typename StatusT = Aws::String>
475 AutoScalingGroup& WithStatus(StatusT&& value) {
476 SetStatus(std::forward<StatusT>(value));
477 return *this;
478 }
480
482
485 inline const Aws::Vector<TagDescription>& GetTags() const { return m_tags; }
486 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
487 template <typename TagsT = Aws::Vector<TagDescription>>
488 void SetTags(TagsT&& value) {
489 m_tagsHasBeenSet = true;
490 m_tags = std::forward<TagsT>(value);
491 }
492 template <typename TagsT = Aws::Vector<TagDescription>>
493 AutoScalingGroup& WithTags(TagsT&& value) {
494 SetTags(std::forward<TagsT>(value));
495 return *this;
496 }
497 template <typename TagsT = TagDescription>
498 AutoScalingGroup& AddTags(TagsT&& value) {
499 m_tagsHasBeenSet = true;
500 m_tags.emplace_back(std::forward<TagsT>(value));
501 return *this;
502 }
504
506
509 inline const Aws::Vector<Aws::String>& GetTerminationPolicies() const { return m_terminationPolicies; }
510 inline bool TerminationPoliciesHasBeenSet() const { return m_terminationPoliciesHasBeenSet; }
511 template <typename TerminationPoliciesT = Aws::Vector<Aws::String>>
512 void SetTerminationPolicies(TerminationPoliciesT&& value) {
513 m_terminationPoliciesHasBeenSet = true;
514 m_terminationPolicies = std::forward<TerminationPoliciesT>(value);
515 }
516 template <typename TerminationPoliciesT = Aws::Vector<Aws::String>>
517 AutoScalingGroup& WithTerminationPolicies(TerminationPoliciesT&& value) {
518 SetTerminationPolicies(std::forward<TerminationPoliciesT>(value));
519 return *this;
520 }
521 template <typename TerminationPoliciesT = Aws::String>
522 AutoScalingGroup& AddTerminationPolicies(TerminationPoliciesT&& value) {
523 m_terminationPoliciesHasBeenSet = true;
524 m_terminationPolicies.emplace_back(std::forward<TerminationPoliciesT>(value));
525 return *this;
526 }
528
530
538 inline bool GetNewInstancesProtectedFromScaleIn() const { return m_newInstancesProtectedFromScaleIn; }
539 inline bool NewInstancesProtectedFromScaleInHasBeenSet() const { return m_newInstancesProtectedFromScaleInHasBeenSet; }
540 inline void SetNewInstancesProtectedFromScaleIn(bool value) {
541 m_newInstancesProtectedFromScaleInHasBeenSet = true;
542 m_newInstancesProtectedFromScaleIn = value;
543 }
546 return *this;
547 }
549
551
555 inline const Aws::String& GetServiceLinkedRoleARN() const { return m_serviceLinkedRoleARN; }
556 inline bool ServiceLinkedRoleARNHasBeenSet() const { return m_serviceLinkedRoleARNHasBeenSet; }
557 template <typename ServiceLinkedRoleARNT = Aws::String>
558 void SetServiceLinkedRoleARN(ServiceLinkedRoleARNT&& value) {
559 m_serviceLinkedRoleARNHasBeenSet = true;
560 m_serviceLinkedRoleARN = std::forward<ServiceLinkedRoleARNT>(value);
561 }
562 template <typename ServiceLinkedRoleARNT = Aws::String>
563 AutoScalingGroup& WithServiceLinkedRoleARN(ServiceLinkedRoleARNT&& value) {
564 SetServiceLinkedRoleARN(std::forward<ServiceLinkedRoleARNT>(value));
565 return *this;
566 }
568
570
574 inline int GetMaxInstanceLifetime() const { return m_maxInstanceLifetime; }
575 inline bool MaxInstanceLifetimeHasBeenSet() const { return m_maxInstanceLifetimeHasBeenSet; }
576 inline void SetMaxInstanceLifetime(int value) {
577 m_maxInstanceLifetimeHasBeenSet = true;
578 m_maxInstanceLifetime = value;
579 }
582 return *this;
583 }
585
587
590 inline bool GetCapacityRebalance() const { return m_capacityRebalance; }
591 inline bool CapacityRebalanceHasBeenSet() const { return m_capacityRebalanceHasBeenSet; }
592 inline void SetCapacityRebalance(bool value) {
593 m_capacityRebalanceHasBeenSet = true;
594 m_capacityRebalance = value;
595 }
598 return *this;
599 }
601
603
606 inline const WarmPoolConfiguration& GetWarmPoolConfiguration() const { return m_warmPoolConfiguration; }
607 inline bool WarmPoolConfigurationHasBeenSet() const { return m_warmPoolConfigurationHasBeenSet; }
608 template <typename WarmPoolConfigurationT = WarmPoolConfiguration>
609 void SetWarmPoolConfiguration(WarmPoolConfigurationT&& value) {
610 m_warmPoolConfigurationHasBeenSet = true;
611 m_warmPoolConfiguration = std::forward<WarmPoolConfigurationT>(value);
612 }
613 template <typename WarmPoolConfigurationT = WarmPoolConfiguration>
614 AutoScalingGroup& WithWarmPoolConfiguration(WarmPoolConfigurationT&& value) {
615 SetWarmPoolConfiguration(std::forward<WarmPoolConfigurationT>(value));
616 return *this;
617 }
619
621
624 inline int GetWarmPoolSize() const { return m_warmPoolSize; }
625 inline bool WarmPoolSizeHasBeenSet() const { return m_warmPoolSizeHasBeenSet; }
626 inline void SetWarmPoolSize(int value) {
627 m_warmPoolSizeHasBeenSet = true;
628 m_warmPoolSize = value;
629 }
631 SetWarmPoolSize(value);
632 return *this;
633 }
635
637
640 inline const Aws::String& GetContext() const { return m_context; }
641 inline bool ContextHasBeenSet() const { return m_contextHasBeenSet; }
642 template <typename ContextT = Aws::String>
643 void SetContext(ContextT&& value) {
644 m_contextHasBeenSet = true;
645 m_context = std::forward<ContextT>(value);
646 }
647 template <typename ContextT = Aws::String>
648 AutoScalingGroup& WithContext(ContextT&& value) {
649 SetContext(std::forward<ContextT>(value));
650 return *this;
651 }
653
655
660 inline const Aws::String& GetDesiredCapacityType() const { return m_desiredCapacityType; }
661 inline bool DesiredCapacityTypeHasBeenSet() const { return m_desiredCapacityTypeHasBeenSet; }
662 template <typename DesiredCapacityTypeT = Aws::String>
663 void SetDesiredCapacityType(DesiredCapacityTypeT&& value) {
664 m_desiredCapacityTypeHasBeenSet = true;
665 m_desiredCapacityType = std::forward<DesiredCapacityTypeT>(value);
666 }
667 template <typename DesiredCapacityTypeT = Aws::String>
668 AutoScalingGroup& WithDesiredCapacityType(DesiredCapacityTypeT&& value) {
669 SetDesiredCapacityType(std::forward<DesiredCapacityTypeT>(value));
670 return *this;
671 }
673
675
679 inline int GetDefaultInstanceWarmup() const { return m_defaultInstanceWarmup; }
680 inline bool DefaultInstanceWarmupHasBeenSet() const { return m_defaultInstanceWarmupHasBeenSet; }
681 inline void SetDefaultInstanceWarmup(int value) {
682 m_defaultInstanceWarmupHasBeenSet = true;
683 m_defaultInstanceWarmup = value;
684 }
687 return *this;
688 }
690
692
695 inline const Aws::Vector<TrafficSourceIdentifier>& GetTrafficSources() const { return m_trafficSources; }
696 inline bool TrafficSourcesHasBeenSet() const { return m_trafficSourcesHasBeenSet; }
697 template <typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
698 void SetTrafficSources(TrafficSourcesT&& value) {
699 m_trafficSourcesHasBeenSet = true;
700 m_trafficSources = std::forward<TrafficSourcesT>(value);
701 }
702 template <typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
703 AutoScalingGroup& WithTrafficSources(TrafficSourcesT&& value) {
704 SetTrafficSources(std::forward<TrafficSourcesT>(value));
705 return *this;
706 }
707 template <typename TrafficSourcesT = TrafficSourceIdentifier>
708 AutoScalingGroup& AddTrafficSources(TrafficSourcesT&& value) {
709 m_trafficSourcesHasBeenSet = true;
710 m_trafficSources.emplace_back(std::forward<TrafficSourcesT>(value));
711 return *this;
712 }
714
716
719 inline const InstanceMaintenancePolicy& GetInstanceMaintenancePolicy() const { return m_instanceMaintenancePolicy; }
720 inline bool InstanceMaintenancePolicyHasBeenSet() const { return m_instanceMaintenancePolicyHasBeenSet; }
721 template <typename InstanceMaintenancePolicyT = InstanceMaintenancePolicy>
722 void SetInstanceMaintenancePolicy(InstanceMaintenancePolicyT&& value) {
723 m_instanceMaintenancePolicyHasBeenSet = true;
724 m_instanceMaintenancePolicy = std::forward<InstanceMaintenancePolicyT>(value);
725 }
726 template <typename InstanceMaintenancePolicyT = InstanceMaintenancePolicy>
727 AutoScalingGroup& WithInstanceMaintenancePolicy(InstanceMaintenancePolicyT&& value) {
728 SetInstanceMaintenancePolicy(std::forward<InstanceMaintenancePolicyT>(value));
729 return *this;
730 }
732
734
737 inline DeletionProtection GetDeletionProtection() const { return m_deletionProtection; }
738 inline bool DeletionProtectionHasBeenSet() const { return m_deletionProtectionHasBeenSet; }
740 m_deletionProtectionHasBeenSet = true;
741 m_deletionProtection = value;
742 }
745 return *this;
746 }
748
750
754 inline const AvailabilityZoneDistribution& GetAvailabilityZoneDistribution() const { return m_availabilityZoneDistribution; }
755 inline bool AvailabilityZoneDistributionHasBeenSet() const { return m_availabilityZoneDistributionHasBeenSet; }
756 template <typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
757 void SetAvailabilityZoneDistribution(AvailabilityZoneDistributionT&& value) {
758 m_availabilityZoneDistributionHasBeenSet = true;
759 m_availabilityZoneDistribution = std::forward<AvailabilityZoneDistributionT>(value);
760 }
761 template <typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
762 AutoScalingGroup& WithAvailabilityZoneDistribution(AvailabilityZoneDistributionT&& value) {
763 SetAvailabilityZoneDistribution(std::forward<AvailabilityZoneDistributionT>(value));
764 return *this;
765 }
767
769
772 inline const AvailabilityZoneImpairmentPolicy& GetAvailabilityZoneImpairmentPolicy() const { return m_availabilityZoneImpairmentPolicy; }
773 inline bool AvailabilityZoneImpairmentPolicyHasBeenSet() const { return m_availabilityZoneImpairmentPolicyHasBeenSet; }
774 template <typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
775 void SetAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT&& value) {
776 m_availabilityZoneImpairmentPolicyHasBeenSet = true;
777 m_availabilityZoneImpairmentPolicy = std::forward<AvailabilityZoneImpairmentPolicyT>(value);
778 }
779 template <typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
780 AutoScalingGroup& WithAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT&& value) {
781 SetAvailabilityZoneImpairmentPolicy(std::forward<AvailabilityZoneImpairmentPolicyT>(value));
782 return *this;
783 }
785
787
790 inline const CapacityReservationSpecification& GetCapacityReservationSpecification() const { return m_capacityReservationSpecification; }
791 inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; }
792 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
793 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
794 m_capacityReservationSpecificationHasBeenSet = true;
795 m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value);
796 }
797 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
798 AutoScalingGroup& WithCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
799 SetCapacityReservationSpecification(std::forward<CapacityReservationSpecificationT>(value));
800 return *this;
801 }
803
805
808 inline const InstanceLifecyclePolicy& GetInstanceLifecyclePolicy() const { return m_instanceLifecyclePolicy; }
809 inline bool InstanceLifecyclePolicyHasBeenSet() const { return m_instanceLifecyclePolicyHasBeenSet; }
810 template <typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
811 void SetInstanceLifecyclePolicy(InstanceLifecyclePolicyT&& value) {
812 m_instanceLifecyclePolicyHasBeenSet = true;
813 m_instanceLifecyclePolicy = std::forward<InstanceLifecyclePolicyT>(value);
814 }
815 template <typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
816 AutoScalingGroup& WithInstanceLifecyclePolicy(InstanceLifecyclePolicyT&& value) {
817 SetInstanceLifecyclePolicy(std::forward<InstanceLifecyclePolicyT>(value));
818 return *this;
819 }
821 private:
822 Aws::String m_autoScalingGroupName;
823
824 Aws::String m_autoScalingGroupARN;
825
826 Aws::String m_launchConfigurationName;
827
828 LaunchTemplateSpecification m_launchTemplate;
829
830 MixedInstancesPolicy m_mixedInstancesPolicy;
831
832 int m_minSize{0};
833
834 int m_maxSize{0};
835
836 int m_desiredCapacity{0};
837
838 int m_predictedCapacity{0};
839
840 int m_defaultCooldown{0};
841
842 Aws::Vector<Aws::String> m_availabilityZones;
843
844 Aws::Vector<Aws::String> m_loadBalancerNames;
845
846 Aws::Vector<Aws::String> m_targetGroupARNs;
847
848 Aws::String m_healthCheckType;
849
850 int m_healthCheckGracePeriod{0};
851
852 Aws::Vector<Instance> m_instances;
853
854 Aws::Utils::DateTime m_createdTime{};
855
856 Aws::Vector<SuspendedProcess> m_suspendedProcesses;
857
858 Aws::String m_placementGroup;
859
860 Aws::String m_vPCZoneIdentifier;
861
862 Aws::Vector<EnabledMetric> m_enabledMetrics;
863
864 Aws::String m_status;
865
867
868 Aws::Vector<Aws::String> m_terminationPolicies;
869
870 bool m_newInstancesProtectedFromScaleIn{false};
871
872 Aws::String m_serviceLinkedRoleARN;
873
874 int m_maxInstanceLifetime{0};
875
876 bool m_capacityRebalance{false};
877
878 WarmPoolConfiguration m_warmPoolConfiguration;
879
880 int m_warmPoolSize{0};
881
882 Aws::String m_context;
883
884 Aws::String m_desiredCapacityType;
885
886 int m_defaultInstanceWarmup{0};
887
889
890 InstanceMaintenancePolicy m_instanceMaintenancePolicy;
891
893
894 AvailabilityZoneDistribution m_availabilityZoneDistribution;
895
896 AvailabilityZoneImpairmentPolicy m_availabilityZoneImpairmentPolicy;
897
898 CapacityReservationSpecification m_capacityReservationSpecification;
899
900 InstanceLifecyclePolicy m_instanceLifecyclePolicy;
901 bool m_autoScalingGroupNameHasBeenSet = false;
902 bool m_autoScalingGroupARNHasBeenSet = false;
903 bool m_launchConfigurationNameHasBeenSet = false;
904 bool m_launchTemplateHasBeenSet = false;
905 bool m_mixedInstancesPolicyHasBeenSet = false;
906 bool m_minSizeHasBeenSet = false;
907 bool m_maxSizeHasBeenSet = false;
908 bool m_desiredCapacityHasBeenSet = false;
909 bool m_predictedCapacityHasBeenSet = false;
910 bool m_defaultCooldownHasBeenSet = false;
911 bool m_availabilityZonesHasBeenSet = false;
912 bool m_loadBalancerNamesHasBeenSet = false;
913 bool m_targetGroupARNsHasBeenSet = false;
914 bool m_healthCheckTypeHasBeenSet = false;
915 bool m_healthCheckGracePeriodHasBeenSet = false;
916 bool m_instancesHasBeenSet = false;
917 bool m_createdTimeHasBeenSet = false;
918 bool m_suspendedProcessesHasBeenSet = false;
919 bool m_placementGroupHasBeenSet = false;
920 bool m_vPCZoneIdentifierHasBeenSet = false;
921 bool m_enabledMetricsHasBeenSet = false;
922 bool m_statusHasBeenSet = false;
923 bool m_tagsHasBeenSet = false;
924 bool m_terminationPoliciesHasBeenSet = false;
925 bool m_newInstancesProtectedFromScaleInHasBeenSet = false;
926 bool m_serviceLinkedRoleARNHasBeenSet = false;
927 bool m_maxInstanceLifetimeHasBeenSet = false;
928 bool m_capacityRebalanceHasBeenSet = false;
929 bool m_warmPoolConfigurationHasBeenSet = false;
930 bool m_warmPoolSizeHasBeenSet = false;
931 bool m_contextHasBeenSet = false;
932 bool m_desiredCapacityTypeHasBeenSet = false;
933 bool m_defaultInstanceWarmupHasBeenSet = false;
934 bool m_trafficSourcesHasBeenSet = false;
935 bool m_instanceMaintenancePolicyHasBeenSet = false;
936 bool m_deletionProtectionHasBeenSet = false;
937 bool m_availabilityZoneDistributionHasBeenSet = false;
938 bool m_availabilityZoneImpairmentPolicyHasBeenSet = false;
939 bool m_capacityReservationSpecificationHasBeenSet = false;
940 bool m_instanceLifecyclePolicyHasBeenSet = false;
941};
942
943} // namespace Model
944} // namespace AutoScaling
945} // namespace Aws
AutoScalingGroup & AddAvailabilityZones(AvailabilityZonesT &&value)
const Aws::String & GetDesiredCapacityType() const
AutoScalingGroup & WithAutoScalingGroupName(AutoScalingGroupNameT &&value)
AutoScalingGroup & WithServiceLinkedRoleARN(ServiceLinkedRoleARNT &&value)
AutoScalingGroup & WithAvailabilityZones(AvailabilityZonesT &&value)
void SetTerminationPolicies(TerminationPoliciesT &&value)
AutoScalingGroup & WithInstances(InstancesT &&value)
void SetDeletionProtection(DeletionProtection value)
AutoScalingGroup & WithInstanceMaintenancePolicy(InstanceMaintenancePolicyT &&value)
AutoScalingGroup & WithCapacityRebalance(bool value)
AutoScalingGroup & WithCreatedTime(CreatedTimeT &&value)
void SetServiceLinkedRoleARN(ServiceLinkedRoleARNT &&value)
void SetEnabledMetrics(EnabledMetricsT &&value)
AutoScalingGroup & AddEnabledMetrics(EnabledMetricsT &&value)
void SetAvailabilityZoneDistribution(AvailabilityZoneDistributionT &&value)
AutoScalingGroup & WithEnabledMetrics(EnabledMetricsT &&value)
AutoScalingGroup & WithAutoScalingGroupARN(AutoScalingGroupARNT &&value)
void SetLoadBalancerNames(LoadBalancerNamesT &&value)
AutoScalingGroup & WithTerminationPolicies(TerminationPoliciesT &&value)
const Aws::String & GetPlacementGroup() const
AutoScalingGroup & AddTags(TagsT &&value)
void SetCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
AWS_AUTOSCALING_API void OutputToStream(Aws::OStream &ostream, const char *location, unsigned index, const char *locationValue) const
AutoScalingGroup & WithDeletionProtection(DeletionProtection value)
AutoScalingGroup & WithMinSize(int value)
DeletionProtection GetDeletionProtection() const
void SetInstanceMaintenancePolicy(InstanceMaintenancePolicyT &&value)
const InstanceMaintenancePolicy & GetInstanceMaintenancePolicy() const
AutoScalingGroup & WithDefaultInstanceWarmup(int value)
void SetWarmPoolConfiguration(WarmPoolConfigurationT &&value)
AutoScalingGroup & WithWarmPoolSize(int value)
AutoScalingGroup & WithCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
const LaunchTemplateSpecification & GetLaunchTemplate() const
void SetLaunchConfigurationName(LaunchConfigurationNameT &&value)
AutoScalingGroup & WithMixedInstancesPolicy(MixedInstancesPolicyT &&value)
AWS_AUTOSCALING_API AutoScalingGroup(const Aws::Utils::Xml::XmlNode &xmlNode)
AutoScalingGroup & WithPredictedCapacity(int value)
void SetDesiredCapacityType(DesiredCapacityTypeT &&value)
AutoScalingGroup & WithLaunchConfigurationName(LaunchConfigurationNameT &&value)
const Aws::Vector< TagDescription > & GetTags() const
AutoScalingGroup & WithMaxSize(int value)
const Aws::Vector< Aws::String > & GetTerminationPolicies() const
AutoScalingGroup & AddTerminationPolicies(TerminationPoliciesT &&value)
const InstanceLifecyclePolicy & GetInstanceLifecyclePolicy() const
const CapacityReservationSpecification & GetCapacityReservationSpecification() const
AutoScalingGroup & WithInstanceLifecyclePolicy(InstanceLifecyclePolicyT &&value)
AutoScalingGroup & WithContext(ContextT &&value)
AutoScalingGroup & WithMaxInstanceLifetime(int value)
AutoScalingGroup & WithAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT &&value)
const Aws::Utils::DateTime & GetCreatedTime() const
AutoScalingGroup & WithTags(TagsT &&value)
AWS_AUTOSCALING_API AutoScalingGroup & operator=(const Aws::Utils::Xml::XmlNode &xmlNode)
const AvailabilityZoneImpairmentPolicy & GetAvailabilityZoneImpairmentPolicy() const
void SetTrafficSources(TrafficSourcesT &&value)
const Aws::String & GetAutoScalingGroupName() const
const AvailabilityZoneDistribution & GetAvailabilityZoneDistribution() const
const WarmPoolConfiguration & GetWarmPoolConfiguration() const
AutoScalingGroup & WithAvailabilityZoneDistribution(AvailabilityZoneDistributionT &&value)
AutoScalingGroup & WithHealthCheckGracePeriod(int value)
void SetPlacementGroup(PlacementGroupT &&value)
const Aws::Vector< Aws::String > & GetLoadBalancerNames() const
void SetLaunchTemplate(LaunchTemplateT &&value)
const Aws::String & GetHealthCheckType() const
AWS_AUTOSCALING_API AutoScalingGroup()=default
AWS_AUTOSCALING_API void OutputToStream(Aws::OStream &oStream, const char *location) const
AutoScalingGroup & WithNewInstancesProtectedFromScaleIn(bool value)
AutoScalingGroup & AddTargetGroupARNs(TargetGroupARNsT &&value)
const MixedInstancesPolicy & GetMixedInstancesPolicy() const
AutoScalingGroup & WithDefaultCooldown(int value)
AutoScalingGroup & AddTrafficSources(TrafficSourcesT &&value)
void SetAutoScalingGroupARN(AutoScalingGroupARNT &&value)
AutoScalingGroup & WithTrafficSources(TrafficSourcesT &&value)
void SetMixedInstancesPolicy(MixedInstancesPolicyT &&value)
const Aws::Vector< SuspendedProcess > & GetSuspendedProcesses() const
AutoScalingGroup & AddSuspendedProcesses(SuspendedProcessesT &&value)
const Aws::Vector< Instance > & GetInstances() const
AutoScalingGroup & WithLaunchTemplate(LaunchTemplateT &&value)
const Aws::String & GetServiceLinkedRoleARN() const
void SetVPCZoneIdentifier(VPCZoneIdentifierT &&value)
void SetAvailabilityZones(AvailabilityZonesT &&value)
AutoScalingGroup & WithDesiredCapacity(int value)
AutoScalingGroup & WithLoadBalancerNames(LoadBalancerNamesT &&value)
const Aws::String & GetLaunchConfigurationName() const
const Aws::Vector< TrafficSourceIdentifier > & GetTrafficSources() const
void SetAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT &&value)
AutoScalingGroup & AddInstances(InstancesT &&value)
AutoScalingGroup & WithTargetGroupARNs(TargetGroupARNsT &&value)
const Aws::Vector< EnabledMetric > & GetEnabledMetrics() const
AutoScalingGroup & WithSuspendedProcesses(SuspendedProcessesT &&value)
AutoScalingGroup & WithVPCZoneIdentifier(VPCZoneIdentifierT &&value)
AutoScalingGroup & WithDesiredCapacityType(DesiredCapacityTypeT &&value)
const Aws::String & GetVPCZoneIdentifier() const
void SetHealthCheckType(HealthCheckTypeT &&value)
AutoScalingGroup & AddLoadBalancerNames(LoadBalancerNamesT &&value)
void SetAutoScalingGroupName(AutoScalingGroupNameT &&value)
AutoScalingGroup & WithStatus(StatusT &&value)
const Aws::Vector< Aws::String > & GetAvailabilityZones() const
AutoScalingGroup & WithHealthCheckType(HealthCheckTypeT &&value)
void SetInstanceLifecyclePolicy(InstanceLifecyclePolicyT &&value)
const Aws::String & GetAutoScalingGroupARN() const
void SetSuspendedProcesses(SuspendedProcessesT &&value)
void SetTargetGroupARNs(TargetGroupARNsT &&value)
const Aws::Vector< Aws::String > & GetTargetGroupARNs() const
AutoScalingGroup & WithWarmPoolConfiguration(WarmPoolConfigurationT &&value)
AutoScalingGroup & WithPlacementGroup(PlacementGroupT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector
std::basic_ostream< char, std::char_traits< char > > OStream