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));
541 m_deletionProtectionHasBeenSet =
true;
542 m_deletionProtection = value;
565 template <
typename TagsT = Aws::Vector<Tag>>
567 m_tagsHasBeenSet =
true;
568 m_tags = std::forward<TagsT>(value);
570 template <
typename TagsT = Aws::Vector<Tag>>
572 SetTags(std::forward<TagsT>(value));
575 template <
typename TagsT = Tag>
577 m_tagsHasBeenSet =
true;
578 m_tags.emplace_back(std::forward<TagsT>(value));
595 template <
typename ServiceLinkedRoleARNT = Aws::String>
597 m_serviceLinkedRoleARNHasBeenSet =
true;
598 m_serviceLinkedRoleARN = std::forward<ServiceLinkedRoleARNT>(value);
600 template <
typename ServiceLinkedRoleARNT = Aws::String>
619 m_maxInstanceLifetimeHasBeenSet =
true;
620 m_maxInstanceLifetime = value;
634 template <
typename ContextT = Aws::String>
636 m_contextHasBeenSet =
true;
637 m_context = std::forward<ContextT>(value);
639 template <
typename ContextT = Aws::String>
660 template <
typename DesiredCapacityTypeT = Aws::String>
662 m_desiredCapacityTypeHasBeenSet =
true;
663 m_desiredCapacityType = std::forward<DesiredCapacityTypeT>(value);
665 template <
typename DesiredCapacityTypeT = Aws::String>
695 m_defaultInstanceWarmupHasBeenSet =
true;
696 m_defaultInstanceWarmup = value;
713 template <
typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
715 m_trafficSourcesHasBeenSet =
true;
716 m_trafficSources = std::forward<TrafficSourcesT>(value);
718 template <
typename TrafficSourcesT = Aws::Vector<TrafficSourceIdentifier>>
723 template <
typename TrafficSourcesT = TrafficSourceIdentifier>
725 m_trafficSourcesHasBeenSet =
true;
726 m_trafficSources.emplace_back(std::forward<TrafficSourcesT>(value));
740 template <
typename InstanceMa
intenancePolicyT = InstanceMa
intenancePolicy>
742 m_instanceMaintenancePolicyHasBeenSet =
true;
743 m_instanceMaintenancePolicy = std::forward<InstanceMaintenancePolicyT>(value);
745 template <
typename InstanceMa
intenancePolicyT = InstanceMa
intenancePolicy>
758 template <
typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
760 m_availabilityZoneDistributionHasBeenSet =
true;
761 m_availabilityZoneDistribution = std::forward<AvailabilityZoneDistributionT>(value);
763 template <
typename AvailabilityZoneDistributionT = AvailabilityZoneDistribution>
776 template <
typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
778 m_availabilityZoneImpairmentPolicyHasBeenSet =
true;
779 m_availabilityZoneImpairmentPolicy = std::forward<AvailabilityZoneImpairmentPolicyT>(value);
781 template <
typename AvailabilityZoneImpairmentPolicyT = AvailabilityZoneImpairmentPolicy>
800 m_skipZonalShiftValidationHasBeenSet =
true;
801 m_skipZonalShiftValidation = value;
815 template <
typename CapacityReservationSpecificationT = CapacityReservationSpecification>
817 m_capacityReservationSpecificationHasBeenSet =
true;
818 m_capacityReservationSpecification = std::forward<CapacityReservationSpecificationT>(value);
820 template <
typename CapacityReservationSpecificationT = CapacityReservationSpecification>
841 template <
typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
843 m_instanceLifecyclePolicyHasBeenSet =
true;
844 m_instanceLifecyclePolicy = std::forward<InstanceLifecyclePolicyT>(value);
846 template <
typename InstanceLifecyclePolicyT = InstanceLifecyclePolicy>
867 int m_desiredCapacity{0};
869 int m_defaultCooldown{0};
879 int m_healthCheckGracePeriod{0};
887 bool m_newInstancesProtectedFromScaleIn{
false};
889 bool m_capacityRebalance{
false};
899 int m_maxInstanceLifetime{0};
905 int m_defaultInstanceWarmup{0};
909 InstanceMaintenancePolicy m_instanceMaintenancePolicy;
911 AvailabilityZoneDistribution m_availabilityZoneDistribution;
913 AvailabilityZoneImpairmentPolicy m_availabilityZoneImpairmentPolicy;
915 bool m_skipZonalShiftValidation{
false};
917 CapacityReservationSpecification m_capacityReservationSpecification;
919 InstanceLifecyclePolicy m_instanceLifecyclePolicy;
920 bool m_autoScalingGroupNameHasBeenSet =
false;
921 bool m_launchConfigurationNameHasBeenSet =
false;
922 bool m_launchTemplateHasBeenSet =
false;
923 bool m_mixedInstancesPolicyHasBeenSet =
false;
924 bool m_instanceIdHasBeenSet =
false;
925 bool m_minSizeHasBeenSet =
false;
926 bool m_maxSizeHasBeenSet =
false;
927 bool m_desiredCapacityHasBeenSet =
false;
928 bool m_defaultCooldownHasBeenSet =
false;
929 bool m_availabilityZonesHasBeenSet =
false;
930 bool m_loadBalancerNamesHasBeenSet =
false;
931 bool m_targetGroupARNsHasBeenSet =
false;
932 bool m_healthCheckTypeHasBeenSet =
false;
933 bool m_healthCheckGracePeriodHasBeenSet =
false;
934 bool m_placementGroupHasBeenSet =
false;
935 bool m_vPCZoneIdentifierHasBeenSet =
false;
936 bool m_terminationPoliciesHasBeenSet =
false;
937 bool m_newInstancesProtectedFromScaleInHasBeenSet =
false;
938 bool m_capacityRebalanceHasBeenSet =
false;
939 bool m_lifecycleHookSpecificationListHasBeenSet =
false;
940 bool m_deletionProtectionHasBeenSet =
false;
941 bool m_tagsHasBeenSet =
false;
942 bool m_serviceLinkedRoleARNHasBeenSet =
false;
943 bool m_maxInstanceLifetimeHasBeenSet =
false;
944 bool m_contextHasBeenSet =
false;
945 bool m_desiredCapacityTypeHasBeenSet =
false;
946 bool m_defaultInstanceWarmupHasBeenSet =
false;
947 bool m_trafficSourcesHasBeenSet =
false;
948 bool m_instanceMaintenancePolicyHasBeenSet =
false;
949 bool m_availabilityZoneDistributionHasBeenSet =
false;
950 bool m_availabilityZoneImpairmentPolicyHasBeenSet =
false;
951 bool m_skipZonalShiftValidationHasBeenSet =
false;
952 bool m_capacityReservationSpecificationHasBeenSet =
false;
953 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