/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Provides details about an auto scaling group.

See Also:

AWS * API Reference

*/ class AwsAutoScalingAutoScalingGroupDetails { public: AWS_SECURITYHUB_API AwsAutoScalingAutoScalingGroupDetails(); AWS_SECURITYHUB_API AwsAutoScalingAutoScalingGroupDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsAutoScalingAutoScalingGroupDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of the launch configuration.

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

The name of the launch configuration.

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

The name of the launch configuration.

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

The name of the launch configuration.

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

The name of the launch configuration.

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

The name of the launch configuration.

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

The name of the launch configuration.

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

The name of the launch configuration.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The list of load balancers associated with the group.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The service to use for the health checks. Valid values are EC2 * or ELB.

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

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before it * checks the health status of an EC2 instance that has come into service.

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

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before it * checks the health status of an EC2 instance that has come into service.

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

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before it * checks the health status of an EC2 instance that has come into service.

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

The amount of time, in seconds, that Amazon EC2 Auto Scaling waits before it * checks the health status of an EC2 instance that has come into service.

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

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

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

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

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

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

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

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

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

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedTime(const char* value) { m_createdTimeHasBeenSet = true; m_createdTime.assign(value); } /** *

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsAutoScalingAutoScalingGroupDetails& WithCreatedTime(const Aws::String& value) { SetCreatedTime(value); return *this;} /** *

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsAutoScalingAutoScalingGroupDetails& WithCreatedTime(Aws::String&& value) { SetCreatedTime(std::move(value)); return *this;} /** *

Indicates when the auto scaling group was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsAutoScalingAutoScalingGroupDetails& WithCreatedTime(const char* value) { SetCreatedTime(value); return *this;} /** *

The mixed instances policy for the automatic scaling group.

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

The mixed instances policy for the automatic scaling group.

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

The mixed instances policy for the automatic scaling group.

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

The mixed instances policy for the automatic scaling group.

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

The mixed instances policy for the automatic scaling group.

*/ inline AwsAutoScalingAutoScalingGroupDetails& WithMixedInstancesPolicy(const AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails& value) { SetMixedInstancesPolicy(value); return *this;} /** *

The mixed instances policy for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The list of Availability Zones for the automatic scaling group.

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

The launch template to use.

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

The launch template to use.

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

The launch template to use.

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

The launch template to use.

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

The launch template to use.

*/ inline AwsAutoScalingAutoScalingGroupDetails& WithLaunchTemplate(const AwsAutoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification& value) { SetLaunchTemplate(value); return *this;} /** *

The launch template to use.

*/ inline AwsAutoScalingAutoScalingGroupDetails& WithLaunchTemplate(AwsAutoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification&& value) { SetLaunchTemplate(std::move(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 AwsAutoScalingAutoScalingGroupDetails& WithCapacityRebalance(bool value) { SetCapacityRebalance(value); return *this;} private: Aws::String m_launchConfigurationName; bool m_launchConfigurationNameHasBeenSet = false; Aws::Vector m_loadBalancerNames; bool m_loadBalancerNamesHasBeenSet = false; Aws::String m_healthCheckType; bool m_healthCheckTypeHasBeenSet = false; int m_healthCheckGracePeriod; bool m_healthCheckGracePeriodHasBeenSet = false; Aws::String m_createdTime; bool m_createdTimeHasBeenSet = false; AwsAutoScalingAutoScalingGroupMixedInstancesPolicyDetails m_mixedInstancesPolicy; bool m_mixedInstancesPolicyHasBeenSet = false; Aws::Vector m_availabilityZones; bool m_availabilityZonesHasBeenSet = false; AwsAutoScalingAutoScalingGroupLaunchTemplateLaunchTemplateSpecification m_launchTemplate; bool m_launchTemplateHasBeenSet = false; bool m_capacityRebalance; bool m_capacityRebalanceHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws