AWS SDK for C++

AWS SDK for C++ Version 1.11.800

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
254 inline const Aws::Vector<Aws::String>& GetAvailabilityZoneIds() const { return m_availabilityZoneIds; }
255 inline bool AvailabilityZoneIdsHasBeenSet() const { return m_availabilityZoneIdsHasBeenSet; }
256 template <typename AvailabilityZoneIdsT = Aws::Vector<Aws::String>>
257 void SetAvailabilityZoneIds(AvailabilityZoneIdsT&& value) {
258 m_availabilityZoneIdsHasBeenSet = true;
259 m_availabilityZoneIds = std::forward<AvailabilityZoneIdsT>(value);
260 }
261 template <typename AvailabilityZoneIdsT = Aws::Vector<Aws::String>>
262 AutoScalingGroup& WithAvailabilityZoneIds(AvailabilityZoneIdsT&& value) {
263 SetAvailabilityZoneIds(std::forward<AvailabilityZoneIdsT>(value));
264 return *this;
265 }
266 template <typename AvailabilityZoneIdsT = Aws::String>
267 AutoScalingGroup& AddAvailabilityZoneIds(AvailabilityZoneIdsT&& value) {
268 m_availabilityZoneIdsHasBeenSet = true;
269 m_availabilityZoneIds.emplace_back(std::forward<AvailabilityZoneIdsT>(value));
270 return *this;
271 }
273
275
278 inline const Aws::Vector<Aws::String>& GetLoadBalancerNames() const { return m_loadBalancerNames; }
279 inline bool LoadBalancerNamesHasBeenSet() const { return m_loadBalancerNamesHasBeenSet; }
280 template <typename LoadBalancerNamesT = Aws::Vector<Aws::String>>
281 void SetLoadBalancerNames(LoadBalancerNamesT&& value) {
282 m_loadBalancerNamesHasBeenSet = true;
283 m_loadBalancerNames = std::forward<LoadBalancerNamesT>(value);
284 }
285 template <typename LoadBalancerNamesT = Aws::Vector<Aws::String>>
286 AutoScalingGroup& WithLoadBalancerNames(LoadBalancerNamesT&& value) {
287 SetLoadBalancerNames(std::forward<LoadBalancerNamesT>(value));
288 return *this;
289 }
290 template <typename LoadBalancerNamesT = Aws::String>
291 AutoScalingGroup& AddLoadBalancerNames(LoadBalancerNamesT&& value) {
292 m_loadBalancerNamesHasBeenSet = true;
293 m_loadBalancerNames.emplace_back(std::forward<LoadBalancerNamesT>(value));
294 return *this;
295 }
297
299
303 inline const Aws::Vector<Aws::String>& GetTargetGroupARNs() const { return m_targetGroupARNs; }
304 inline bool TargetGroupARNsHasBeenSet() const { return m_targetGroupARNsHasBeenSet; }
305 template <typename TargetGroupARNsT = Aws::Vector<Aws::String>>
306 void SetTargetGroupARNs(TargetGroupARNsT&& value) {
307 m_targetGroupARNsHasBeenSet = true;
308 m_targetGroupARNs = std::forward<TargetGroupARNsT>(value);
309 }
310 template <typename TargetGroupARNsT = Aws::Vector<Aws::String>>
311 AutoScalingGroup& WithTargetGroupARNs(TargetGroupARNsT&& value) {
312 SetTargetGroupARNs(std::forward<TargetGroupARNsT>(value));
313 return *this;
314 }
315 template <typename TargetGroupARNsT = Aws::String>
316 AutoScalingGroup& AddTargetGroupARNs(TargetGroupARNsT&& value) {
317 m_targetGroupARNsHasBeenSet = true;
318 m_targetGroupARNs.emplace_back(std::forward<TargetGroupARNsT>(value));
319 return *this;
320 }
322
324
328 inline const Aws::String& GetHealthCheckType() const { return m_healthCheckType; }
329 inline bool HealthCheckTypeHasBeenSet() const { return m_healthCheckTypeHasBeenSet; }
330 template <typename HealthCheckTypeT = Aws::String>
331 void SetHealthCheckType(HealthCheckTypeT&& value) {
332 m_healthCheckTypeHasBeenSet = true;
333 m_healthCheckType = std::forward<HealthCheckTypeT>(value);
334 }
335 template <typename HealthCheckTypeT = Aws::String>
336 AutoScalingGroup& WithHealthCheckType(HealthCheckTypeT&& value) {
337 SetHealthCheckType(std::forward<HealthCheckTypeT>(value));
338 return *this;
339 }
341
343
347 inline int GetHealthCheckGracePeriod() const { return m_healthCheckGracePeriod; }
348 inline bool HealthCheckGracePeriodHasBeenSet() const { return m_healthCheckGracePeriodHasBeenSet; }
349 inline void SetHealthCheckGracePeriod(int value) {
350 m_healthCheckGracePeriodHasBeenSet = true;
351 m_healthCheckGracePeriod = value;
352 }
355 return *this;
356 }
358
360
363 inline const Aws::Vector<Instance>& GetInstances() const { return m_instances; }
364 inline bool InstancesHasBeenSet() const { return m_instancesHasBeenSet; }
365 template <typename InstancesT = Aws::Vector<Instance>>
366 void SetInstances(InstancesT&& value) {
367 m_instancesHasBeenSet = true;
368 m_instances = std::forward<InstancesT>(value);
369 }
370 template <typename InstancesT = Aws::Vector<Instance>>
371 AutoScalingGroup& WithInstances(InstancesT&& value) {
372 SetInstances(std::forward<InstancesT>(value));
373 return *this;
374 }
375 template <typename InstancesT = Instance>
376 AutoScalingGroup& AddInstances(InstancesT&& value) {
377 m_instancesHasBeenSet = true;
378 m_instances.emplace_back(std::forward<InstancesT>(value));
379 return *this;
380 }
382
384
387 inline const Aws::Utils::DateTime& GetCreatedTime() const { return m_createdTime; }
388 inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; }
389 template <typename CreatedTimeT = Aws::Utils::DateTime>
390 void SetCreatedTime(CreatedTimeT&& value) {
391 m_createdTimeHasBeenSet = true;
392 m_createdTime = std::forward<CreatedTimeT>(value);
393 }
394 template <typename CreatedTimeT = Aws::Utils::DateTime>
395 AutoScalingGroup& WithCreatedTime(CreatedTimeT&& value) {
396 SetCreatedTime(std::forward<CreatedTimeT>(value));
397 return *this;
398 }
400
402
405 inline const Aws::Vector<SuspendedProcess>& GetSuspendedProcesses() const { return m_suspendedProcesses; }
406 inline bool SuspendedProcessesHasBeenSet() const { return m_suspendedProcessesHasBeenSet; }
407 template <typename SuspendedProcessesT = Aws::Vector<SuspendedProcess>>
408 void SetSuspendedProcesses(SuspendedProcessesT&& value) {
409 m_suspendedProcessesHasBeenSet = true;
410 m_suspendedProcesses = std::forward<SuspendedProcessesT>(value);
411 }
412 template <typename SuspendedProcessesT = Aws::Vector<SuspendedProcess>>
413 AutoScalingGroup& WithSuspendedProcesses(SuspendedProcessesT&& value) {
414 SetSuspendedProcesses(std::forward<SuspendedProcessesT>(value));
415 return *this;
416 }
417 template <typename SuspendedProcessesT = SuspendedProcess>
418 AutoScalingGroup& AddSuspendedProcesses(SuspendedProcessesT&& value) {
419 m_suspendedProcessesHasBeenSet = true;
420 m_suspendedProcesses.emplace_back(std::forward<SuspendedProcessesT>(value));
421 return *this;
422 }
424
426
430 inline const Aws::String& GetPlacementGroup() const { return m_placementGroup; }
431 inline bool PlacementGroupHasBeenSet() const { return m_placementGroupHasBeenSet; }
432 template <typename PlacementGroupT = Aws::String>
433 void SetPlacementGroup(PlacementGroupT&& value) {
434 m_placementGroupHasBeenSet = true;
435 m_placementGroup = std::forward<PlacementGroupT>(value);
436 }
437 template <typename PlacementGroupT = Aws::String>
438 AutoScalingGroup& WithPlacementGroup(PlacementGroupT&& value) {
439 SetPlacementGroup(std::forward<PlacementGroupT>(value));
440 return *this;
441 }
443
445
448 inline const Aws::String& GetVPCZoneIdentifier() const { return m_vPCZoneIdentifier; }
449 inline bool VPCZoneIdentifierHasBeenSet() const { return m_vPCZoneIdentifierHasBeenSet; }
450 template <typename VPCZoneIdentifierT = Aws::String>
451 void SetVPCZoneIdentifier(VPCZoneIdentifierT&& value) {
452 m_vPCZoneIdentifierHasBeenSet = true;
453 m_vPCZoneIdentifier = std::forward<VPCZoneIdentifierT>(value);
454 }
455 template <typename VPCZoneIdentifierT = Aws::String>
456 AutoScalingGroup& WithVPCZoneIdentifier(VPCZoneIdentifierT&& value) {
457 SetVPCZoneIdentifier(std::forward<VPCZoneIdentifierT>(value));
458 return *this;
459 }
461
463
466 inline const Aws::Vector<EnabledMetric>& GetEnabledMetrics() const { return m_enabledMetrics; }
467 inline bool EnabledMetricsHasBeenSet() const { return m_enabledMetricsHasBeenSet; }
468 template <typename EnabledMetricsT = Aws::Vector<EnabledMetric>>
469 void SetEnabledMetrics(EnabledMetricsT&& value) {
470 m_enabledMetricsHasBeenSet = true;
471 m_enabledMetrics = std::forward<EnabledMetricsT>(value);
472 }
473 template <typename EnabledMetricsT = Aws::Vector<EnabledMetric>>
474 AutoScalingGroup& WithEnabledMetrics(EnabledMetricsT&& value) {
475 SetEnabledMetrics(std::forward<EnabledMetricsT>(value));
476 return *this;
477 }
478 template <typename EnabledMetricsT = EnabledMetric>
479 AutoScalingGroup& AddEnabledMetrics(EnabledMetricsT&& value) {
480 m_enabledMetricsHasBeenSet = true;
481 m_enabledMetrics.emplace_back(std::forward<EnabledMetricsT>(value));
482 return *this;
483 }
485
487
492 inline const Aws::String& GetStatus() const { return m_status; }
493 inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; }
494 template <typename StatusT = Aws::String>
495 void SetStatus(StatusT&& value) {
496 m_statusHasBeenSet = true;
497 m_status = std::forward<StatusT>(value);
498 }
499 template <typename StatusT = Aws::String>
500 AutoScalingGroup& WithStatus(StatusT&& value) {
501 SetStatus(std::forward<StatusT>(value));
502 return *this;
503 }
505
507
510 inline const Aws::Vector<TagDescription>& GetTags() const { return m_tags; }
511 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
512 template <typename TagsT = Aws::Vector<TagDescription>>
513 void SetTags(TagsT&& value) {
514 m_tagsHasBeenSet = true;
515 m_tags = std::forward<TagsT>(value);
516 }
517 template <typename TagsT = Aws::Vector<TagDescription>>
518 AutoScalingGroup& WithTags(TagsT&& value) {
519 SetTags(std::forward<TagsT>(value));
520 return *this;
521 }
522 template <typename TagsT = TagDescription>
523 AutoScalingGroup& AddTags(TagsT&& value) {
524 m_tagsHasBeenSet = true;
525 m_tags.emplace_back(std::forward<TagsT>(value));
526 return *this;
527 }
529
531
534 inline const Aws::Vector<Aws::String>& GetTerminationPolicies() const { return m_terminationPolicies; }
535 inline bool TerminationPoliciesHasBeenSet() const { return m_terminationPoliciesHasBeenSet; }
536 template <typename TerminationPoliciesT = Aws::Vector<Aws::String>>
537 void SetTerminationPolicies(TerminationPoliciesT&& value) {
538 m_terminationPoliciesHasBeenSet = true;
539 m_terminationPolicies = std::forward<TerminationPoliciesT>(value);
540 }
541 template <typename TerminationPoliciesT = Aws::Vector<Aws::String>>
542 AutoScalingGroup& WithTerminationPolicies(TerminationPoliciesT&& value) {
543 SetTerminationPolicies(std::forward<TerminationPoliciesT>(value));
544 return *this;
545 }
546 template <typename TerminationPoliciesT = Aws::String>
547 AutoScalingGroup& AddTerminationPolicies(TerminationPoliciesT&& value) {
548 m_terminationPoliciesHasBeenSet = true;
549 m_terminationPolicies.emplace_back(std::forward<TerminationPoliciesT>(value));
550 return *this;
551 }
553
555
563 inline bool GetNewInstancesProtectedFromScaleIn() const { return m_newInstancesProtectedFromScaleIn; }
564 inline bool NewInstancesProtectedFromScaleInHasBeenSet() const { return m_newInstancesProtectedFromScaleInHasBeenSet; }
565 inline void SetNewInstancesProtectedFromScaleIn(bool value) {
566 m_newInstancesProtectedFromScaleInHasBeenSet = true;
567 m_newInstancesProtectedFromScaleIn = value;
568 }
571 return *this;
572 }
574
576
580 inline const Aws::String& GetServiceLinkedRoleARN() const { return m_serviceLinkedRoleARN; }
581 inline bool ServiceLinkedRoleARNHasBeenSet() const { return m_serviceLinkedRoleARNHasBeenSet; }
582 template <typename ServiceLinkedRoleARNT = Aws::String>
583 void SetServiceLinkedRoleARN(ServiceLinkedRoleARNT&& value) {
584 m_serviceLinkedRoleARNHasBeenSet = true;
585 m_serviceLinkedRoleARN = std::forward<ServiceLinkedRoleARNT>(value);
586 }
587 template <typename ServiceLinkedRoleARNT = Aws::String>
588 AutoScalingGroup& WithServiceLinkedRoleARN(ServiceLinkedRoleARNT&& value) {
589 SetServiceLinkedRoleARN(std::forward<ServiceLinkedRoleARNT>(value));
590 return *this;
591 }
593
595
599 inline int GetMaxInstanceLifetime() const { return m_maxInstanceLifetime; }
600 inline bool MaxInstanceLifetimeHasBeenSet() const { return m_maxInstanceLifetimeHasBeenSet; }
601 inline void SetMaxInstanceLifetime(int value) {
602 m_maxInstanceLifetimeHasBeenSet = true;
603 m_maxInstanceLifetime = value;
604 }
607 return *this;
608 }
610
612
615 inline bool GetCapacityRebalance() const { return m_capacityRebalance; }
616 inline bool CapacityRebalanceHasBeenSet() const { return m_capacityRebalanceHasBeenSet; }
617 inline void SetCapacityRebalance(bool value) {
618 m_capacityRebalanceHasBeenSet = true;
619 m_capacityRebalance = value;
620 }
623 return *this;
624 }
626
628
631 inline const WarmPoolConfiguration& GetWarmPoolConfiguration() const { return m_warmPoolConfiguration; }
632 inline bool WarmPoolConfigurationHasBeenSet() const { return m_warmPoolConfigurationHasBeenSet; }
633 template <typename WarmPoolConfigurationT = WarmPoolConfiguration>
634 void SetWarmPoolConfiguration(WarmPoolConfigurationT&& value) {
635 m_warmPoolConfigurationHasBeenSet = true;
636 m_warmPoolConfiguration = std::forward<WarmPoolConfigurationT>(value);
637 }
638 template <typename WarmPoolConfigurationT = WarmPoolConfiguration>
639 AutoScalingGroup& WithWarmPoolConfiguration(WarmPoolConfigurationT&& value) {
640 SetWarmPoolConfiguration(std::forward<WarmPoolConfigurationT>(value));
641 return *this;
642 }
644
646
649 inline int GetWarmPoolSize() const { return m_warmPoolSize; }
650 inline bool WarmPoolSizeHasBeenSet() const { return m_warmPoolSizeHasBeenSet; }
651 inline void SetWarmPoolSize(int value) {
652 m_warmPoolSizeHasBeenSet = true;
653 m_warmPoolSize = value;
654 }
656 SetWarmPoolSize(value);
657 return *this;
658 }
660
662
665 inline const Aws::String& GetContext() const { return m_context; }
666 inline bool ContextHasBeenSet() const { return m_contextHasBeenSet; }
667 template <typename ContextT = Aws::String>
668 void SetContext(ContextT&& value) {
669 m_contextHasBeenSet = true;
670 m_context = std::forward<ContextT>(value);
671 }
672 template <typename ContextT = Aws::String>
673 AutoScalingGroup& WithContext(ContextT&& value) {
674 SetContext(std::forward<ContextT>(value));
675 return *this;
676 }
678
680
685 inline const Aws::String& GetDesiredCapacityType() const { return m_desiredCapacityType; }
686 inline bool DesiredCapacityTypeHasBeenSet() const { return m_desiredCapacityTypeHasBeenSet; }
687 template <typename DesiredCapacityTypeT = Aws::String>
688 void SetDesiredCapacityType(DesiredCapacityTypeT&& value) {
689 m_desiredCapacityTypeHasBeenSet = true;
690 m_desiredCapacityType = std::forward<DesiredCapacityTypeT>(value);
691 }
692 template <typename DesiredCapacityTypeT = Aws::String>
693 AutoScalingGroup& WithDesiredCapacityType(DesiredCapacityTypeT&& value) {
694 SetDesiredCapacityType(std::forward<DesiredCapacityTypeT>(value));
695 return *this;
696 }
698
700
704 inline int GetDefaultInstanceWarmup() const { return m_defaultInstanceWarmup; }
705 inline bool DefaultInstanceWarmupHasBeenSet() const { return m_defaultInstanceWarmupHasBeenSet; }
706 inline void SetDefaultInstanceWarmup(int value) {
707 m_defaultInstanceWarmupHasBeenSet = true;
708 m_defaultInstanceWarmup = value;
709 }
712 return *this;
713 }
715
717
720 inline const Aws::Vector<TrafficSourceIdentifier>& GetTrafficSources() const { return m_trafficSources; }
721 inline bool TrafficSourcesHasBeenSet() const { return m_trafficSourcesHasBeenSet; }
722 template <typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
723 void SetTrafficSources(TrafficSourcesT&& value) {
724 m_trafficSourcesHasBeenSet = true;
725 m_trafficSources = std::forward<TrafficSourcesT>(value);
726 }
727 template <typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
728 AutoScalingGroup& WithTrafficSources(TrafficSourcesT&& value) {
729 SetTrafficSources(std::forward<TrafficSourcesT>(value));
730 return *this;
731 }
732 template <typename TrafficSourcesT = TrafficSourceIdentifier>
733 AutoScalingGroup& AddTrafficSources(TrafficSourcesT&& value) {
734 m_trafficSourcesHasBeenSet = true;
735 m_trafficSources.emplace_back(std::forward<TrafficSourcesT>(value));
736 return *this;
737 }
739
741
744 inline const InstanceMaintenancePolicy& GetInstanceMaintenancePolicy() const { return m_instanceMaintenancePolicy; }
745 inline bool InstanceMaintenancePolicyHasBeenSet() const { return m_instanceMaintenancePolicyHasBeenSet; }
746 template <typename InstanceMaintenancePolicyT = InstanceMaintenancePolicy>
747 void SetInstanceMaintenancePolicy(InstanceMaintenancePolicyT&& value) {
748 m_instanceMaintenancePolicyHasBeenSet = true;
749 m_instanceMaintenancePolicy = std::forward<InstanceMaintenancePolicyT>(value);
750 }
751 template <typename InstanceMaintenancePolicyT = InstanceMaintenancePolicy>
752 AutoScalingGroup& WithInstanceMaintenancePolicy(InstanceMaintenancePolicyT&& value) {
753 SetInstanceMaintenancePolicy(std::forward<InstanceMaintenancePolicyT>(value));
754 return *this;
755 }
757
759
762 inline DeletionProtection GetDeletionProtection() const { return m_deletionProtection; }
763 inline bool DeletionProtectionHasBeenSet() const { return m_deletionProtectionHasBeenSet; }
765 m_deletionProtectionHasBeenSet = true;
766 m_deletionProtection = value;
767 }
770 return *this;
771 }
773
775
779 inline const AvailabilityZoneDistribution& GetAvailabilityZoneDistribution() const { return m_availabilityZoneDistribution; }
780 inline bool AvailabilityZoneDistributionHasBeenSet() const { return m_availabilityZoneDistributionHasBeenSet; }
781 template <typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
782 void SetAvailabilityZoneDistribution(AvailabilityZoneDistributionT&& value) {
783 m_availabilityZoneDistributionHasBeenSet = true;
784 m_availabilityZoneDistribution = std::forward<AvailabilityZoneDistributionT>(value);
785 }
786 template <typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
787 AutoScalingGroup& WithAvailabilityZoneDistribution(AvailabilityZoneDistributionT&& value) {
788 SetAvailabilityZoneDistribution(std::forward<AvailabilityZoneDistributionT>(value));
789 return *this;
790 }
792
794
797 inline const AvailabilityZoneImpairmentPolicy& GetAvailabilityZoneImpairmentPolicy() const { return m_availabilityZoneImpairmentPolicy; }
798 inline bool AvailabilityZoneImpairmentPolicyHasBeenSet() const { return m_availabilityZoneImpairmentPolicyHasBeenSet; }
799 template <typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
800 void SetAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT&& value) {
801 m_availabilityZoneImpairmentPolicyHasBeenSet = true;
802 m_availabilityZoneImpairmentPolicy = std::forward<AvailabilityZoneImpairmentPolicyT>(value);
803 }
804 template <typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
805 AutoScalingGroup& WithAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT&& value) {
806 SetAvailabilityZoneImpairmentPolicy(std::forward<AvailabilityZoneImpairmentPolicyT>(value));
807 return *this;
808 }
810
812
815 inline const CapacityReservationSpecification& GetCapacityReservationSpecification() const { return m_capacityReservationSpecification; }
816 inline bool CapacityReservationSpecificationHasBeenSet() const { return m_capacityReservationSpecificationHasBeenSet; }
817 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
818 void SetCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
819 m_capacityReservationSpecificationHasBeenSet = true;
820 m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value);
821 }
822 template <typename CapacityReservationSpecificationT = CapacityReservationSpecification>
823 AutoScalingGroup& WithCapacityReservationSpecification(CapacityReservationSpecificationT&& value) {
824 SetCapacityReservationSpecification(std::forward<CapacityReservationSpecificationT>(value));
825 return *this;
826 }
828
830
833 inline const InstanceLifecyclePolicy& GetInstanceLifecyclePolicy() const { return m_instanceLifecyclePolicy; }
834 inline bool InstanceLifecyclePolicyHasBeenSet() const { return m_instanceLifecyclePolicyHasBeenSet; }
835 template <typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
836 void SetInstanceLifecyclePolicy(InstanceLifecyclePolicyT&& value) {
837 m_instanceLifecyclePolicyHasBeenSet = true;
838 m_instanceLifecyclePolicy = std::forward<InstanceLifecyclePolicyT>(value);
839 }
840 template <typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
841 AutoScalingGroup& WithInstanceLifecyclePolicy(InstanceLifecyclePolicyT&& value) {
842 SetInstanceLifecyclePolicy(std::forward<InstanceLifecyclePolicyT>(value));
843 return *this;
844 }
846 private:
847 Aws::String m_autoScalingGroupName;
848
849 Aws::String m_autoScalingGroupARN;
850
851 Aws::String m_launchConfigurationName;
852
853 LaunchTemplateSpecification m_launchTemplate;
854
855 MixedInstancesPolicy m_mixedInstancesPolicy;
856
857 int m_minSize{0};
858
859 int m_maxSize{0};
860
861 int m_desiredCapacity{0};
862
863 int m_predictedCapacity{0};
864
865 int m_defaultCooldown{0};
866
867 Aws::Vector<Aws::String> m_availabilityZones;
868
869 Aws::Vector<Aws::String> m_availabilityZoneIds;
870
871 Aws::Vector<Aws::String> m_loadBalancerNames;
872
873 Aws::Vector<Aws::String> m_targetGroupARNs;
874
875 Aws::String m_healthCheckType;
876
877 int m_healthCheckGracePeriod{0};
878
879 Aws::Vector<Instance> m_instances;
880
881 Aws::Utils::DateTime m_createdTime{};
882
883 Aws::Vector<SuspendedProcess> m_suspendedProcesses;
884
885 Aws::String m_placementGroup;
886
887 Aws::String m_vPCZoneIdentifier;
888
889 Aws::Vector<EnabledMetric> m_enabledMetrics;
890
891 Aws::String m_status;
892
894
895 Aws::Vector<Aws::String> m_terminationPolicies;
896
897 bool m_newInstancesProtectedFromScaleIn{false};
898
899 Aws::String m_serviceLinkedRoleARN;
900
901 int m_maxInstanceLifetime{0};
902
903 bool m_capacityRebalance{false};
904
905 WarmPoolConfiguration m_warmPoolConfiguration;
906
907 int m_warmPoolSize{0};
908
909 Aws::String m_context;
910
911 Aws::String m_desiredCapacityType;
912
913 int m_defaultInstanceWarmup{0};
914
916
917 InstanceMaintenancePolicy m_instanceMaintenancePolicy;
918
920
921 AvailabilityZoneDistribution m_availabilityZoneDistribution;
922
923 AvailabilityZoneImpairmentPolicy m_availabilityZoneImpairmentPolicy;
924
925 CapacityReservationSpecification m_capacityReservationSpecification;
926
927 InstanceLifecyclePolicy m_instanceLifecyclePolicy;
928 bool m_autoScalingGroupNameHasBeenSet = false;
929 bool m_autoScalingGroupARNHasBeenSet = false;
930 bool m_launchConfigurationNameHasBeenSet = false;
931 bool m_launchTemplateHasBeenSet = false;
932 bool m_mixedInstancesPolicyHasBeenSet = false;
933 bool m_minSizeHasBeenSet = false;
934 bool m_maxSizeHasBeenSet = false;
935 bool m_desiredCapacityHasBeenSet = false;
936 bool m_predictedCapacityHasBeenSet = false;
937 bool m_defaultCooldownHasBeenSet = false;
938 bool m_availabilityZonesHasBeenSet = false;
939 bool m_availabilityZoneIdsHasBeenSet = false;
940 bool m_loadBalancerNamesHasBeenSet = false;
941 bool m_targetGroupARNsHasBeenSet = false;
942 bool m_healthCheckTypeHasBeenSet = false;
943 bool m_healthCheckGracePeriodHasBeenSet = false;
944 bool m_instancesHasBeenSet = false;
945 bool m_createdTimeHasBeenSet = false;
946 bool m_suspendedProcessesHasBeenSet = false;
947 bool m_placementGroupHasBeenSet = false;
948 bool m_vPCZoneIdentifierHasBeenSet = false;
949 bool m_enabledMetricsHasBeenSet = false;
950 bool m_statusHasBeenSet = false;
951 bool m_tagsHasBeenSet = false;
952 bool m_terminationPoliciesHasBeenSet = false;
953 bool m_newInstancesProtectedFromScaleInHasBeenSet = false;
954 bool m_serviceLinkedRoleARNHasBeenSet = false;
955 bool m_maxInstanceLifetimeHasBeenSet = false;
956 bool m_capacityRebalanceHasBeenSet = false;
957 bool m_warmPoolConfigurationHasBeenSet = false;
958 bool m_warmPoolSizeHasBeenSet = false;
959 bool m_contextHasBeenSet = false;
960 bool m_desiredCapacityTypeHasBeenSet = false;
961 bool m_defaultInstanceWarmupHasBeenSet = false;
962 bool m_trafficSourcesHasBeenSet = false;
963 bool m_instanceMaintenancePolicyHasBeenSet = false;
964 bool m_deletionProtectionHasBeenSet = false;
965 bool m_availabilityZoneDistributionHasBeenSet = false;
966 bool m_availabilityZoneImpairmentPolicyHasBeenSet = false;
967 bool m_capacityReservationSpecificationHasBeenSet = false;
968 bool m_instanceLifecyclePolicyHasBeenSet = false;
969};
970
971} // namespace Model
972} // namespace AutoScaling
973} // 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
const Aws::Vector< Aws::String > & GetAvailabilityZoneIds() 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)
AutoScalingGroup & WithAvailabilityZoneIds(AvailabilityZoneIdsT &&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 SetAvailabilityZoneIds(AvailabilityZoneIdsT &&value)
void SetHealthCheckType(HealthCheckTypeT &&value)
AutoScalingGroup & AddLoadBalancerNames(LoadBalancerNamesT &&value)
void SetAutoScalingGroupName(AutoScalingGroupNameT &&value)
AutoScalingGroup & WithStatus(StatusT &&value)
AutoScalingGroup & AddAvailabilityZoneIds(AvailabilityZoneIdsT &&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