7#include <aws/autoscaling/AutoScalingRequest.h>
8#include <aws/autoscaling/AutoScaling_EXPORTS.h>
9#include <aws/autoscaling/model/AvailabilityZoneDistribution.h>
10#include <aws/autoscaling/model/AvailabilityZoneImpairmentPolicy.h>
11#include <aws/autoscaling/model/CapacityReservationSpecification.h>
12#include <aws/autoscaling/model/DeletionProtection.h>
13#include <aws/autoscaling/model/InstanceLifecyclePolicy.h>
14#include <aws/autoscaling/model/InstanceMaintenancePolicy.h>
15#include <aws/autoscaling/model/LaunchTemplateSpecification.h>
16#include <aws/autoscaling/model/LifecycleHookSpecification.h>
17#include <aws/autoscaling/model/MixedInstancesPolicy.h>
18#include <aws/autoscaling/model/Tag.h>
19#include <aws/autoscaling/model/TrafficSourceIdentifier.h>
20#include <aws/core/utils/memory/stl/AWSString.h>
21#include <aws/core/utils/memory/stl/AWSVector.h>
26namespace AutoScaling {
56 template <
typename AutoScalingGroupNameT = Aws::String>
58 m_autoScalingGroupNameHasBeenSet =
true;
59 m_autoScalingGroupName = std::forward<AutoScalingGroupNameT>(value);
61 template <
typename AutoScalingGroupNameT = Aws::String>
78 template <
typename LaunchConfigurationNameT = Aws::String>
80 m_launchConfigurationNameHasBeenSet =
true;
81 m_launchConfigurationName = std::forward<LaunchConfigurationNameT>(value);
83 template <
typename LaunchConfigurationNameT = Aws::String>
105 template <
typename LaunchTemplateT = LaunchTemplateSpecification>
107 m_launchTemplateHasBeenSet =
true;
108 m_launchTemplate = std::forward<LaunchTemplateT>(value);
110 template <
typename LaunchTemplateT = LaunchTemplateSpecification>
126 template <
typename MixedInstancesPolicyT = MixedInstancesPolicy>
128 m_mixedInstancesPolicyHasBeenSet =
true;
129 m_mixedInstancesPolicy = std::forward<MixedInstancesPolicyT>(value);
131 template <
typename MixedInstancesPolicyT = MixedInstancesPolicy>
152 template <
typename InstanceIdT = Aws::String>
154 m_instanceIdHasBeenSet =
true;
155 m_instanceId = std::forward<InstanceIdT>(value);
157 template <
typename InstanceIdT = Aws::String>
171 m_minSizeHasBeenSet =
true;
192 m_maxSizeHasBeenSet =
true;
213 m_desiredCapacityHasBeenSet =
true;
214 m_desiredCapacity = value;
234 m_defaultCooldownHasBeenSet =
true;
235 m_defaultCooldown = value;
253 template <
typename AvailabilityZonesT = Aws::Vector<Aws::String>>
255 m_availabilityZonesHasBeenSet =
true;
256 m_availabilityZones = std::forward<AvailabilityZonesT>(value);
258 template <
typename AvailabilityZonesT = Aws::Vector<Aws::String>>
263 template <
typename AvailabilityZonesT = Aws::String>
265 m_availabilityZonesHasBeenSet =
true;
266 m_availabilityZones.emplace_back(std::forward<AvailabilityZonesT>(value));
279 template <
typename LoadBalancerNamesT = Aws::Vector<Aws::String>>
281 m_loadBalancerNamesHasBeenSet =
true;
282 m_loadBalancerNames = std::forward<LoadBalancerNamesT>(value);
284 template <
typename LoadBalancerNamesT = Aws::Vector<Aws::String>>
289 template <
typename LoadBalancerNamesT = Aws::String>
291 m_loadBalancerNamesHasBeenSet =
true;
292 m_loadBalancerNames.emplace_back(std::forward<LoadBalancerNamesT>(value));
309 template <
typename TargetGroupARNsT = Aws::Vector<Aws::String>>
311 m_targetGroupARNsHasBeenSet =
true;
312 m_targetGroupARNs = std::forward<TargetGroupARNsT>(value);
314 template <
typename TargetGroupARNsT = Aws::Vector<Aws::String>>
319 template <
typename TargetGroupARNsT = Aws::String>
321 m_targetGroupARNsHasBeenSet =
true;
322 m_targetGroupARNs.emplace_back(std::forward<TargetGroupARNsT>(value));
340 template <
typename HealthCheckTypeT = Aws::String>
342 m_healthCheckTypeHasBeenSet =
true;
343 m_healthCheckType = std::forward<HealthCheckTypeT>(value);
345 template <
typename HealthCheckTypeT = Aws::String>
366 m_healthCheckGracePeriodHasBeenSet =
true;
367 m_healthCheckGracePeriod = value;
387 template <
typename PlacementGroupT = Aws::String>
389 m_placementGroupHasBeenSet =
true;
390 m_placementGroup = std::forward<PlacementGroupT>(value);
392 template <
typename PlacementGroupT = Aws::String>
408 template <
typename VPCZoneIdentifierT = Aws::String>
410 m_vPCZoneIdentifierHasBeenSet =
true;
411 m_vPCZoneIdentifier = std::forward<VPCZoneIdentifierT>(value);
413 template <
typename VPCZoneIdentifierT = Aws::String>
435 template <
typename TerminationPoliciesT = Aws::Vector<Aws::String>>
437 m_terminationPoliciesHasBeenSet =
true;
438 m_terminationPolicies = std::forward<TerminationPoliciesT>(value);
440 template <
typename TerminationPoliciesT = Aws::Vector<Aws::String>>
445 template <
typename TerminationPoliciesT = Aws::String>
447 m_terminationPoliciesHasBeenSet =
true;
448 m_terminationPolicies.emplace_back(std::forward<TerminationPoliciesT>(value));
465 m_newInstancesProtectedFromScaleInHasBeenSet =
true;
466 m_newInstancesProtectedFromScaleIn = value;
488 m_capacityRebalanceHasBeenSet =
true;
489 m_capacityRebalance = value;
503 return m_lifecycleHookSpecificationList;
506 template <
typename LifecycleHookSpecificationListT = Aws::Vector<LifecycleHookSpecification>>
508 m_lifecycleHookSpecificationListHasBeenSet =
true;
509 m_lifecycleHookSpecificationList = std::forward<LifecycleHookSpecificationListT>(value);
511 template <
typename LifecycleHookSpecificationListT = Aws::Vector<LifecycleHookSpecification>>
516 template <
typename LifecycleHookSpecificationListT = LifecycleHookSpecification>
518 m_lifecycleHookSpecificationListHasBeenSet =
true;
519 m_lifecycleHookSpecificationList.emplace_back(std::forward<LifecycleHookSpecificationListT>(value));
538 m_deletionProtectionHasBeenSet =
true;
539 m_deletionProtection = value;
562 template <
typename TagsT = Aws::Vector<Tag>>
564 m_tagsHasBeenSet =
true;
565 m_tags = std::forward<TagsT>(value);
567 template <
typename TagsT = Aws::Vector<Tag>>
569 SetTags(std::forward<TagsT>(value));
572 template <
typename TagsT = Tag>
574 m_tagsHasBeenSet =
true;
575 m_tags.emplace_back(std::forward<TagsT>(value));
592 template <
typename ServiceLinkedRoleARNT = Aws::String>
594 m_serviceLinkedRoleARNHasBeenSet =
true;
595 m_serviceLinkedRoleARN = std::forward<ServiceLinkedRoleARNT>(value);
597 template <
typename ServiceLinkedRoleARNT = Aws::String>
616 m_maxInstanceLifetimeHasBeenSet =
true;
617 m_maxInstanceLifetime = value;
631 template <
typename ContextT = Aws::String>
633 m_contextHasBeenSet =
true;
634 m_context = std::forward<ContextT>(value);
636 template <
typename ContextT = Aws::String>
657 template <
typename DesiredCapacityTypeT = Aws::String>
659 m_desiredCapacityTypeHasBeenSet =
true;
660 m_desiredCapacityType = std::forward<DesiredCapacityTypeT>(value);
662 template <
typename DesiredCapacityTypeT = Aws::String>
692 m_defaultInstanceWarmupHasBeenSet =
true;
693 m_defaultInstanceWarmup = value;
710 template <
typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
712 m_trafficSourcesHasBeenSet =
true;
713 m_trafficSources = std::forward<TrafficSourcesT>(value);
715 template <
typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
720 template <
typename TrafficSourcesT = TrafficSourceIdentifier>
722 m_trafficSourcesHasBeenSet =
true;
723 m_trafficSources.emplace_back(std::forward<TrafficSourcesT>(value));
737 template <
typename InstanceMa
intenancePolicyT = InstanceMa
intenancePolicy>
739 m_instanceMaintenancePolicyHasBeenSet =
true;
740 m_instanceMaintenancePolicy = std::forward<InstanceMaintenancePolicyT>(value);
742 template <
typename InstanceMa
intenancePolicyT = InstanceMa
intenancePolicy>
755 template <
typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
757 m_availabilityZoneDistributionHasBeenSet =
true;
758 m_availabilityZoneDistribution = std::forward<AvailabilityZoneDistributionT>(value);
760 template <
typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
773 template <
typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
775 m_availabilityZoneImpairmentPolicyHasBeenSet =
true;
776 m_availabilityZoneImpairmentPolicy = std::forward<AvailabilityZoneImpairmentPolicyT>(value);
778 template <
typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
797 m_skipZonalShiftValidationHasBeenSet =
true;
798 m_skipZonalShiftValidation = value;
812 template <
typename CapacityReservationSpecificationT = CapacityReservationSpecification>
814 m_capacityReservationSpecificationHasBeenSet =
true;
815 m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value);
817 template <
typename CapacityReservationSpecificationT = CapacityReservationSpecification>
838 template <
typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
840 m_instanceLifecyclePolicyHasBeenSet =
true;
841 m_instanceLifecyclePolicy = std::forward<InstanceLifecyclePolicyT>(value);
843 template <
typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
864 int m_desiredCapacity{0};
866 int m_defaultCooldown{0};
876 int m_healthCheckGracePeriod{0};
884 bool m_newInstancesProtectedFromScaleIn{
false};
886 bool m_capacityRebalance{
false};
896 int m_maxInstanceLifetime{0};
902 int m_defaultInstanceWarmup{0};
906 InstanceMaintenancePolicy m_instanceMaintenancePolicy;
908 AvailabilityZoneDistribution m_availabilityZoneDistribution;
910 AvailabilityZoneImpairmentPolicy m_availabilityZoneImpairmentPolicy;
912 bool m_skipZonalShiftValidation{
false};
914 CapacityReservationSpecification m_capacityReservationSpecification;
916 InstanceLifecyclePolicy m_instanceLifecyclePolicy;
917 bool m_autoScalingGroupNameHasBeenSet =
false;
918 bool m_launchConfigurationNameHasBeenSet =
false;
919 bool m_launchTemplateHasBeenSet =
false;
920 bool m_mixedInstancesPolicyHasBeenSet =
false;
921 bool m_instanceIdHasBeenSet =
false;
922 bool m_minSizeHasBeenSet =
false;
923 bool m_maxSizeHasBeenSet =
false;
924 bool m_desiredCapacityHasBeenSet =
false;
925 bool m_defaultCooldownHasBeenSet =
false;
926 bool m_availabilityZonesHasBeenSet =
false;
927 bool m_loadBalancerNamesHasBeenSet =
false;
928 bool m_targetGroupARNsHasBeenSet =
false;
929 bool m_healthCheckTypeHasBeenSet =
false;
930 bool m_healthCheckGracePeriodHasBeenSet =
false;
931 bool m_placementGroupHasBeenSet =
false;
932 bool m_vPCZoneIdentifierHasBeenSet =
false;
933 bool m_terminationPoliciesHasBeenSet =
false;
934 bool m_newInstancesProtectedFromScaleInHasBeenSet =
false;
935 bool m_capacityRebalanceHasBeenSet =
false;
936 bool m_lifecycleHookSpecificationListHasBeenSet =
false;
937 bool m_deletionProtectionHasBeenSet =
false;
938 bool m_tagsHasBeenSet =
false;
939 bool m_serviceLinkedRoleARNHasBeenSet =
false;
940 bool m_maxInstanceLifetimeHasBeenSet =
false;
941 bool m_contextHasBeenSet =
false;
942 bool m_desiredCapacityTypeHasBeenSet =
false;
943 bool m_defaultInstanceWarmupHasBeenSet =
false;
944 bool m_trafficSourcesHasBeenSet =
false;
945 bool m_instanceMaintenancePolicyHasBeenSet =
false;
946 bool m_availabilityZoneDistributionHasBeenSet =
false;
947 bool m_availabilityZoneImpairmentPolicyHasBeenSet =
false;
948 bool m_skipZonalShiftValidationHasBeenSet =
false;
949 bool m_capacityReservationSpecificationHasBeenSet =
false;
950 bool m_instanceLifecyclePolicyHasBeenSet =
false;
bool ContextHasBeenSet() const
void SetDeletionProtection(DeletionProtection value)
void SetHealthCheckGracePeriod(int value)
void SetMaxInstanceLifetime(int value)
void SetAutoScalingGroupName(AutoScalingGroupNameT &&value)
bool TargetGroupARNsHasBeenSet() const
void SetTrafficSources(TrafficSourcesT &&value)
bool CapacityReservationSpecificationHasBeenSet() const
bool InstanceLifecyclePolicyHasBeenSet() const
bool LaunchTemplateHasBeenSet() const
CreateAutoScalingGroupRequest & WithVPCZoneIdentifier(VPCZoneIdentifierT &&value)
void SetAvailabilityZones(AvailabilityZonesT &&value)
CreateAutoScalingGroupRequest & WithSkipZonalShiftValidation(bool value)
CreateAutoScalingGroupRequest & WithMixedInstancesPolicy(MixedInstancesPolicyT &&value)
bool AvailabilityZoneDistributionHasBeenSet() const
void SetMixedInstancesPolicy(MixedInstancesPolicyT &&value)
void SetInstanceId(InstanceIdT &&value)
const LaunchTemplateSpecification & GetLaunchTemplate() const
CreateAutoScalingGroupRequest & WithTrafficSources(TrafficSourcesT &&value)
void SetAvailabilityZoneDistribution(AvailabilityZoneDistributionT &&value)
const Aws::Vector< Aws::String > & GetLoadBalancerNames() const
bool TrafficSourcesHasBeenSet() const
CreateAutoScalingGroupRequest & WithHealthCheckGracePeriod(int value)
bool LifecycleHookSpecificationListHasBeenSet() const
bool SkipZonalShiftValidationHasBeenSet() const
const Aws::String & GetDesiredCapacityType() const
int GetDesiredCapacity() const
void SetSkipZonalShiftValidation(bool value)
bool AvailabilityZoneImpairmentPolicyHasBeenSet() const
DeletionProtection GetDeletionProtection() const
CreateAutoScalingGroupRequest & AddTrafficSources(TrafficSourcesT &&value)
bool GetSkipZonalShiftValidation() const
void SetDesiredCapacityType(DesiredCapacityTypeT &&value)
const AvailabilityZoneImpairmentPolicy & GetAvailabilityZoneImpairmentPolicy() const
const Aws::String & GetInstanceId() const
void SetTargetGroupARNs(TargetGroupARNsT &&value)
const Aws::String & GetLaunchConfigurationName() const
void SetDefaultInstanceWarmup(int value)
bool InstanceMaintenancePolicyHasBeenSet() const
const InstanceMaintenancePolicy & GetInstanceMaintenancePolicy() const
const Aws::String & GetHealthCheckType() const
CreateAutoScalingGroupRequest & WithServiceLinkedRoleARN(ServiceLinkedRoleARNT &&value)
bool DesiredCapacityHasBeenSet() const
int GetDefaultInstanceWarmup() const
CreateAutoScalingGroupRequest & WithAvailabilityZones(AvailabilityZonesT &&value)
CreateAutoScalingGroupRequest & WithDesiredCapacity(int value)
const Aws::String & GetAutoScalingGroupName() const
bool HealthCheckTypeHasBeenSet() const
const Aws::String & GetContext() const
bool VPCZoneIdentifierHasBeenSet() const
CreateAutoScalingGroupRequest & WithCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
CreateAutoScalingGroupRequest & AddTerminationPolicies(TerminationPoliciesT &&value)
bool MaxInstanceLifetimeHasBeenSet() const
bool AutoScalingGroupNameHasBeenSet() const
CreateAutoScalingGroupRequest & WithCapacityRebalance(bool value)
CreateAutoScalingGroupRequest & WithNewInstancesProtectedFromScaleIn(bool value)
CreateAutoScalingGroupRequest & AddTags(TagsT &&value)
CreateAutoScalingGroupRequest & WithTags(TagsT &&value)
const Aws::Vector< Aws::String > & GetTargetGroupARNs() const
const Aws::Vector< Tag > & GetTags() const
bool MixedInstancesPolicyHasBeenSet() const
CreateAutoScalingGroupRequest & AddTargetGroupARNs(TargetGroupARNsT &&value)
CreateAutoScalingGroupRequest & WithDefaultInstanceWarmup(int value)
CreateAutoScalingGroupRequest & WithDefaultCooldown(int value)
void SetTerminationPolicies(TerminationPoliciesT &&value)
CreateAutoScalingGroupRequest & WithTerminationPolicies(TerminationPoliciesT &&value)
CreateAutoScalingGroupRequest & WithInstanceMaintenancePolicy(InstanceMaintenancePolicyT &&value)
void SetNewInstancesProtectedFromScaleIn(bool value)
const Aws::String & GetVPCZoneIdentifier() const
void SetInstanceLifecyclePolicy(InstanceLifecyclePolicyT &&value)
CreateAutoScalingGroupRequest & WithLoadBalancerNames(LoadBalancerNamesT &&value)
void SetLaunchTemplate(LaunchTemplateT &&value)
void SetDesiredCapacity(int value)
AWS_AUTOSCALING_API void DumpBodyToUrl(Aws::Http::URI &uri) const override
bool MinSizeHasBeenSet() const
bool NewInstancesProtectedFromScaleInHasBeenSet() const
bool GetCapacityRebalance() const
void SetServiceLinkedRoleARN(ServiceLinkedRoleARNT &&value)
int GetHealthCheckGracePeriod() const
bool DeletionProtectionHasBeenSet() const
const Aws::String & GetPlacementGroup() const
bool AvailabilityZonesHasBeenSet() const
bool DefaultCooldownHasBeenSet() const
virtual const char * GetServiceRequestName() const override
void SetLaunchConfigurationName(LaunchConfigurationNameT &&value)
void SetMinSize(int value)
void SetTags(TagsT &&value)
bool TagsHasBeenSet() const
CreateAutoScalingGroupRequest & AddLoadBalancerNames(LoadBalancerNamesT &&value)
CreateAutoScalingGroupRequest & WithDeletionProtection(DeletionProtection value)
CreateAutoScalingGroupRequest & WithContext(ContextT &&value)
bool DesiredCapacityTypeHasBeenSet() const
void SetCapacityRebalance(bool value)
bool InstanceIdHasBeenSet() const
void SetLifecycleHookSpecificationList(LifecycleHookSpecificationListT &&value)
CreateAutoScalingGroupRequest & WithInstanceLifecyclePolicy(InstanceLifecyclePolicyT &&value)
void SetLoadBalancerNames(LoadBalancerNamesT &&value)
AWS_AUTOSCALING_API CreateAutoScalingGroupRequest()=default
CreateAutoScalingGroupRequest & WithLaunchConfigurationName(LaunchConfigurationNameT &&value)
bool LaunchConfigurationNameHasBeenSet() const
bool MaxSizeHasBeenSet() const
bool GetNewInstancesProtectedFromScaleIn() const
void SetDefaultCooldown(int value)
void SetContext(ContextT &&value)
const Aws::Vector< TrafficSourceIdentifier > & GetTrafficSources() const
CreateAutoScalingGroupRequest & WithMaxSize(int value)
CreateAutoScalingGroupRequest & WithMaxInstanceLifetime(int value)
const InstanceLifecyclePolicy & GetInstanceLifecyclePolicy() const
void SetMaxSize(int value)
CreateAutoScalingGroupRequest & WithAvailabilityZoneDistribution(AvailabilityZoneDistributionT &&value)
bool CapacityRebalanceHasBeenSet() const
bool DefaultInstanceWarmupHasBeenSet() const
CreateAutoScalingGroupRequest & WithMinSize(int value)
CreateAutoScalingGroupRequest & WithAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT &&value)
const Aws::Vector< Aws::String > & GetAvailabilityZones() const
void SetPlacementGroup(PlacementGroupT &&value)
const Aws::Vector< Aws::String > & GetTerminationPolicies() const
void SetHealthCheckType(HealthCheckTypeT &&value)
CreateAutoScalingGroupRequest & WithInstanceId(InstanceIdT &&value)
bool PlacementGroupHasBeenSet() const
void SetVPCZoneIdentifier(VPCZoneIdentifierT &&value)
void SetInstanceMaintenancePolicy(InstanceMaintenancePolicyT &&value)
AWS_AUTOSCALING_API Aws::String SerializePayload() const override
bool ServiceLinkedRoleARNHasBeenSet() const
const AvailabilityZoneDistribution & GetAvailabilityZoneDistribution() const
CreateAutoScalingGroupRequest & WithPlacementGroup(PlacementGroupT &&value)
const Aws::String & GetServiceLinkedRoleARN() const
CreateAutoScalingGroupRequest & WithHealthCheckType(HealthCheckTypeT &&value)
bool TerminationPoliciesHasBeenSet() const
CreateAutoScalingGroupRequest & AddLifecycleHookSpecificationList(LifecycleHookSpecificationListT &&value)
bool LoadBalancerNamesHasBeenSet() const
const MixedInstancesPolicy & GetMixedInstancesPolicy() const
bool HealthCheckGracePeriodHasBeenSet() const
void SetCapacityReservationSpecification(CapacityReservationSpecificationT &&value)
CreateAutoScalingGroupRequest & WithAutoScalingGroupName(AutoScalingGroupNameT &&value)
CreateAutoScalingGroupRequest & WithLaunchTemplate(LaunchTemplateT &&value)
const Aws::Vector< LifecycleHookSpecification > & GetLifecycleHookSpecificationList() const
CreateAutoScalingGroupRequest & WithLifecycleHookSpecificationList(LifecycleHookSpecificationListT &&value)
const CapacityReservationSpecification & GetCapacityReservationSpecification() const
CreateAutoScalingGroupRequest & WithDesiredCapacityType(DesiredCapacityTypeT &&value)
CreateAutoScalingGroupRequest & WithTargetGroupARNs(TargetGroupARNsT &&value)
int GetMaxInstanceLifetime() const
void SetAvailabilityZoneImpairmentPolicy(AvailabilityZoneImpairmentPolicyT &&value)
int GetDefaultCooldown() const
CreateAutoScalingGroupRequest & AddAvailabilityZones(AvailabilityZonesT &&value)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
std::vector< T, Aws::Allocator< T > > Vector