/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace AutoScaling { namespace Model { /** *

Describes an Auto Scaling group.

See Also:

AWS * API Reference

*/ class AutoScalingGroup { public: AWS_AUTOSCALING_API AutoScalingGroup(); AWS_AUTOSCALING_API AutoScalingGroup(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API AutoScalingGroup& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The name of the Auto Scaling group.

*/ inline const Aws::String& GetAutoScalingGroupName() const{ return m_autoScalingGroupName; } /** *

The name of the Auto Scaling group.

*/ inline bool AutoScalingGroupNameHasBeenSet() const { return m_autoScalingGroupNameHasBeenSet; } /** *

The name of the Auto Scaling group.

*/ inline void SetAutoScalingGroupName(const Aws::String& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = value; } /** *

The name of the Auto Scaling group.

*/ inline void SetAutoScalingGroupName(Aws::String&& value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName = std::move(value); } /** *

The name of the Auto Scaling group.

*/ inline void SetAutoScalingGroupName(const char* value) { m_autoScalingGroupNameHasBeenSet = true; m_autoScalingGroupName.assign(value); } /** *

The name of the Auto Scaling group.

*/ inline AutoScalingGroup& WithAutoScalingGroupName(const Aws::String& value) { SetAutoScalingGroupName(value); return *this;} /** *

The name of the Auto Scaling group.

*/ inline AutoScalingGroup& WithAutoScalingGroupName(Aws::String&& value) { SetAutoScalingGroupName(std::move(value)); return *this;} /** *

The name of the Auto Scaling group.

*/ inline AutoScalingGroup& WithAutoScalingGroupName(const char* value) { SetAutoScalingGroupName(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline const Aws::String& GetAutoScalingGroupARN() const{ return m_autoScalingGroupARN; } /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline bool AutoScalingGroupARNHasBeenSet() const { return m_autoScalingGroupARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline void SetAutoScalingGroupARN(const Aws::String& value) { m_autoScalingGroupARNHasBeenSet = true; m_autoScalingGroupARN = value; } /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline void SetAutoScalingGroupARN(Aws::String&& value) { m_autoScalingGroupARNHasBeenSet = true; m_autoScalingGroupARN = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline void SetAutoScalingGroupARN(const char* value) { m_autoScalingGroupARNHasBeenSet = true; m_autoScalingGroupARN.assign(value); } /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline AutoScalingGroup& WithAutoScalingGroupARN(const Aws::String& value) { SetAutoScalingGroupARN(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline AutoScalingGroup& WithAutoScalingGroupARN(Aws::String&& value) { SetAutoScalingGroupARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Auto Scaling group.

*/ inline AutoScalingGroup& WithAutoScalingGroupARN(const char* value) { SetAutoScalingGroupARN(value); return *this;} /** *

The name of the associated launch configuration.

*/ inline const Aws::String& GetLaunchConfigurationName() const{ return m_launchConfigurationName; } /** *

The name of the associated launch configuration.

*/ inline bool LaunchConfigurationNameHasBeenSet() const { return m_launchConfigurationNameHasBeenSet; } /** *

The name of the associated launch configuration.

*/ inline void SetLaunchConfigurationName(const Aws::String& value) { m_launchConfigurationNameHasBeenSet = true; m_launchConfigurationName = value; } /** *

The name of the associated launch configuration.

*/ inline void SetLaunchConfigurationName(Aws::String&& value) { m_launchConfigurationNameHasBeenSet = true; m_launchConfigurationName = std::move(value); } /** *

The name of the associated launch configuration.

*/ inline void SetLaunchConfigurationName(const char* value) { m_launchConfigurationNameHasBeenSet = true; m_launchConfigurationName.assign(value); } /** *

The name of the associated launch configuration.

*/ inline AutoScalingGroup& WithLaunchConfigurationName(const Aws::String& value) { SetLaunchConfigurationName(value); return *this;} /** *

The name of the associated launch configuration.

*/ inline AutoScalingGroup& WithLaunchConfigurationName(Aws::String&& value) { SetLaunchConfigurationName(std::move(value)); return *this;} /** *

The name of the associated launch configuration.

*/ inline AutoScalingGroup& WithLaunchConfigurationName(const char* value) { SetLaunchConfigurationName(value); return *this;} /** *

The launch template for the group.

*/ inline const LaunchTemplateSpecification& GetLaunchTemplate() const{ return m_launchTemplate; } /** *

The launch template for the group.

*/ inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; } /** *

The launch template for the group.

*/ inline void SetLaunchTemplate(const LaunchTemplateSpecification& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = value; } /** *

The launch template for the group.

*/ inline void SetLaunchTemplate(LaunchTemplateSpecification&& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = std::move(value); } /** *

The launch template for the group.

*/ inline AutoScalingGroup& WithLaunchTemplate(const LaunchTemplateSpecification& value) { SetLaunchTemplate(value); return *this;} /** *

The launch template for the group.

*/ inline AutoScalingGroup& WithLaunchTemplate(LaunchTemplateSpecification&& value) { SetLaunchTemplate(std::move(value)); return *this;} /** *

The mixed instances policy for the group.

*/ inline const MixedInstancesPolicy& GetMixedInstancesPolicy() const{ return m_mixedInstancesPolicy; } /** *

The mixed instances policy for the group.

*/ inline bool MixedInstancesPolicyHasBeenSet() const { return m_mixedInstancesPolicyHasBeenSet; } /** *

The mixed instances policy for the group.

*/ inline void SetMixedInstancesPolicy(const MixedInstancesPolicy& value) { m_mixedInstancesPolicyHasBeenSet = true; m_mixedInstancesPolicy = value; } /** *

The mixed instances policy for the group.

*/ inline void SetMixedInstancesPolicy(MixedInstancesPolicy&& value) { m_mixedInstancesPolicyHasBeenSet = true; m_mixedInstancesPolicy = std::move(value); } /** *

The mixed instances policy for the group.

*/ inline AutoScalingGroup& WithMixedInstancesPolicy(const MixedInstancesPolicy& value) { SetMixedInstancesPolicy(value); return *this;} /** *

The mixed instances policy for the group.

*/ inline AutoScalingGroup& WithMixedInstancesPolicy(MixedInstancesPolicy&& value) { SetMixedInstancesPolicy(std::move(value)); return *this;} /** *

The minimum size of the group.

*/ inline int GetMinSize() const{ return m_minSize; } /** *

The minimum size of the group.

*/ inline bool MinSizeHasBeenSet() const { return m_minSizeHasBeenSet; } /** *

The minimum size of the group.

*/ inline void SetMinSize(int value) { m_minSizeHasBeenSet = true; m_minSize = value; } /** *

The minimum size of the group.

*/ inline AutoScalingGroup& WithMinSize(int value) { SetMinSize(value); return *this;} /** *

The maximum size of the group.

*/ inline int GetMaxSize() const{ return m_maxSize; } /** *

The maximum size of the group.

*/ inline bool MaxSizeHasBeenSet() const { return m_maxSizeHasBeenSet; } /** *

The maximum size of the group.

*/ inline void SetMaxSize(int value) { m_maxSizeHasBeenSet = true; m_maxSize = value; } /** *

The maximum size of the group.

*/ inline AutoScalingGroup& WithMaxSize(int value) { SetMaxSize(value); return *this;} /** *

The desired size of the group.

*/ inline int GetDesiredCapacity() const{ return m_desiredCapacity; } /** *

The desired size of the group.

*/ inline bool DesiredCapacityHasBeenSet() const { return m_desiredCapacityHasBeenSet; } /** *

The desired size of the group.

*/ inline void SetDesiredCapacity(int value) { m_desiredCapacityHasBeenSet = true; m_desiredCapacity = value; } /** *

The desired size of the group.

*/ inline AutoScalingGroup& WithDesiredCapacity(int value) { SetDesiredCapacity(value); return *this;} /** *

The predicted capacity of the group when it has a predictive scaling * policy.

*/ inline int GetPredictedCapacity() const{ return m_predictedCapacity; } /** *

The predicted capacity of the group when it has a predictive scaling * policy.

*/ inline bool PredictedCapacityHasBeenSet() const { return m_predictedCapacityHasBeenSet; } /** *

The predicted capacity of the group when it has a predictive scaling * policy.

*/ inline void SetPredictedCapacity(int value) { m_predictedCapacityHasBeenSet = true; m_predictedCapacity = value; } /** *

The predicted capacity of the group when it has a predictive scaling * policy.

*/ inline AutoScalingGroup& WithPredictedCapacity(int value) { SetPredictedCapacity(value); return *this;} /** *

The duration of the default cooldown period, in seconds.

*/ inline int GetDefaultCooldown() const{ return m_defaultCooldown; } /** *

The duration of the default cooldown period, in seconds.

*/ inline bool DefaultCooldownHasBeenSet() const { return m_defaultCooldownHasBeenSet; } /** *

The duration of the default cooldown period, in seconds.

*/ inline void SetDefaultCooldown(int value) { m_defaultCooldownHasBeenSet = true; m_defaultCooldown = value; } /** *

The duration of the default cooldown period, in seconds.

*/ inline AutoScalingGroup& WithDefaultCooldown(int value) { SetDefaultCooldown(value); return *this;} /** *

One or more Availability Zones for the group.

*/ inline const Aws::Vector& GetAvailabilityZones() const{ return m_availabilityZones; } /** *

One or more Availability Zones for the group.

*/ inline bool AvailabilityZonesHasBeenSet() const { return m_availabilityZonesHasBeenSet; } /** *

One or more Availability Zones for the group.

*/ inline void SetAvailabilityZones(const Aws::Vector& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = value; } /** *

One or more Availability Zones for the group.

*/ inline void SetAvailabilityZones(Aws::Vector&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones = std::move(value); } /** *

One or more Availability Zones for the group.

*/ inline AutoScalingGroup& WithAvailabilityZones(const Aws::Vector& value) { SetAvailabilityZones(value); return *this;} /** *

One or more Availability Zones for the group.

*/ inline AutoScalingGroup& WithAvailabilityZones(Aws::Vector&& value) { SetAvailabilityZones(std::move(value)); return *this;} /** *

One or more Availability Zones for the group.

*/ inline AutoScalingGroup& AddAvailabilityZones(const Aws::String& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; } /** *

One or more Availability Zones for the group.

*/ inline AutoScalingGroup& AddAvailabilityZones(Aws::String&& value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(std::move(value)); return *this; } /** *

One or more Availability Zones for the group.

*/ inline AutoScalingGroup& AddAvailabilityZones(const char* value) { m_availabilityZonesHasBeenSet = true; m_availabilityZones.push_back(value); return *this; } /** *

One or more load balancers associated with the group.

*/ inline const Aws::Vector& GetLoadBalancerNames() const{ return m_loadBalancerNames; } /** *

One or more load balancers associated with the group.

*/ inline bool LoadBalancerNamesHasBeenSet() const { return m_loadBalancerNamesHasBeenSet; } /** *

One or more load balancers associated with the group.

*/ inline void SetLoadBalancerNames(const Aws::Vector& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames = value; } /** *

One or more load balancers associated with the group.

*/ inline void SetLoadBalancerNames(Aws::Vector&& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames = std::move(value); } /** *

One or more load balancers associated with the group.

*/ inline AutoScalingGroup& WithLoadBalancerNames(const Aws::Vector& value) { SetLoadBalancerNames(value); return *this;} /** *

One or more load balancers associated with the group.

*/ inline AutoScalingGroup& WithLoadBalancerNames(Aws::Vector&& value) { SetLoadBalancerNames(std::move(value)); return *this;} /** *

One or more load balancers associated with the group.

*/ inline AutoScalingGroup& AddLoadBalancerNames(const Aws::String& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames.push_back(value); return *this; } /** *

One or more load balancers associated with the group.

*/ inline AutoScalingGroup& AddLoadBalancerNames(Aws::String&& value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames.push_back(std::move(value)); return *this; } /** *

One or more load balancers associated with the group.

*/ inline AutoScalingGroup& AddLoadBalancerNames(const char* value) { m_loadBalancerNamesHasBeenSet = true; m_loadBalancerNames.push_back(value); return *this; } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline const Aws::Vector& GetTargetGroupARNs() const{ return m_targetGroupARNs; } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline bool TargetGroupARNsHasBeenSet() const { return m_targetGroupARNsHasBeenSet; } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline void SetTargetGroupARNs(const Aws::Vector& value) { m_targetGroupARNsHasBeenSet = true; m_targetGroupARNs = value; } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline void SetTargetGroupARNs(Aws::Vector&& value) { m_targetGroupARNsHasBeenSet = true; m_targetGroupARNs = std::move(value); } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline AutoScalingGroup& WithTargetGroupARNs(const Aws::Vector& value) { SetTargetGroupARNs(value); return *this;} /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline AutoScalingGroup& WithTargetGroupARNs(Aws::Vector&& value) { SetTargetGroupARNs(std::move(value)); return *this;} /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline AutoScalingGroup& AddTargetGroupARNs(const Aws::String& value) { m_targetGroupARNsHasBeenSet = true; m_targetGroupARNs.push_back(value); return *this; } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline AutoScalingGroup& AddTargetGroupARNs(Aws::String&& value) { m_targetGroupARNsHasBeenSet = true; m_targetGroupARNs.push_back(std::move(value)); return *this; } /** *

The Amazon Resource Names (ARN) of the target groups for your load * balancer.

*/ inline AutoScalingGroup& AddTargetGroupARNs(const char* value) { m_targetGroupARNsHasBeenSet = true; m_targetGroupARNs.push_back(value); return *this; } /** *

A comma-separated value string of one or more health check types.

*/ inline const Aws::String& GetHealthCheckType() const{ return m_healthCheckType; } /** *

A comma-separated value string of one or more health check types.

*/ inline bool HealthCheckTypeHasBeenSet() const { return m_healthCheckTypeHasBeenSet; } /** *

A comma-separated value string of one or more health check types.

*/ inline void SetHealthCheckType(const Aws::String& value) { m_healthCheckTypeHasBeenSet = true; m_healthCheckType = value; } /** *

A comma-separated value string of one or more health check types.

*/ inline void SetHealthCheckType(Aws::String&& value) { m_healthCheckTypeHasBeenSet = true; m_healthCheckType = std::move(value); } /** *

A comma-separated value string of one or more health check types.

*/ inline void SetHealthCheckType(const char* value) { m_healthCheckTypeHasBeenSet = true; m_healthCheckType.assign(value); } /** *

A comma-separated value string of one or more health check types.

*/ inline AutoScalingGroup& WithHealthCheckType(const Aws::String& value) { SetHealthCheckType(value); return *this;} /** *

A comma-separated value string of one or more health check types.

*/ inline AutoScalingGroup& WithHealthCheckType(Aws::String&& value) { SetHealthCheckType(std::move(value)); return *this;} /** *

A comma-separated value string of one or more health check types.

*/ inline AutoScalingGroup& WithHealthCheckType(const char* value) { SetHealthCheckType(value); return *this;} /** *

The duration of the health check grace period, in seconds.

*/ inline int GetHealthCheckGracePeriod() const{ return m_healthCheckGracePeriod; } /** *

The duration of the health check grace period, in seconds.

*/ inline bool HealthCheckGracePeriodHasBeenSet() const { return m_healthCheckGracePeriodHasBeenSet; } /** *

The duration of the health check grace period, in seconds.

*/ inline void SetHealthCheckGracePeriod(int value) { m_healthCheckGracePeriodHasBeenSet = true; m_healthCheckGracePeriod = value; } /** *

The duration of the health check grace period, in seconds.

*/ inline AutoScalingGroup& WithHealthCheckGracePeriod(int value) { SetHealthCheckGracePeriod(value); return *this;} /** *

The EC2 instances associated with the group.

*/ inline const Aws::Vector& GetInstances() const{ return m_instances; } /** *

The EC2 instances associated with the group.

*/ inline bool InstancesHasBeenSet() const { return m_instancesHasBeenSet; } /** *

The EC2 instances associated with the group.

*/ inline void SetInstances(const Aws::Vector& value) { m_instancesHasBeenSet = true; m_instances = value; } /** *

The EC2 instances associated with the group.

*/ inline void SetInstances(Aws::Vector&& value) { m_instancesHasBeenSet = true; m_instances = std::move(value); } /** *

The EC2 instances associated with the group.

*/ inline AutoScalingGroup& WithInstances(const Aws::Vector& value) { SetInstances(value); return *this;} /** *

The EC2 instances associated with the group.

*/ inline AutoScalingGroup& WithInstances(Aws::Vector&& value) { SetInstances(std::move(value)); return *this;} /** *

The EC2 instances associated with the group.

*/ inline AutoScalingGroup& AddInstances(const Instance& value) { m_instancesHasBeenSet = true; m_instances.push_back(value); return *this; } /** *

The EC2 instances associated with the group.

*/ inline AutoScalingGroup& AddInstances(Instance&& value) { m_instancesHasBeenSet = true; m_instances.push_back(std::move(value)); return *this; } /** *

The date and time the group was created.

*/ inline const Aws::Utils::DateTime& GetCreatedTime() const{ return m_createdTime; } /** *

The date and time the group was created.

*/ inline bool CreatedTimeHasBeenSet() const { return m_createdTimeHasBeenSet; } /** *

The date and time the group was created.

*/ inline void SetCreatedTime(const Aws::Utils::DateTime& value) { m_createdTimeHasBeenSet = true; m_createdTime = value; } /** *

The date and time the group was created.

*/ inline void SetCreatedTime(Aws::Utils::DateTime&& value) { m_createdTimeHasBeenSet = true; m_createdTime = std::move(value); } /** *

The date and time the group was created.

*/ inline AutoScalingGroup& WithCreatedTime(const Aws::Utils::DateTime& value) { SetCreatedTime(value); return *this;} /** *

The date and time the group was created.

*/ inline AutoScalingGroup& WithCreatedTime(Aws::Utils::DateTime&& value) { SetCreatedTime(std::move(value)); return *this;} /** *

The suspended processes associated with the group.

*/ inline const Aws::Vector& GetSuspendedProcesses() const{ return m_suspendedProcesses; } /** *

The suspended processes associated with the group.

*/ inline bool SuspendedProcessesHasBeenSet() const { return m_suspendedProcessesHasBeenSet; } /** *

The suspended processes associated with the group.

*/ inline void SetSuspendedProcesses(const Aws::Vector& value) { m_suspendedProcessesHasBeenSet = true; m_suspendedProcesses = value; } /** *

The suspended processes associated with the group.

*/ inline void SetSuspendedProcesses(Aws::Vector&& value) { m_suspendedProcessesHasBeenSet = true; m_suspendedProcesses = std::move(value); } /** *

The suspended processes associated with the group.

*/ inline AutoScalingGroup& WithSuspendedProcesses(const Aws::Vector& value) { SetSuspendedProcesses(value); return *this;} /** *

The suspended processes associated with the group.

*/ inline AutoScalingGroup& WithSuspendedProcesses(Aws::Vector&& value) { SetSuspendedProcesses(std::move(value)); return *this;} /** *

The suspended processes associated with the group.

*/ inline AutoScalingGroup& AddSuspendedProcesses(const SuspendedProcess& value) { m_suspendedProcessesHasBeenSet = true; m_suspendedProcesses.push_back(value); return *this; } /** *

The suspended processes associated with the group.

*/ inline AutoScalingGroup& AddSuspendedProcesses(SuspendedProcess&& value) { m_suspendedProcessesHasBeenSet = true; m_suspendedProcesses.push_back(std::move(value)); return *this; } /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline const Aws::String& GetPlacementGroup() const{ return m_placementGroup; } /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline bool PlacementGroupHasBeenSet() const { return m_placementGroupHasBeenSet; } /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline void SetPlacementGroup(const Aws::String& value) { m_placementGroupHasBeenSet = true; m_placementGroup = value; } /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline void SetPlacementGroup(Aws::String&& value) { m_placementGroupHasBeenSet = true; m_placementGroup = std::move(value); } /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline void SetPlacementGroup(const char* value) { m_placementGroupHasBeenSet = true; m_placementGroup.assign(value); } /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline AutoScalingGroup& WithPlacementGroup(const Aws::String& value) { SetPlacementGroup(value); return *this;} /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline AutoScalingGroup& WithPlacementGroup(Aws::String&& value) { SetPlacementGroup(std::move(value)); return *this;} /** *

The name of the placement group into which to launch your instances, if * any.

*/ inline AutoScalingGroup& WithPlacementGroup(const char* value) { SetPlacementGroup(value); return *this;} /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline const Aws::String& GetVPCZoneIdentifier() const{ return m_vPCZoneIdentifier; } /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline bool VPCZoneIdentifierHasBeenSet() const { return m_vPCZoneIdentifierHasBeenSet; } /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline void SetVPCZoneIdentifier(const Aws::String& value) { m_vPCZoneIdentifierHasBeenSet = true; m_vPCZoneIdentifier = value; } /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline void SetVPCZoneIdentifier(Aws::String&& value) { m_vPCZoneIdentifierHasBeenSet = true; m_vPCZoneIdentifier = std::move(value); } /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline void SetVPCZoneIdentifier(const char* value) { m_vPCZoneIdentifierHasBeenSet = true; m_vPCZoneIdentifier.assign(value); } /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline AutoScalingGroup& WithVPCZoneIdentifier(const Aws::String& value) { SetVPCZoneIdentifier(value); return *this;} /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline AutoScalingGroup& WithVPCZoneIdentifier(Aws::String&& value) { SetVPCZoneIdentifier(std::move(value)); return *this;} /** *

One or more subnet IDs, if applicable, separated by commas.

*/ inline AutoScalingGroup& WithVPCZoneIdentifier(const char* value) { SetVPCZoneIdentifier(value); return *this;} /** *

The metrics enabled for the group.

*/ inline const Aws::Vector& GetEnabledMetrics() const{ return m_enabledMetrics; } /** *

The metrics enabled for the group.

*/ inline bool EnabledMetricsHasBeenSet() const { return m_enabledMetricsHasBeenSet; } /** *

The metrics enabled for the group.

*/ inline void SetEnabledMetrics(const Aws::Vector& value) { m_enabledMetricsHasBeenSet = true; m_enabledMetrics = value; } /** *

The metrics enabled for the group.

*/ inline void SetEnabledMetrics(Aws::Vector&& value) { m_enabledMetricsHasBeenSet = true; m_enabledMetrics = std::move(value); } /** *

The metrics enabled for the group.

*/ inline AutoScalingGroup& WithEnabledMetrics(const Aws::Vector& value) { SetEnabledMetrics(value); return *this;} /** *

The metrics enabled for the group.

*/ inline AutoScalingGroup& WithEnabledMetrics(Aws::Vector&& value) { SetEnabledMetrics(std::move(value)); return *this;} /** *

The metrics enabled for the group.

*/ inline AutoScalingGroup& AddEnabledMetrics(const EnabledMetric& value) { m_enabledMetricsHasBeenSet = true; m_enabledMetrics.push_back(value); return *this; } /** *

The metrics enabled for the group.

*/ inline AutoScalingGroup& AddEnabledMetrics(EnabledMetric&& value) { m_enabledMetricsHasBeenSet = true; m_enabledMetrics.push_back(std::move(value)); return *this; } /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline AutoScalingGroup& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline AutoScalingGroup& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The current state of the group when the DeleteAutoScalingGroup * operation is in progress.

*/ inline AutoScalingGroup& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

The tags for the group.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The tags for the group.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The tags for the group.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The tags for the group.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The tags for the group.

*/ inline AutoScalingGroup& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The tags for the group.

*/ inline AutoScalingGroup& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The tags for the group.

*/ inline AutoScalingGroup& AddTags(const TagDescription& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The tags for the group.

*/ inline AutoScalingGroup& AddTags(TagDescription&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

The termination policies for the group.

*/ inline const Aws::Vector& GetTerminationPolicies() const{ return m_terminationPolicies; } /** *

The termination policies for the group.

*/ inline bool TerminationPoliciesHasBeenSet() const { return m_terminationPoliciesHasBeenSet; } /** *

The termination policies for the group.

*/ inline void SetTerminationPolicies(const Aws::Vector& value) { m_terminationPoliciesHasBeenSet = true; m_terminationPolicies = value; } /** *

The termination policies for the group.

*/ inline void SetTerminationPolicies(Aws::Vector&& value) { m_terminationPoliciesHasBeenSet = true; m_terminationPolicies = std::move(value); } /** *

The termination policies for the group.

*/ inline AutoScalingGroup& WithTerminationPolicies(const Aws::Vector& value) { SetTerminationPolicies(value); return *this;} /** *

The termination policies for the group.

*/ inline AutoScalingGroup& WithTerminationPolicies(Aws::Vector&& value) { SetTerminationPolicies(std::move(value)); return *this;} /** *

The termination policies for the group.

*/ inline AutoScalingGroup& AddTerminationPolicies(const Aws::String& value) { m_terminationPoliciesHasBeenSet = true; m_terminationPolicies.push_back(value); return *this; } /** *

The termination policies for the group.

*/ inline AutoScalingGroup& AddTerminationPolicies(Aws::String&& value) { m_terminationPoliciesHasBeenSet = true; m_terminationPolicies.push_back(std::move(value)); return *this; } /** *

The termination policies for the group.

*/ inline AutoScalingGroup& AddTerminationPolicies(const char* value) { m_terminationPoliciesHasBeenSet = true; m_terminationPolicies.push_back(value); return *this; } /** *

Indicates whether newly launched instances are protected from termination by * Amazon EC2 Auto Scaling when scaling in.

*/ inline bool GetNewInstancesProtectedFromScaleIn() const{ return m_newInstancesProtectedFromScaleIn; } /** *

Indicates whether newly launched instances are protected from termination by * Amazon EC2 Auto Scaling when scaling in.

*/ inline bool NewInstancesProtectedFromScaleInHasBeenSet() const { return m_newInstancesProtectedFromScaleInHasBeenSet; } /** *

Indicates whether newly launched instances are protected from termination by * Amazon EC2 Auto Scaling when scaling in.

*/ inline void SetNewInstancesProtectedFromScaleIn(bool value) { m_newInstancesProtectedFromScaleInHasBeenSet = true; m_newInstancesProtectedFromScaleIn = value; } /** *

Indicates whether newly launched instances are protected from termination by * Amazon EC2 Auto Scaling when scaling in.

*/ inline AutoScalingGroup& WithNewInstancesProtectedFromScaleIn(bool value) { SetNewInstancesProtectedFromScaleIn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline const Aws::String& GetServiceLinkedRoleARN() const{ return m_serviceLinkedRoleARN; } /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline bool ServiceLinkedRoleARNHasBeenSet() const { return m_serviceLinkedRoleARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline void SetServiceLinkedRoleARN(const Aws::String& value) { m_serviceLinkedRoleARNHasBeenSet = true; m_serviceLinkedRoleARN = value; } /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline void SetServiceLinkedRoleARN(Aws::String&& value) { m_serviceLinkedRoleARNHasBeenSet = true; m_serviceLinkedRoleARN = std::move(value); } /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline void SetServiceLinkedRoleARN(const char* value) { m_serviceLinkedRoleARNHasBeenSet = true; m_serviceLinkedRoleARN.assign(value); } /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline AutoScalingGroup& WithServiceLinkedRoleARN(const Aws::String& value) { SetServiceLinkedRoleARN(value); return *this;} /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline AutoScalingGroup& WithServiceLinkedRoleARN(Aws::String&& value) { SetServiceLinkedRoleARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the service-linked role that the Auto * Scaling group uses to call other Amazon Web Services on your behalf.

*/ inline AutoScalingGroup& WithServiceLinkedRoleARN(const char* value) { SetServiceLinkedRoleARN(value); return *this;} /** *

The maximum amount of time, in seconds, that an instance can be in * service.

Valid Range: Minimum value of 0.

*/ inline int GetMaxInstanceLifetime() const{ return m_maxInstanceLifetime; } /** *

The maximum amount of time, in seconds, that an instance can be in * service.

Valid Range: Minimum value of 0.

*/ inline bool MaxInstanceLifetimeHasBeenSet() const { return m_maxInstanceLifetimeHasBeenSet; } /** *

The maximum amount of time, in seconds, that an instance can be in * service.

Valid Range: Minimum value of 0.

*/ inline void SetMaxInstanceLifetime(int value) { m_maxInstanceLifetimeHasBeenSet = true; m_maxInstanceLifetime = value; } /** *

The maximum amount of time, in seconds, that an instance can be in * service.

Valid Range: Minimum value of 0.

*/ inline AutoScalingGroup& WithMaxInstanceLifetime(int value) { SetMaxInstanceLifetime(value); return *this;} /** *

Indicates whether Capacity Rebalancing is enabled.

*/ inline bool GetCapacityRebalance() const{ return m_capacityRebalance; } /** *

Indicates whether Capacity Rebalancing is enabled.

*/ inline bool CapacityRebalanceHasBeenSet() const { return m_capacityRebalanceHasBeenSet; } /** *

Indicates whether Capacity Rebalancing is enabled.

*/ inline void SetCapacityRebalance(bool value) { m_capacityRebalanceHasBeenSet = true; m_capacityRebalance = value; } /** *

Indicates whether Capacity Rebalancing is enabled.

*/ inline AutoScalingGroup& WithCapacityRebalance(bool value) { SetCapacityRebalance(value); return *this;} /** *

The warm pool for the group.

*/ inline const WarmPoolConfiguration& GetWarmPoolConfiguration() const{ return m_warmPoolConfiguration; } /** *

The warm pool for the group.

*/ inline bool WarmPoolConfigurationHasBeenSet() const { return m_warmPoolConfigurationHasBeenSet; } /** *

The warm pool for the group.

*/ inline void SetWarmPoolConfiguration(const WarmPoolConfiguration& value) { m_warmPoolConfigurationHasBeenSet = true; m_warmPoolConfiguration = value; } /** *

The warm pool for the group.

*/ inline void SetWarmPoolConfiguration(WarmPoolConfiguration&& value) { m_warmPoolConfigurationHasBeenSet = true; m_warmPoolConfiguration = std::move(value); } /** *

The warm pool for the group.

*/ inline AutoScalingGroup& WithWarmPoolConfiguration(const WarmPoolConfiguration& value) { SetWarmPoolConfiguration(value); return *this;} /** *

The warm pool for the group.

*/ inline AutoScalingGroup& WithWarmPoolConfiguration(WarmPoolConfiguration&& value) { SetWarmPoolConfiguration(std::move(value)); return *this;} /** *

The current size of the warm pool.

*/ inline int GetWarmPoolSize() const{ return m_warmPoolSize; } /** *

The current size of the warm pool.

*/ inline bool WarmPoolSizeHasBeenSet() const { return m_warmPoolSizeHasBeenSet; } /** *

The current size of the warm pool.

*/ inline void SetWarmPoolSize(int value) { m_warmPoolSizeHasBeenSet = true; m_warmPoolSize = value; } /** *

The current size of the warm pool.

*/ inline AutoScalingGroup& WithWarmPoolSize(int value) { SetWarmPoolSize(value); return *this;} /** *

Reserved.

*/ inline const Aws::String& GetContext() const{ return m_context; } /** *

Reserved.

*/ inline bool ContextHasBeenSet() const { return m_contextHasBeenSet; } /** *

Reserved.

*/ inline void SetContext(const Aws::String& value) { m_contextHasBeenSet = true; m_context = value; } /** *

Reserved.

*/ inline void SetContext(Aws::String&& value) { m_contextHasBeenSet = true; m_context = std::move(value); } /** *

Reserved.

*/ inline void SetContext(const char* value) { m_contextHasBeenSet = true; m_context.assign(value); } /** *

Reserved.

*/ inline AutoScalingGroup& WithContext(const Aws::String& value) { SetContext(value); return *this;} /** *

Reserved.

*/ inline AutoScalingGroup& WithContext(Aws::String&& value) { SetContext(std::move(value)); return *this;} /** *

Reserved.

*/ inline AutoScalingGroup& WithContext(const char* value) { SetContext(value); return *this;} /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline const Aws::String& GetDesiredCapacityType() const{ return m_desiredCapacityType; } /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline bool DesiredCapacityTypeHasBeenSet() const { return m_desiredCapacityTypeHasBeenSet; } /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline void SetDesiredCapacityType(const Aws::String& value) { m_desiredCapacityTypeHasBeenSet = true; m_desiredCapacityType = value; } /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline void SetDesiredCapacityType(Aws::String&& value) { m_desiredCapacityTypeHasBeenSet = true; m_desiredCapacityType = std::move(value); } /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline void SetDesiredCapacityType(const char* value) { m_desiredCapacityTypeHasBeenSet = true; m_desiredCapacityType.assign(value); } /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline AutoScalingGroup& WithDesiredCapacityType(const Aws::String& value) { SetDesiredCapacityType(value); return *this;} /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline AutoScalingGroup& WithDesiredCapacityType(Aws::String&& value) { SetDesiredCapacityType(std::move(value)); return *this;} /** *

The unit of measurement for the value specified for desired capacity. Amazon * EC2 Auto Scaling supports DesiredCapacityType for attribute-based * instance type selection only.

*/ inline AutoScalingGroup& WithDesiredCapacityType(const char* value) { SetDesiredCapacityType(value); return *this;} /** *

The duration of the default instance warmup, in seconds.

*/ inline int GetDefaultInstanceWarmup() const{ return m_defaultInstanceWarmup; } /** *

The duration of the default instance warmup, in seconds.

*/ inline bool DefaultInstanceWarmupHasBeenSet() const { return m_defaultInstanceWarmupHasBeenSet; } /** *

The duration of the default instance warmup, in seconds.

*/ inline void SetDefaultInstanceWarmup(int value) { m_defaultInstanceWarmupHasBeenSet = true; m_defaultInstanceWarmup = value; } /** *

The duration of the default instance warmup, in seconds.

*/ inline AutoScalingGroup& WithDefaultInstanceWarmup(int value) { SetDefaultInstanceWarmup(value); return *this;} /** *

The traffic sources associated with this Auto Scaling group.

*/ inline const Aws::Vector& GetTrafficSources() const{ return m_trafficSources; } /** *

The traffic sources associated with this Auto Scaling group.

*/ inline bool TrafficSourcesHasBeenSet() const { return m_trafficSourcesHasBeenSet; } /** *

The traffic sources associated with this Auto Scaling group.

*/ inline void SetTrafficSources(const Aws::Vector& value) { m_trafficSourcesHasBeenSet = true; m_trafficSources = value; } /** *

The traffic sources associated with this Auto Scaling group.

*/ inline void SetTrafficSources(Aws::Vector&& value) { m_trafficSourcesHasBeenSet = true; m_trafficSources = std::move(value); } /** *

The traffic sources associated with this Auto Scaling group.

*/ inline AutoScalingGroup& WithTrafficSources(const Aws::Vector& value) { SetTrafficSources(value); return *this;} /** *

The traffic sources associated with this Auto Scaling group.

*/ inline AutoScalingGroup& WithTrafficSources(Aws::Vector&& value) { SetTrafficSources(std::move(value)); return *this;} /** *

The traffic sources associated with this Auto Scaling group.

*/ inline AutoScalingGroup& AddTrafficSources(const TrafficSourceIdentifier& value) { m_trafficSourcesHasBeenSet = true; m_trafficSources.push_back(value); return *this; } /** *

The traffic sources associated with this Auto Scaling group.

*/ inline AutoScalingGroup& AddTrafficSources(TrafficSourceIdentifier&& value) { m_trafficSourcesHasBeenSet = true; m_trafficSources.push_back(std::move(value)); return *this; } private: Aws::String m_autoScalingGroupName; bool m_autoScalingGroupNameHasBeenSet = false; Aws::String m_autoScalingGroupARN; bool m_autoScalingGroupARNHasBeenSet = false; Aws::String m_launchConfigurationName; bool m_launchConfigurationNameHasBeenSet = false; LaunchTemplateSpecification m_launchTemplate; bool m_launchTemplateHasBeenSet = false; MixedInstancesPolicy m_mixedInstancesPolicy; bool m_mixedInstancesPolicyHasBeenSet = false; int m_minSize; bool m_minSizeHasBeenSet = false; int m_maxSize; bool m_maxSizeHasBeenSet = false; int m_desiredCapacity; bool m_desiredCapacityHasBeenSet = false; int m_predictedCapacity; bool m_predictedCapacityHasBeenSet = false; int m_defaultCooldown; bool m_defaultCooldownHasBeenSet = false; Aws::Vector m_availabilityZones; bool m_availabilityZonesHasBeenSet = false; Aws::Vector m_loadBalancerNames; bool m_loadBalancerNamesHasBeenSet = false; Aws::Vector m_targetGroupARNs; bool m_targetGroupARNsHasBeenSet = false; Aws::String m_healthCheckType; bool m_healthCheckTypeHasBeenSet = false; int m_healthCheckGracePeriod; bool m_healthCheckGracePeriodHasBeenSet = false; Aws::Vector m_instances; bool m_instancesHasBeenSet = false; Aws::Utils::DateTime m_createdTime; bool m_createdTimeHasBeenSet = false; Aws::Vector m_suspendedProcesses; bool m_suspendedProcessesHasBeenSet = false; Aws::String m_placementGroup; bool m_placementGroupHasBeenSet = false; Aws::String m_vPCZoneIdentifier; bool m_vPCZoneIdentifierHasBeenSet = false; Aws::Vector m_enabledMetrics; bool m_enabledMetricsHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_terminationPolicies; bool m_terminationPoliciesHasBeenSet = false; bool m_newInstancesProtectedFromScaleIn; bool m_newInstancesProtectedFromScaleInHasBeenSet = false; Aws::String m_serviceLinkedRoleARN; bool m_serviceLinkedRoleARNHasBeenSet = false; int m_maxInstanceLifetime; bool m_maxInstanceLifetimeHasBeenSet = false; bool m_capacityRebalance; bool m_capacityRebalanceHasBeenSet = false; WarmPoolConfiguration m_warmPoolConfiguration; bool m_warmPoolConfigurationHasBeenSet = false; int m_warmPoolSize; bool m_warmPoolSizeHasBeenSet = false; Aws::String m_context; bool m_contextHasBeenSet = false; Aws::String m_desiredCapacityType; bool m_desiredCapacityTypeHasBeenSet = false; int m_defaultInstanceWarmup; bool m_defaultInstanceWarmupHasBeenSet = false; Aws::Vector m_trafficSources; bool m_trafficSourcesHasBeenSet = false; }; } // namespace Model } // namespace AutoScaling } // namespace Aws