/** * 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading namespace Xml { class XmlDocument; } // namespace Xml } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace AutoScaling { namespace Model { class AttachInstancesRequest; class AttachLoadBalancerTargetGroupsRequest; class AttachLoadBalancersRequest; class BatchDeleteScheduledActionRequest; class BatchPutScheduledUpdateGroupActionRequest; class CancelInstanceRefreshRequest; class CompleteLifecycleActionRequest; class CreateAutoScalingGroupRequest; class CreateLaunchConfigurationRequest; class CreateOrUpdateTagsRequest; class DeleteAutoScalingGroupRequest; class DeleteLaunchConfigurationRequest; class DeleteLifecycleHookRequest; class DeleteNotificationConfigurationRequest; class DeletePolicyRequest; class DeleteScheduledActionRequest; class DeleteTagsRequest; class DescribeAccountLimitsRequest; class DescribeAdjustmentTypesRequest; class DescribeAutoScalingGroupsRequest; class DescribeAutoScalingInstancesRequest; class DescribeAutoScalingNotificationTypesRequest; class DescribeInstanceRefreshesRequest; class DescribeLaunchConfigurationsRequest; class DescribeLifecycleHookTypesRequest; class DescribeLifecycleHooksRequest; class DescribeLoadBalancerTargetGroupsRequest; class DescribeLoadBalancersRequest; class DescribeMetricCollectionTypesRequest; class DescribeNotificationConfigurationsRequest; class DescribePoliciesRequest; class DescribeScalingActivitiesRequest; class DescribeScalingProcessTypesRequest; class DescribeScheduledActionsRequest; class DescribeTagsRequest; class DescribeTerminationPolicyTypesRequest; class DetachInstancesRequest; class DetachLoadBalancerTargetGroupsRequest; class DetachLoadBalancersRequest; class DisableMetricsCollectionRequest; class EnableMetricsCollectionRequest; class EnterStandbyRequest; class ExecutePolicyRequest; class ExitStandbyRequest; class PutLifecycleHookRequest; class PutNotificationConfigurationRequest; class PutScalingPolicyRequest; class PutScheduledUpdateGroupActionRequest; class RecordLifecycleActionHeartbeatRequest; class ResumeProcessesRequest; class SetDesiredCapacityRequest; class SetInstanceHealthRequest; class SetInstanceProtectionRequest; class StartInstanceRefreshRequest; class SuspendProcessesRequest; class TerminateInstanceInAutoScalingGroupRequest; class UpdateAutoScalingGroupRequest; typedef Aws::Utils::Outcome AttachInstancesOutcome; typedef Aws::Utils::Outcome AttachLoadBalancerTargetGroupsOutcome; typedef Aws::Utils::Outcome AttachLoadBalancersOutcome; typedef Aws::Utils::Outcome BatchDeleteScheduledActionOutcome; typedef Aws::Utils::Outcome BatchPutScheduledUpdateGroupActionOutcome; typedef Aws::Utils::Outcome CancelInstanceRefreshOutcome; typedef Aws::Utils::Outcome CompleteLifecycleActionOutcome; typedef Aws::Utils::Outcome CreateAutoScalingGroupOutcome; typedef Aws::Utils::Outcome CreateLaunchConfigurationOutcome; typedef Aws::Utils::Outcome CreateOrUpdateTagsOutcome; typedef Aws::Utils::Outcome DeleteAutoScalingGroupOutcome; typedef Aws::Utils::Outcome DeleteLaunchConfigurationOutcome; typedef Aws::Utils::Outcome DeleteLifecycleHookOutcome; typedef Aws::Utils::Outcome DeleteNotificationConfigurationOutcome; typedef Aws::Utils::Outcome DeletePolicyOutcome; typedef Aws::Utils::Outcome DeleteScheduledActionOutcome; typedef Aws::Utils::Outcome DeleteTagsOutcome; typedef Aws::Utils::Outcome DescribeAccountLimitsOutcome; typedef Aws::Utils::Outcome DescribeAdjustmentTypesOutcome; typedef Aws::Utils::Outcome DescribeAutoScalingGroupsOutcome; typedef Aws::Utils::Outcome DescribeAutoScalingInstancesOutcome; typedef Aws::Utils::Outcome DescribeAutoScalingNotificationTypesOutcome; typedef Aws::Utils::Outcome DescribeInstanceRefreshesOutcome; typedef Aws::Utils::Outcome DescribeLaunchConfigurationsOutcome; typedef Aws::Utils::Outcome DescribeLifecycleHookTypesOutcome; typedef Aws::Utils::Outcome DescribeLifecycleHooksOutcome; typedef Aws::Utils::Outcome DescribeLoadBalancerTargetGroupsOutcome; typedef Aws::Utils::Outcome DescribeLoadBalancersOutcome; typedef Aws::Utils::Outcome DescribeMetricCollectionTypesOutcome; typedef Aws::Utils::Outcome DescribeNotificationConfigurationsOutcome; typedef Aws::Utils::Outcome DescribePoliciesOutcome; typedef Aws::Utils::Outcome DescribeScalingActivitiesOutcome; typedef Aws::Utils::Outcome DescribeScalingProcessTypesOutcome; typedef Aws::Utils::Outcome DescribeScheduledActionsOutcome; typedef Aws::Utils::Outcome DescribeTagsOutcome; typedef Aws::Utils::Outcome DescribeTerminationPolicyTypesOutcome; typedef Aws::Utils::Outcome DetachInstancesOutcome; typedef Aws::Utils::Outcome DetachLoadBalancerTargetGroupsOutcome; typedef Aws::Utils::Outcome DetachLoadBalancersOutcome; typedef Aws::Utils::Outcome DisableMetricsCollectionOutcome; typedef Aws::Utils::Outcome EnableMetricsCollectionOutcome; typedef Aws::Utils::Outcome EnterStandbyOutcome; typedef Aws::Utils::Outcome ExecutePolicyOutcome; typedef Aws::Utils::Outcome ExitStandbyOutcome; typedef Aws::Utils::Outcome PutLifecycleHookOutcome; typedef Aws::Utils::Outcome PutNotificationConfigurationOutcome; typedef Aws::Utils::Outcome PutScalingPolicyOutcome; typedef Aws::Utils::Outcome PutScheduledUpdateGroupActionOutcome; typedef Aws::Utils::Outcome RecordLifecycleActionHeartbeatOutcome; typedef Aws::Utils::Outcome ResumeProcessesOutcome; typedef Aws::Utils::Outcome SetDesiredCapacityOutcome; typedef Aws::Utils::Outcome SetInstanceHealthOutcome; typedef Aws::Utils::Outcome SetInstanceProtectionOutcome; typedef Aws::Utils::Outcome StartInstanceRefreshOutcome; typedef Aws::Utils::Outcome SuspendProcessesOutcome; typedef Aws::Utils::Outcome TerminateInstanceInAutoScalingGroupOutcome; typedef Aws::Utils::Outcome UpdateAutoScalingGroupOutcome; typedef std::future AttachInstancesOutcomeCallable; typedef std::future AttachLoadBalancerTargetGroupsOutcomeCallable; typedef std::future AttachLoadBalancersOutcomeCallable; typedef std::future BatchDeleteScheduledActionOutcomeCallable; typedef std::future BatchPutScheduledUpdateGroupActionOutcomeCallable; typedef std::future CancelInstanceRefreshOutcomeCallable; typedef std::future CompleteLifecycleActionOutcomeCallable; typedef std::future CreateAutoScalingGroupOutcomeCallable; typedef std::future CreateLaunchConfigurationOutcomeCallable; typedef std::future CreateOrUpdateTagsOutcomeCallable; typedef std::future DeleteAutoScalingGroupOutcomeCallable; typedef std::future DeleteLaunchConfigurationOutcomeCallable; typedef std::future DeleteLifecycleHookOutcomeCallable; typedef std::future DeleteNotificationConfigurationOutcomeCallable; typedef std::future DeletePolicyOutcomeCallable; typedef std::future DeleteScheduledActionOutcomeCallable; typedef std::future DeleteTagsOutcomeCallable; typedef std::future DescribeAccountLimitsOutcomeCallable; typedef std::future DescribeAdjustmentTypesOutcomeCallable; typedef std::future DescribeAutoScalingGroupsOutcomeCallable; typedef std::future DescribeAutoScalingInstancesOutcomeCallable; typedef std::future DescribeAutoScalingNotificationTypesOutcomeCallable; typedef std::future DescribeInstanceRefreshesOutcomeCallable; typedef std::future DescribeLaunchConfigurationsOutcomeCallable; typedef std::future DescribeLifecycleHookTypesOutcomeCallable; typedef std::future DescribeLifecycleHooksOutcomeCallable; typedef std::future DescribeLoadBalancerTargetGroupsOutcomeCallable; typedef std::future DescribeLoadBalancersOutcomeCallable; typedef std::future DescribeMetricCollectionTypesOutcomeCallable; typedef std::future DescribeNotificationConfigurationsOutcomeCallable; typedef std::future DescribePoliciesOutcomeCallable; typedef std::future DescribeScalingActivitiesOutcomeCallable; typedef std::future DescribeScalingProcessTypesOutcomeCallable; typedef std::future DescribeScheduledActionsOutcomeCallable; typedef std::future DescribeTagsOutcomeCallable; typedef std::future DescribeTerminationPolicyTypesOutcomeCallable; typedef std::future DetachInstancesOutcomeCallable; typedef std::future DetachLoadBalancerTargetGroupsOutcomeCallable; typedef std::future DetachLoadBalancersOutcomeCallable; typedef std::future DisableMetricsCollectionOutcomeCallable; typedef std::future EnableMetricsCollectionOutcomeCallable; typedef std::future EnterStandbyOutcomeCallable; typedef std::future ExecutePolicyOutcomeCallable; typedef std::future ExitStandbyOutcomeCallable; typedef std::future PutLifecycleHookOutcomeCallable; typedef std::future PutNotificationConfigurationOutcomeCallable; typedef std::future PutScalingPolicyOutcomeCallable; typedef std::future PutScheduledUpdateGroupActionOutcomeCallable; typedef std::future RecordLifecycleActionHeartbeatOutcomeCallable; typedef std::future ResumeProcessesOutcomeCallable; typedef std::future SetDesiredCapacityOutcomeCallable; typedef std::future SetInstanceHealthOutcomeCallable; typedef std::future SetInstanceProtectionOutcomeCallable; typedef std::future StartInstanceRefreshOutcomeCallable; typedef std::future SuspendProcessesOutcomeCallable; typedef std::future TerminateInstanceInAutoScalingGroupOutcomeCallable; typedef std::future UpdateAutoScalingGroupOutcomeCallable; } // namespace Model class AutoScalingClient; typedef std::function&) > AttachInstancesResponseReceivedHandler; typedef std::function&) > AttachLoadBalancerTargetGroupsResponseReceivedHandler; typedef std::function&) > AttachLoadBalancersResponseReceivedHandler; typedef std::function&) > BatchDeleteScheduledActionResponseReceivedHandler; typedef std::function&) > BatchPutScheduledUpdateGroupActionResponseReceivedHandler; typedef std::function&) > CancelInstanceRefreshResponseReceivedHandler; typedef std::function&) > CompleteLifecycleActionResponseReceivedHandler; typedef std::function&) > CreateAutoScalingGroupResponseReceivedHandler; typedef std::function&) > CreateLaunchConfigurationResponseReceivedHandler; typedef std::function&) > CreateOrUpdateTagsResponseReceivedHandler; typedef std::function&) > DeleteAutoScalingGroupResponseReceivedHandler; typedef std::function&) > DeleteLaunchConfigurationResponseReceivedHandler; typedef std::function&) > DeleteLifecycleHookResponseReceivedHandler; typedef std::function&) > DeleteNotificationConfigurationResponseReceivedHandler; typedef std::function&) > DeletePolicyResponseReceivedHandler; typedef std::function&) > DeleteScheduledActionResponseReceivedHandler; typedef std::function&) > DeleteTagsResponseReceivedHandler; typedef std::function&) > DescribeAccountLimitsResponseReceivedHandler; typedef std::function&) > DescribeAdjustmentTypesResponseReceivedHandler; typedef std::function&) > DescribeAutoScalingGroupsResponseReceivedHandler; typedef std::function&) > DescribeAutoScalingInstancesResponseReceivedHandler; typedef std::function&) > DescribeAutoScalingNotificationTypesResponseReceivedHandler; typedef std::function&) > DescribeInstanceRefreshesResponseReceivedHandler; typedef std::function&) > DescribeLaunchConfigurationsResponseReceivedHandler; typedef std::function&) > DescribeLifecycleHookTypesResponseReceivedHandler; typedef std::function&) > DescribeLifecycleHooksResponseReceivedHandler; typedef std::function&) > DescribeLoadBalancerTargetGroupsResponseReceivedHandler; typedef std::function&) > DescribeLoadBalancersResponseReceivedHandler; typedef std::function&) > DescribeMetricCollectionTypesResponseReceivedHandler; typedef std::function&) > DescribeNotificationConfigurationsResponseReceivedHandler; typedef std::function&) > DescribePoliciesResponseReceivedHandler; typedef std::function&) > DescribeScalingActivitiesResponseReceivedHandler; typedef std::function&) > DescribeScalingProcessTypesResponseReceivedHandler; typedef std::function&) > DescribeScheduledActionsResponseReceivedHandler; typedef std::function&) > DescribeTagsResponseReceivedHandler; typedef std::function&) > DescribeTerminationPolicyTypesResponseReceivedHandler; typedef std::function&) > DetachInstancesResponseReceivedHandler; typedef std::function&) > DetachLoadBalancerTargetGroupsResponseReceivedHandler; typedef std::function&) > DetachLoadBalancersResponseReceivedHandler; typedef std::function&) > DisableMetricsCollectionResponseReceivedHandler; typedef std::function&) > EnableMetricsCollectionResponseReceivedHandler; typedef std::function&) > EnterStandbyResponseReceivedHandler; typedef std::function&) > ExecutePolicyResponseReceivedHandler; typedef std::function&) > ExitStandbyResponseReceivedHandler; typedef std::function&) > PutLifecycleHookResponseReceivedHandler; typedef std::function&) > PutNotificationConfigurationResponseReceivedHandler; typedef std::function&) > PutScalingPolicyResponseReceivedHandler; typedef std::function&) > PutScheduledUpdateGroupActionResponseReceivedHandler; typedef std::function&) > RecordLifecycleActionHeartbeatResponseReceivedHandler; typedef std::function&) > ResumeProcessesResponseReceivedHandler; typedef std::function&) > SetDesiredCapacityResponseReceivedHandler; typedef std::function&) > SetInstanceHealthResponseReceivedHandler; typedef std::function&) > SetInstanceProtectionResponseReceivedHandler; typedef std::function&) > StartInstanceRefreshResponseReceivedHandler; typedef std::function&) > SuspendProcessesResponseReceivedHandler; typedef std::function&) > TerminateInstanceInAutoScalingGroupResponseReceivedHandler; typedef std::function&) > UpdateAutoScalingGroupResponseReceivedHandler; /** * Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling is * designed to automatically launch or terminate EC2 instances based on * user-defined scaling policies, scheduled actions, and health checks. Use this * service with AWS Auto Scaling, Amazon CloudWatch, and Elastic Load * Balancing.

For more information, including information about granting IAM * users required permissions for Amazon EC2 Auto Scaling actions, see the Amazon * EC2 Auto Scaling User Guide.

*/ class AWS_AUTOSCALING_API AutoScalingClient : public Aws::Client::AWSXMLClient { public: typedef Aws::Client::AWSXMLClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ AutoScalingClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ AutoScalingClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ AutoScalingClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~AutoScalingClient(); /** * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes. */ Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const; /** *

Attaches one or more EC2 instances to the specified Auto Scaling group.

*

When you attach instances, Amazon EC2 Auto Scaling increases the desired * capacity of the group by the number of instances being attached. If the number * of instances being attached plus the desired capacity of the group exceeds the * maximum size of the group, the operation fails.

If there is a Classic * Load Balancer attached to your Auto Scaling group, the instances are also * registered with the load balancer. If there are target groups attached to your * Auto Scaling group, the instances are also registered with the target * groups.

For more information, see Attach * EC2 Instances to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

*/ virtual Model::AttachInstancesOutcome AttachInstances(const Model::AttachInstancesRequest& request) const; /** *

Attaches one or more EC2 instances to the specified Auto Scaling group.

*

When you attach instances, Amazon EC2 Auto Scaling increases the desired * capacity of the group by the number of instances being attached. If the number * of instances being attached plus the desired capacity of the group exceeds the * maximum size of the group, the operation fails.

If there is a Classic * Load Balancer attached to your Auto Scaling group, the instances are also * registered with the load balancer. If there are target groups attached to your * Auto Scaling group, the instances are also registered with the target * groups.

For more information, see Attach * EC2 Instances to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AttachInstancesOutcomeCallable AttachInstancesCallable(const Model::AttachInstancesRequest& request) const; /** *

Attaches one or more EC2 instances to the specified Auto Scaling group.

*

When you attach instances, Amazon EC2 Auto Scaling increases the desired * capacity of the group by the number of instances being attached. If the number * of instances being attached plus the desired capacity of the group exceeds the * maximum size of the group, the operation fails.

If there is a Classic * Load Balancer attached to your Auto Scaling group, the instances are also * registered with the load balancer. If there are target groups attached to your * Auto Scaling group, the instances are also registered with the target * groups.

For more information, see Attach * EC2 Instances to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AttachInstancesAsync(const Model::AttachInstancesRequest& request, const AttachInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Attaches one or more target groups to the specified Auto Scaling group.

*

To describe the target groups for an Auto Scaling group, call the * DescribeLoadBalancerTargetGroups API. To detach the target group from the * Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

*

With Application Load Balancers and Network Load Balancers, instances are * registered as targets with a target group. With Classic Load Balancers, * instances are registered with the load balancer. For more information, see Attaching * a Load Balancer to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

*/ virtual Model::AttachLoadBalancerTargetGroupsOutcome AttachLoadBalancerTargetGroups(const Model::AttachLoadBalancerTargetGroupsRequest& request) const; /** *

Attaches one or more target groups to the specified Auto Scaling group.

*

To describe the target groups for an Auto Scaling group, call the * DescribeLoadBalancerTargetGroups API. To detach the target group from the * Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

*

With Application Load Balancers and Network Load Balancers, instances are * registered as targets with a target group. With Classic Load Balancers, * instances are registered with the load balancer. For more information, see Attaching * a Load Balancer to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AttachLoadBalancerTargetGroupsOutcomeCallable AttachLoadBalancerTargetGroupsCallable(const Model::AttachLoadBalancerTargetGroupsRequest& request) const; /** *

Attaches one or more target groups to the specified Auto Scaling group.

*

To describe the target groups for an Auto Scaling group, call the * DescribeLoadBalancerTargetGroups API. To detach the target group from the * Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

*

With Application Load Balancers and Network Load Balancers, instances are * registered as targets with a target group. With Classic Load Balancers, * instances are registered with the load balancer. For more information, see Attaching * a Load Balancer to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AttachLoadBalancerTargetGroupsAsync(const Model::AttachLoadBalancerTargetGroupsRequest& request, const AttachLoadBalancerTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

To attach an Application Load Balancer or a Network Load Balancer, use * the AttachLoadBalancerTargetGroups API operation instead.

*

Attaches one or more Classic Load Balancers to the specified Auto Scaling * group. Amazon EC2 Auto Scaling registers the running instances with these * Classic Load Balancers.

To describe the load balancers for an Auto * Scaling group, call the DescribeLoadBalancers API. To detach the load * balancer from the Auto Scaling group, call the DetachLoadBalancers * API.

For more information, see Attaching * a Load Balancer to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

*/ virtual Model::AttachLoadBalancersOutcome AttachLoadBalancers(const Model::AttachLoadBalancersRequest& request) const; /** *

To attach an Application Load Balancer or a Network Load Balancer, use * the AttachLoadBalancerTargetGroups API operation instead.

*

Attaches one or more Classic Load Balancers to the specified Auto Scaling * group. Amazon EC2 Auto Scaling registers the running instances with these * Classic Load Balancers.

To describe the load balancers for an Auto * Scaling group, call the DescribeLoadBalancers API. To detach the load * balancer from the Auto Scaling group, call the DetachLoadBalancers * API.

For more information, see Attaching * a Load Balancer to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AttachLoadBalancersOutcomeCallable AttachLoadBalancersCallable(const Model::AttachLoadBalancersRequest& request) const; /** *

To attach an Application Load Balancer or a Network Load Balancer, use * the AttachLoadBalancerTargetGroups API operation instead.

*

Attaches one or more Classic Load Balancers to the specified Auto Scaling * group. Amazon EC2 Auto Scaling registers the running instances with these * Classic Load Balancers.

To describe the load balancers for an Auto * Scaling group, call the DescribeLoadBalancers API. To detach the load * balancer from the Auto Scaling group, call the DetachLoadBalancers * API.

For more information, see Attaching * a Load Balancer to Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AttachLoadBalancersAsync(const Model::AttachLoadBalancersRequest& request, const AttachLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes one or more scheduled actions for the specified Auto Scaling * group.

See Also:

AWS * API Reference

*/ virtual Model::BatchDeleteScheduledActionOutcome BatchDeleteScheduledAction(const Model::BatchDeleteScheduledActionRequest& request) const; /** *

Deletes one or more scheduled actions for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::BatchDeleteScheduledActionOutcomeCallable BatchDeleteScheduledActionCallable(const Model::BatchDeleteScheduledActionRequest& request) const; /** *

Deletes one or more scheduled actions for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void BatchDeleteScheduledActionAsync(const Model::BatchDeleteScheduledActionRequest& request, const BatchDeleteScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates one or more scheduled scaling actions for an Auto Scaling * group. If you leave a parameter unspecified when updating a scheduled scaling * action, the corresponding value remains unchanged.

See Also:

AWS * API Reference

*/ virtual Model::BatchPutScheduledUpdateGroupActionOutcome BatchPutScheduledUpdateGroupAction(const Model::BatchPutScheduledUpdateGroupActionRequest& request) const; /** *

Creates or updates one or more scheduled scaling actions for an Auto Scaling * group. If you leave a parameter unspecified when updating a scheduled scaling * action, the corresponding value remains unchanged.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::BatchPutScheduledUpdateGroupActionOutcomeCallable BatchPutScheduledUpdateGroupActionCallable(const Model::BatchPutScheduledUpdateGroupActionRequest& request) const; /** *

Creates or updates one or more scheduled scaling actions for an Auto Scaling * group. If you leave a parameter unspecified when updating a scheduled scaling * action, the corresponding value remains unchanged.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void BatchPutScheduledUpdateGroupActionAsync(const Model::BatchPutScheduledUpdateGroupActionRequest& request, const BatchPutScheduledUpdateGroupActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Cancels an instance refresh operation in progress. Cancellation does not roll * back any replacements that have already been completed, but it prevents new * replacements from being started.

For more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

*/ virtual Model::CancelInstanceRefreshOutcome CancelInstanceRefresh(const Model::CancelInstanceRefreshRequest& request) const; /** *

Cancels an instance refresh operation in progress. Cancellation does not roll * back any replacements that have already been completed, but it prevents new * replacements from being started.

For more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CancelInstanceRefreshOutcomeCallable CancelInstanceRefreshCallable(const Model::CancelInstanceRefreshRequest& request) const; /** *

Cancels an instance refresh operation in progress. Cancellation does not roll * back any replacements that have already been completed, but it prevents new * replacements from being started.

For more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CancelInstanceRefreshAsync(const Model::CancelInstanceRefreshRequest& request, const CancelInstanceRefreshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Completes the lifecycle action for the specified token or instance with the * specified result.

This step is a part of the procedure for adding a * lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a * Lambda function and a rule that allows CloudWatch Events to invoke your Lambda * function when Amazon EC2 Auto Scaling launches or terminates instances.

    *
  2. (Optional) Create a notification target and an IAM role. The * target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows * Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.

    *
  3. Create the lifecycle hook. Specify whether the hook is used when * the instances launch or terminate.

  4. If you need more time, * record the lifecycle action heartbeat to keep the instance in a pending * state.

  5. If you finish before the timeout period ends, * complete the lifecycle action.

For more information, see * Amazon * EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CompleteLifecycleActionOutcome CompleteLifecycleAction(const Model::CompleteLifecycleActionRequest& request) const; /** *

Completes the lifecycle action for the specified token or instance with the * specified result.

This step is a part of the procedure for adding a * lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a * Lambda function and a rule that allows CloudWatch Events to invoke your Lambda * function when Amazon EC2 Auto Scaling launches or terminates instances.

    *
  2. (Optional) Create a notification target and an IAM role. The * target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows * Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.

    *
  3. Create the lifecycle hook. Specify whether the hook is used when * the instances launch or terminate.

  4. If you need more time, * record the lifecycle action heartbeat to keep the instance in a pending * state.

  5. If you finish before the timeout period ends, * complete the lifecycle action.

For more information, see * Amazon * EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CompleteLifecycleActionOutcomeCallable CompleteLifecycleActionCallable(const Model::CompleteLifecycleActionRequest& request) const; /** *

Completes the lifecycle action for the specified token or instance with the * specified result.

This step is a part of the procedure for adding a * lifecycle hook to an Auto Scaling group:

  1. (Optional) Create a * Lambda function and a rule that allows CloudWatch Events to invoke your Lambda * function when Amazon EC2 Auto Scaling launches or terminates instances.

    *
  2. (Optional) Create a notification target and an IAM role. The * target can be either an Amazon SQS queue or an Amazon SNS topic. The role allows * Amazon EC2 Auto Scaling to publish lifecycle notifications to the target.

    *
  3. Create the lifecycle hook. Specify whether the hook is used when * the instances launch or terminate.

  4. If you need more time, * record the lifecycle action heartbeat to keep the instance in a pending * state.

  5. If you finish before the timeout period ends, * complete the lifecycle action.

For more information, see * Amazon * EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CompleteLifecycleActionAsync(const Model::CompleteLifecycleActionRequest& request, const CompleteLifecycleActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an Auto Scaling group with the specified name and attributes.

*

If you exceed your maximum limit of Auto Scaling groups, the call fails. To * query this limit, call the DescribeAccountLimits API. For information * about updating this limit, see Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

For introductory exercises for creating an Auto Scaling group, * see Getting * Started with Amazon EC2 Auto Scaling and Tutorial: * Set Up a Scaled and Load-Balanced Application in the Amazon EC2 Auto * Scaling User Guide. For more information, see Auto * Scaling Groups in the Amazon EC2 Auto Scaling User Guide.

*

Every Auto Scaling group has three size parameters * (DesiredCapacity, MaxSize, and MinSize). * Usually, you set these sizes based on a specific number of instances. However, * if you configure a mixed instances policy that defines weights for the instance * types, you must specify these sizes with the same units that you use for * weighting instances.

See Also:

AWS * API Reference

*/ virtual Model::CreateAutoScalingGroupOutcome CreateAutoScalingGroup(const Model::CreateAutoScalingGroupRequest& request) const; /** *

Creates an Auto Scaling group with the specified name and attributes.

*

If you exceed your maximum limit of Auto Scaling groups, the call fails. To * query this limit, call the DescribeAccountLimits API. For information * about updating this limit, see Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

For introductory exercises for creating an Auto Scaling group, * see Getting * Started with Amazon EC2 Auto Scaling and Tutorial: * Set Up a Scaled and Load-Balanced Application in the Amazon EC2 Auto * Scaling User Guide. For more information, see Auto * Scaling Groups in the Amazon EC2 Auto Scaling User Guide.

*

Every Auto Scaling group has three size parameters * (DesiredCapacity, MaxSize, and MinSize). * Usually, you set these sizes based on a specific number of instances. However, * if you configure a mixed instances policy that defines weights for the instance * types, you must specify these sizes with the same units that you use for * weighting instances.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateAutoScalingGroupOutcomeCallable CreateAutoScalingGroupCallable(const Model::CreateAutoScalingGroupRequest& request) const; /** *

Creates an Auto Scaling group with the specified name and attributes.

*

If you exceed your maximum limit of Auto Scaling groups, the call fails. To * query this limit, call the DescribeAccountLimits API. For information * about updating this limit, see Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

For introductory exercises for creating an Auto Scaling group, * see Getting * Started with Amazon EC2 Auto Scaling and Tutorial: * Set Up a Scaled and Load-Balanced Application in the Amazon EC2 Auto * Scaling User Guide. For more information, see Auto * Scaling Groups in the Amazon EC2 Auto Scaling User Guide.

*

Every Auto Scaling group has three size parameters * (DesiredCapacity, MaxSize, and MinSize). * Usually, you set these sizes based on a specific number of instances. However, * if you configure a mixed instances policy that defines weights for the instance * types, you must specify these sizes with the same units that you use for * weighting instances.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateAutoScalingGroupAsync(const Model::CreateAutoScalingGroupRequest& request, const CreateAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a launch configuration.

If you exceed your maximum limit of * launch configurations, the call fails. To query this limit, call the * DescribeAccountLimits API. For information about updating this limit, see * Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

For more information, see Launch * Configurations in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateLaunchConfigurationOutcome CreateLaunchConfiguration(const Model::CreateLaunchConfigurationRequest& request) const; /** *

Creates a launch configuration.

If you exceed your maximum limit of * launch configurations, the call fails. To query this limit, call the * DescribeAccountLimits API. For information about updating this limit, see * Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

For more information, see Launch * Configurations in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateLaunchConfigurationOutcomeCallable CreateLaunchConfigurationCallable(const Model::CreateLaunchConfigurationRequest& request) const; /** *

Creates a launch configuration.

If you exceed your maximum limit of * launch configurations, the call fails. To query this limit, call the * DescribeAccountLimits API. For information about updating this limit, see * Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

For more information, see Launch * Configurations in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateLaunchConfigurationAsync(const Model::CreateLaunchConfigurationRequest& request, const CreateLaunchConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates tags for the specified Auto Scaling group.

When you * specify a tag with a key that already exists, the operation overwrites the * previous tag definition, and you do not get an error message.

For more * information, see Tagging * Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::CreateOrUpdateTagsOutcome CreateOrUpdateTags(const Model::CreateOrUpdateTagsRequest& request) const; /** *

Creates or updates tags for the specified Auto Scaling group.

When you * specify a tag with a key that already exists, the operation overwrites the * previous tag definition, and you do not get an error message.

For more * information, see Tagging * Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateOrUpdateTagsOutcomeCallable CreateOrUpdateTagsCallable(const Model::CreateOrUpdateTagsRequest& request) const; /** *

Creates or updates tags for the specified Auto Scaling group.

When you * specify a tag with a key that already exists, the operation overwrites the * previous tag definition, and you do not get an error message.

For more * information, see Tagging * Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateOrUpdateTagsAsync(const Model::CreateOrUpdateTagsRequest& request, const CreateOrUpdateTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified Auto Scaling group.

If the group has instances * or scaling activities in progress, you must specify the option to force the * deletion in order for it to succeed.

If the group has policies, deleting * the group deletes the policies, the underlying alarm actions, and any alarm that * no longer has an associated action.

To remove instances from the Auto * Scaling group before deleting it, call the DetachInstances API with the * list of instances and the option to decrement the desired capacity. This ensures * that Amazon EC2 Auto Scaling does not launch replacement instances.

To * terminate all instances before deleting the Auto Scaling group, call the * UpdateAutoScalingGroup API and set the minimum size and desired capacity * of the Auto Scaling group to zero.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAutoScalingGroupOutcome DeleteAutoScalingGroup(const Model::DeleteAutoScalingGroupRequest& request) const; /** *

Deletes the specified Auto Scaling group.

If the group has instances * or scaling activities in progress, you must specify the option to force the * deletion in order for it to succeed.

If the group has policies, deleting * the group deletes the policies, the underlying alarm actions, and any alarm that * no longer has an associated action.

To remove instances from the Auto * Scaling group before deleting it, call the DetachInstances API with the * list of instances and the option to decrement the desired capacity. This ensures * that Amazon EC2 Auto Scaling does not launch replacement instances.

To * terminate all instances before deleting the Auto Scaling group, call the * UpdateAutoScalingGroup API and set the minimum size and desired capacity * of the Auto Scaling group to zero.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteAutoScalingGroupOutcomeCallable DeleteAutoScalingGroupCallable(const Model::DeleteAutoScalingGroupRequest& request) const; /** *

Deletes the specified Auto Scaling group.

If the group has instances * or scaling activities in progress, you must specify the option to force the * deletion in order for it to succeed.

If the group has policies, deleting * the group deletes the policies, the underlying alarm actions, and any alarm that * no longer has an associated action.

To remove instances from the Auto * Scaling group before deleting it, call the DetachInstances API with the * list of instances and the option to decrement the desired capacity. This ensures * that Amazon EC2 Auto Scaling does not launch replacement instances.

To * terminate all instances before deleting the Auto Scaling group, call the * UpdateAutoScalingGroup API and set the minimum size and desired capacity * of the Auto Scaling group to zero.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteAutoScalingGroupAsync(const Model::DeleteAutoScalingGroupRequest& request, const DeleteAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified launch configuration.

The launch configuration * must not be attached to an Auto Scaling group. When this call completes, the * launch configuration is no longer available for use.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteLaunchConfigurationOutcome DeleteLaunchConfiguration(const Model::DeleteLaunchConfigurationRequest& request) const; /** *

Deletes the specified launch configuration.

The launch configuration * must not be attached to an Auto Scaling group. When this call completes, the * launch configuration is no longer available for use.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteLaunchConfigurationOutcomeCallable DeleteLaunchConfigurationCallable(const Model::DeleteLaunchConfigurationRequest& request) const; /** *

Deletes the specified launch configuration.

The launch configuration * must not be attached to an Auto Scaling group. When this call completes, the * launch configuration is no longer available for use.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteLaunchConfigurationAsync(const Model::DeleteLaunchConfigurationRequest& request, const DeleteLaunchConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified lifecycle hook.

If there are any outstanding * lifecycle actions, they are completed first (ABANDON for launching * instances, CONTINUE for terminating instances).

See * Also:

AWS * API Reference

*/ virtual Model::DeleteLifecycleHookOutcome DeleteLifecycleHook(const Model::DeleteLifecycleHookRequest& request) const; /** *

Deletes the specified lifecycle hook.

If there are any outstanding * lifecycle actions, they are completed first (ABANDON for launching * instances, CONTINUE for terminating instances).

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteLifecycleHookOutcomeCallable DeleteLifecycleHookCallable(const Model::DeleteLifecycleHookRequest& request) const; /** *

Deletes the specified lifecycle hook.

If there are any outstanding * lifecycle actions, they are completed first (ABANDON for launching * instances, CONTINUE for terminating instances).

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteLifecycleHookAsync(const Model::DeleteLifecycleHookRequest& request, const DeleteLifecycleHookResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified notification.

See Also:

AWS * API Reference

*/ virtual Model::DeleteNotificationConfigurationOutcome DeleteNotificationConfiguration(const Model::DeleteNotificationConfigurationRequest& request) const; /** *

Deletes the specified notification.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteNotificationConfigurationOutcomeCallable DeleteNotificationConfigurationCallable(const Model::DeleteNotificationConfigurationRequest& request) const; /** *

Deletes the specified notification.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteNotificationConfigurationAsync(const Model::DeleteNotificationConfigurationRequest& request, const DeleteNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified scaling policy.

Deleting either a step scaling * policy or a simple scaling policy deletes the underlying alarm action, but does * not delete the alarm, even if it no longer has an associated action.

For * more information, see Deleting * a Scaling Policy in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DeletePolicyOutcome DeletePolicy(const Model::DeletePolicyRequest& request) const; /** *

Deletes the specified scaling policy.

Deleting either a step scaling * policy or a simple scaling policy deletes the underlying alarm action, but does * not delete the alarm, even if it no longer has an associated action.

For * more information, see Deleting * a Scaling Policy in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeletePolicyOutcomeCallable DeletePolicyCallable(const Model::DeletePolicyRequest& request) const; /** *

Deletes the specified scaling policy.

Deleting either a step scaling * policy or a simple scaling policy deletes the underlying alarm action, but does * not delete the alarm, even if it no longer has an associated action.

For * more information, see Deleting * a Scaling Policy in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified scheduled action.

See Also:

AWS * API Reference

*/ virtual Model::DeleteScheduledActionOutcome DeleteScheduledAction(const Model::DeleteScheduledActionRequest& request) const; /** *

Deletes the specified scheduled action.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteScheduledActionOutcomeCallable DeleteScheduledActionCallable(const Model::DeleteScheduledActionRequest& request) const; /** *

Deletes the specified scheduled action.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteScheduledActionAsync(const Model::DeleteScheduledActionRequest& request, const DeleteScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified tags.

See Also:

AWS * API Reference

*/ virtual Model::DeleteTagsOutcome DeleteTags(const Model::DeleteTagsRequest& request) const; /** *

Deletes the specified tags.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteTagsOutcomeCallable DeleteTagsCallable(const Model::DeleteTagsRequest& request) const; /** *

Deletes the specified tags.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteTagsAsync(const Model::DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the current Amazon EC2 Auto Scaling resource quotas for your AWS * account.

For information about requesting an increase, see Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAccountLimitsOutcome DescribeAccountLimits(const Model::DescribeAccountLimitsRequest& request) const; /** *

Describes the current Amazon EC2 Auto Scaling resource quotas for your AWS * account.

For information about requesting an increase, see Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeAccountLimitsOutcomeCallable DescribeAccountLimitsCallable(const Model::DescribeAccountLimitsRequest& request) const; /** *

Describes the current Amazon EC2 Auto Scaling resource quotas for your AWS * account.

For information about requesting an increase, see Amazon * EC2 Auto Scaling Service Quotas in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeAccountLimitsAsync(const Model::DescribeAccountLimitsRequest& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the available adjustment types for Amazon EC2 Auto Scaling scaling * policies. These settings apply to step scaling policies and simple scaling * policies; they do not apply to target tracking scaling policies.

The * following adjustment types are supported:

  • ChangeInCapacity

    *
  • ExactCapacity

  • PercentChangeInCapacity

  • *

See Also:

AWS * API Reference

*/ virtual Model::DescribeAdjustmentTypesOutcome DescribeAdjustmentTypes(const Model::DescribeAdjustmentTypesRequest& request) const; /** *

Describes the available adjustment types for Amazon EC2 Auto Scaling scaling * policies. These settings apply to step scaling policies and simple scaling * policies; they do not apply to target tracking scaling policies.

The * following adjustment types are supported:

  • ChangeInCapacity

    *
  • ExactCapacity

  • PercentChangeInCapacity

  • *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeAdjustmentTypesOutcomeCallable DescribeAdjustmentTypesCallable(const Model::DescribeAdjustmentTypesRequest& request) const; /** *

Describes the available adjustment types for Amazon EC2 Auto Scaling scaling * policies. These settings apply to step scaling policies and simple scaling * policies; they do not apply to target tracking scaling policies.

The * following adjustment types are supported:

  • ChangeInCapacity

    *
  • ExactCapacity

  • PercentChangeInCapacity

  • *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeAdjustmentTypesAsync(const Model::DescribeAdjustmentTypesRequest& request, const DescribeAdjustmentTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes one or more Auto Scaling groups.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAutoScalingGroupsOutcome DescribeAutoScalingGroups(const Model::DescribeAutoScalingGroupsRequest& request) const; /** *

Describes one or more Auto Scaling groups.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeAutoScalingGroupsOutcomeCallable DescribeAutoScalingGroupsCallable(const Model::DescribeAutoScalingGroupsRequest& request) const; /** *

Describes one or more Auto Scaling groups.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeAutoScalingGroupsAsync(const Model::DescribeAutoScalingGroupsRequest& request, const DescribeAutoScalingGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes one or more Auto Scaling instances.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAutoScalingInstancesOutcome DescribeAutoScalingInstances(const Model::DescribeAutoScalingInstancesRequest& request) const; /** *

Describes one or more Auto Scaling instances.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeAutoScalingInstancesOutcomeCallable DescribeAutoScalingInstancesCallable(const Model::DescribeAutoScalingInstancesRequest& request) const; /** *

Describes one or more Auto Scaling instances.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeAutoScalingInstancesAsync(const Model::DescribeAutoScalingInstancesRequest& request, const DescribeAutoScalingInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the notification types that are supported by Amazon EC2 Auto * Scaling.

See Also:

AWS * API Reference

*/ virtual Model::DescribeAutoScalingNotificationTypesOutcome DescribeAutoScalingNotificationTypes(const Model::DescribeAutoScalingNotificationTypesRequest& request) const; /** *

Describes the notification types that are supported by Amazon EC2 Auto * Scaling.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeAutoScalingNotificationTypesOutcomeCallable DescribeAutoScalingNotificationTypesCallable(const Model::DescribeAutoScalingNotificationTypesRequest& request) const; /** *

Describes the notification types that are supported by Amazon EC2 Auto * Scaling.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeAutoScalingNotificationTypesAsync(const Model::DescribeAutoScalingNotificationTypesRequest& request, const DescribeAutoScalingNotificationTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes one or more instance refreshes.

You can determine the status * of a request by looking at the Status parameter. The following are * the possible statuses:

  • Pending - The request was * created, but the operation has not started.

  • * InProgress - The operation is in progress.

  • * Successful - The operation completed successfully.

  • *

    Failed - The operation failed to complete. You can troubleshoot * using the status reason and the scaling activities.

  • * Cancelling - An ongoing operation is being cancelled. Cancellation * does not roll back any replacements that have already been completed, but it * prevents new replacements from being started.

  • * Cancelled - The operation is cancelled.

For * more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeInstanceRefreshesOutcome DescribeInstanceRefreshes(const Model::DescribeInstanceRefreshesRequest& request) const; /** *

Describes one or more instance refreshes.

You can determine the status * of a request by looking at the Status parameter. The following are * the possible statuses:

  • Pending - The request was * created, but the operation has not started.

  • * InProgress - The operation is in progress.

  • * Successful - The operation completed successfully.

  • *

    Failed - The operation failed to complete. You can troubleshoot * using the status reason and the scaling activities.

  • * Cancelling - An ongoing operation is being cancelled. Cancellation * does not roll back any replacements that have already been completed, but it * prevents new replacements from being started.

  • * Cancelled - The operation is cancelled.

For * more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeInstanceRefreshesOutcomeCallable DescribeInstanceRefreshesCallable(const Model::DescribeInstanceRefreshesRequest& request) const; /** *

Describes one or more instance refreshes.

You can determine the status * of a request by looking at the Status parameter. The following are * the possible statuses:

  • Pending - The request was * created, but the operation has not started.

  • * InProgress - The operation is in progress.

  • * Successful - The operation completed successfully.

  • *

    Failed - The operation failed to complete. You can troubleshoot * using the status reason and the scaling activities.

  • * Cancelling - An ongoing operation is being cancelled. Cancellation * does not roll back any replacements that have already been completed, but it * prevents new replacements from being started.

  • * Cancelled - The operation is cancelled.

For * more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeInstanceRefreshesAsync(const Model::DescribeInstanceRefreshesRequest& request, const DescribeInstanceRefreshesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes one or more launch configurations.

See Also:

AWS * API Reference

*/ virtual Model::DescribeLaunchConfigurationsOutcome DescribeLaunchConfigurations(const Model::DescribeLaunchConfigurationsRequest& request) const; /** *

Describes one or more launch configurations.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLaunchConfigurationsOutcomeCallable DescribeLaunchConfigurationsCallable(const Model::DescribeLaunchConfigurationsRequest& request) const; /** *

Describes one or more launch configurations.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLaunchConfigurationsAsync(const Model::DescribeLaunchConfigurationsRequest& request, const DescribeLaunchConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the available types of lifecycle hooks.

The following hook * types are supported:

  • autoscaling:EC2_INSTANCE_LAUNCHING

    *
  • autoscaling:EC2_INSTANCE_TERMINATING

See * Also:

AWS * API Reference

*/ virtual Model::DescribeLifecycleHookTypesOutcome DescribeLifecycleHookTypes(const Model::DescribeLifecycleHookTypesRequest& request) const; /** *

Describes the available types of lifecycle hooks.

The following hook * types are supported:

  • autoscaling:EC2_INSTANCE_LAUNCHING

    *
  • autoscaling:EC2_INSTANCE_TERMINATING

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLifecycleHookTypesOutcomeCallable DescribeLifecycleHookTypesCallable(const Model::DescribeLifecycleHookTypesRequest& request) const; /** *

Describes the available types of lifecycle hooks.

The following hook * types are supported:

  • autoscaling:EC2_INSTANCE_LAUNCHING

    *
  • autoscaling:EC2_INSTANCE_TERMINATING

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLifecycleHookTypesAsync(const Model::DescribeLifecycleHookTypesRequest& request, const DescribeLifecycleHookTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the lifecycle hooks for the specified Auto Scaling * group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeLifecycleHooksOutcome DescribeLifecycleHooks(const Model::DescribeLifecycleHooksRequest& request) const; /** *

Describes the lifecycle hooks for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLifecycleHooksOutcomeCallable DescribeLifecycleHooksCallable(const Model::DescribeLifecycleHooksRequest& request) const; /** *

Describes the lifecycle hooks for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLifecycleHooksAsync(const Model::DescribeLifecycleHooksRequest& request, const DescribeLifecycleHooksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the target groups for the specified Auto Scaling * group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeLoadBalancerTargetGroupsOutcome DescribeLoadBalancerTargetGroups(const Model::DescribeLoadBalancerTargetGroupsRequest& request) const; /** *

Describes the target groups for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLoadBalancerTargetGroupsOutcomeCallable DescribeLoadBalancerTargetGroupsCallable(const Model::DescribeLoadBalancerTargetGroupsRequest& request) const; /** *

Describes the target groups for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLoadBalancerTargetGroupsAsync(const Model::DescribeLoadBalancerTargetGroupsRequest& request, const DescribeLoadBalancerTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the load balancers for the specified Auto Scaling group.

*

This operation describes only Classic Load Balancers. If you have Application * Load Balancers or Network Load Balancers, use the * DescribeLoadBalancerTargetGroups API instead.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeLoadBalancersOutcome DescribeLoadBalancers(const Model::DescribeLoadBalancersRequest& request) const; /** *

Describes the load balancers for the specified Auto Scaling group.

*

This operation describes only Classic Load Balancers. If you have Application * Load Balancers or Network Load Balancers, use the * DescribeLoadBalancerTargetGroups API instead.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeLoadBalancersOutcomeCallable DescribeLoadBalancersCallable(const Model::DescribeLoadBalancersRequest& request) const; /** *

Describes the load balancers for the specified Auto Scaling group.

*

This operation describes only Classic Load Balancers. If you have Application * Load Balancers or Network Load Balancers, use the * DescribeLoadBalancerTargetGroups API instead.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeLoadBalancersAsync(const Model::DescribeLoadBalancersRequest& request, const DescribeLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.

*

The GroupStandbyInstances metric is not returned by default. You * must explicitly request this metric when calling the * EnableMetricsCollection API.

See Also:

AWS * API Reference

*/ virtual Model::DescribeMetricCollectionTypesOutcome DescribeMetricCollectionTypes(const Model::DescribeMetricCollectionTypesRequest& request) const; /** *

Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.

*

The GroupStandbyInstances metric is not returned by default. You * must explicitly request this metric when calling the * EnableMetricsCollection API.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeMetricCollectionTypesOutcomeCallable DescribeMetricCollectionTypesCallable(const Model::DescribeMetricCollectionTypesRequest& request) const; /** *

Describes the available CloudWatch metrics for Amazon EC2 Auto Scaling.

*

The GroupStandbyInstances metric is not returned by default. You * must explicitly request this metric when calling the * EnableMetricsCollection API.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeMetricCollectionTypesAsync(const Model::DescribeMetricCollectionTypesRequest& request, const DescribeMetricCollectionTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the notification actions associated with the specified Auto Scaling * group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeNotificationConfigurationsOutcome DescribeNotificationConfigurations(const Model::DescribeNotificationConfigurationsRequest& request) const; /** *

Describes the notification actions associated with the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeNotificationConfigurationsOutcomeCallable DescribeNotificationConfigurationsCallable(const Model::DescribeNotificationConfigurationsRequest& request) const; /** *

Describes the notification actions associated with the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeNotificationConfigurationsAsync(const Model::DescribeNotificationConfigurationsRequest& request, const DescribeNotificationConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the policies for the specified Auto Scaling group.

See * Also:

AWS * API Reference

*/ virtual Model::DescribePoliciesOutcome DescribePolicies(const Model::DescribePoliciesRequest& request) const; /** *

Describes the policies for the specified Auto Scaling group.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribePoliciesOutcomeCallable DescribePoliciesCallable(const Model::DescribePoliciesRequest& request) const; /** *

Describes the policies for the specified Auto Scaling group.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribePoliciesAsync(const Model::DescribePoliciesRequest& request, const DescribePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes one or more scaling activities for the specified Auto Scaling * group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeScalingActivitiesOutcome DescribeScalingActivities(const Model::DescribeScalingActivitiesRequest& request) const; /** *

Describes one or more scaling activities for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeScalingActivitiesOutcomeCallable DescribeScalingActivitiesCallable(const Model::DescribeScalingActivitiesRequest& request) const; /** *

Describes one or more scaling activities for the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeScalingActivitiesAsync(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the scaling process types for use with the ResumeProcesses * and SuspendProcesses APIs.

See Also:

AWS * API Reference

*/ virtual Model::DescribeScalingProcessTypesOutcome DescribeScalingProcessTypes(const Model::DescribeScalingProcessTypesRequest& request) const; /** *

Describes the scaling process types for use with the ResumeProcesses * and SuspendProcesses APIs.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeScalingProcessTypesOutcomeCallable DescribeScalingProcessTypesCallable(const Model::DescribeScalingProcessTypesRequest& request) const; /** *

Describes the scaling process types for use with the ResumeProcesses * and SuspendProcesses APIs.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeScalingProcessTypesAsync(const Model::DescribeScalingProcessTypesRequest& request, const DescribeScalingProcessTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the actions scheduled for your Auto Scaling group that haven't run * or that have not reached their end time. To describe the actions that have * already run, call the DescribeScalingActivities API.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeScheduledActionsOutcome DescribeScheduledActions(const Model::DescribeScheduledActionsRequest& request) const; /** *

Describes the actions scheduled for your Auto Scaling group that haven't run * or that have not reached their end time. To describe the actions that have * already run, call the DescribeScalingActivities API.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeScheduledActionsOutcomeCallable DescribeScheduledActionsCallable(const Model::DescribeScheduledActionsRequest& request) const; /** *

Describes the actions scheduled for your Auto Scaling group that haven't run * or that have not reached their end time. To describe the actions that have * already run, call the DescribeScalingActivities API.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeScheduledActionsAsync(const Model::DescribeScheduledActionsRequest& request, const DescribeScheduledActionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the specified tags.

You can use filters to limit the * results. For example, you can query for the tags for a specific Auto Scaling * group. You can specify multiple values for a filter. A tag must match at least * one of the specified values for it to be included in the results.

You can * also specify multiple filters. The result includes information for a particular * tag only if it matches all the filters. If there's no match, no special message * is returned.

For more information, see Tagging * Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeTagsOutcome DescribeTags(const Model::DescribeTagsRequest& request) const; /** *

Describes the specified tags.

You can use filters to limit the * results. For example, you can query for the tags for a specific Auto Scaling * group. You can specify multiple values for a filter. A tag must match at least * one of the specified values for it to be included in the results.

You can * also specify multiple filters. The result includes information for a particular * tag only if it matches all the filters. If there's no match, no special message * is returned.

For more information, see Tagging * Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeTagsOutcomeCallable DescribeTagsCallable(const Model::DescribeTagsRequest& request) const; /** *

Describes the specified tags.

You can use filters to limit the * results. For example, you can query for the tags for a specific Auto Scaling * group. You can specify multiple values for a filter. A tag must match at least * one of the specified values for it to be included in the results.

You can * also specify multiple filters. The result includes information for a particular * tag only if it matches all the filters. If there's no match, no special message * is returned.

For more information, see Tagging * Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeTagsAsync(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the termination policies supported by Amazon EC2 Auto Scaling.

*

For more information, see Controlling * Which Auto Scaling Instances Terminate During Scale In in the Amazon EC2 * Auto Scaling User Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeTerminationPolicyTypesOutcome DescribeTerminationPolicyTypes(const Model::DescribeTerminationPolicyTypesRequest& request) const; /** *

Describes the termination policies supported by Amazon EC2 Auto Scaling.

*

For more information, see Controlling * Which Auto Scaling Instances Terminate During Scale In in the Amazon EC2 * Auto Scaling User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeTerminationPolicyTypesOutcomeCallable DescribeTerminationPolicyTypesCallable(const Model::DescribeTerminationPolicyTypesRequest& request) const; /** *

Describes the termination policies supported by Amazon EC2 Auto Scaling.

*

For more information, see Controlling * Which Auto Scaling Instances Terminate During Scale In in the Amazon EC2 * Auto Scaling User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeTerminationPolicyTypesAsync(const Model::DescribeTerminationPolicyTypesRequest& request, const DescribeTerminationPolicyTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes one or more instances from the specified Auto Scaling group.

*

After the instances are detached, you can manage them independent of the Auto * Scaling group.

If you do not specify the option to decrement the desired * capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that * are detached.

If there is a Classic Load Balancer attached to the Auto * Scaling group, the instances are deregistered from the load balancer. If there * are target groups attached to the Auto Scaling group, the instances are * deregistered from the target groups.

For more information, see Detach * EC2 Instances from Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

*/ virtual Model::DetachInstancesOutcome DetachInstances(const Model::DetachInstancesRequest& request) const; /** *

Removes one or more instances from the specified Auto Scaling group.

*

After the instances are detached, you can manage them independent of the Auto * Scaling group.

If you do not specify the option to decrement the desired * capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that * are detached.

If there is a Classic Load Balancer attached to the Auto * Scaling group, the instances are deregistered from the load balancer. If there * are target groups attached to the Auto Scaling group, the instances are * deregistered from the target groups.

For more information, see Detach * EC2 Instances from Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DetachInstancesOutcomeCallable DetachInstancesCallable(const Model::DetachInstancesRequest& request) const; /** *

Removes one or more instances from the specified Auto Scaling group.

*

After the instances are detached, you can manage them independent of the Auto * Scaling group.

If you do not specify the option to decrement the desired * capacity, Amazon EC2 Auto Scaling launches instances to replace the ones that * are detached.

If there is a Classic Load Balancer attached to the Auto * Scaling group, the instances are deregistered from the load balancer. If there * are target groups attached to the Auto Scaling group, the instances are * deregistered from the target groups.

For more information, see Detach * EC2 Instances from Your Auto Scaling Group in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DetachInstancesAsync(const Model::DetachInstancesRequest& request, const DetachInstancesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Detaches one or more target groups from the specified Auto Scaling * group.

See Also:

AWS * API Reference

*/ virtual Model::DetachLoadBalancerTargetGroupsOutcome DetachLoadBalancerTargetGroups(const Model::DetachLoadBalancerTargetGroupsRequest& request) const; /** *

Detaches one or more target groups from the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DetachLoadBalancerTargetGroupsOutcomeCallable DetachLoadBalancerTargetGroupsCallable(const Model::DetachLoadBalancerTargetGroupsRequest& request) const; /** *

Detaches one or more target groups from the specified Auto Scaling * group.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DetachLoadBalancerTargetGroupsAsync(const Model::DetachLoadBalancerTargetGroupsRequest& request, const DetachLoadBalancerTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Detaches one or more Classic Load Balancers from the specified Auto Scaling * group.

This operation detaches only Classic Load Balancers. If you have * Application Load Balancers or Network Load Balancers, use the * DetachLoadBalancerTargetGroups API instead.

When you detach a load * balancer, it enters the Removing state while deregistering the * instances in the group. When all instances are deregistered, then you can no * longer describe the load balancer using the DescribeLoadBalancers API * call. The instances remain running.

See Also:

AWS * API Reference

*/ virtual Model::DetachLoadBalancersOutcome DetachLoadBalancers(const Model::DetachLoadBalancersRequest& request) const; /** *

Detaches one or more Classic Load Balancers from the specified Auto Scaling * group.

This operation detaches only Classic Load Balancers. If you have * Application Load Balancers or Network Load Balancers, use the * DetachLoadBalancerTargetGroups API instead.

When you detach a load * balancer, it enters the Removing state while deregistering the * instances in the group. When all instances are deregistered, then you can no * longer describe the load balancer using the DescribeLoadBalancers API * call. The instances remain running.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DetachLoadBalancersOutcomeCallable DetachLoadBalancersCallable(const Model::DetachLoadBalancersRequest& request) const; /** *

Detaches one or more Classic Load Balancers from the specified Auto Scaling * group.

This operation detaches only Classic Load Balancers. If you have * Application Load Balancers or Network Load Balancers, use the * DetachLoadBalancerTargetGroups API instead.

When you detach a load * balancer, it enters the Removing state while deregistering the * instances in the group. When all instances are deregistered, then you can no * longer describe the load balancer using the DescribeLoadBalancers API * call. The instances remain running.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DetachLoadBalancersAsync(const Model::DetachLoadBalancersRequest& request, const DetachLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Disables group metrics for the specified Auto Scaling group.

See * Also:

AWS * API Reference

*/ virtual Model::DisableMetricsCollectionOutcome DisableMetricsCollection(const Model::DisableMetricsCollectionRequest& request) const; /** *

Disables group metrics for the specified Auto Scaling group.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DisableMetricsCollectionOutcomeCallable DisableMetricsCollectionCallable(const Model::DisableMetricsCollectionRequest& request) const; /** *

Disables group metrics for the specified Auto Scaling group.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DisableMetricsCollectionAsync(const Model::DisableMetricsCollectionRequest& request, const DisableMetricsCollectionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Enables group metrics for the specified Auto Scaling group. For more * information, see Monitoring * Your Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

*/ virtual Model::EnableMetricsCollectionOutcome EnableMetricsCollection(const Model::EnableMetricsCollectionRequest& request) const; /** *

Enables group metrics for the specified Auto Scaling group. For more * information, see Monitoring * Your Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::EnableMetricsCollectionOutcomeCallable EnableMetricsCollectionCallable(const Model::EnableMetricsCollectionRequest& request) const; /** *

Enables group metrics for the specified Auto Scaling group. For more * information, see Monitoring * Your Auto Scaling Groups and Instances in the Amazon EC2 Auto Scaling * User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void EnableMetricsCollectionAsync(const Model::EnableMetricsCollectionRequest& request, const EnableMetricsCollectionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Moves the specified instances into the standby state.

If you choose to * decrement the desired capacity of the Auto Scaling group, the instances can * enter standby as long as the desired capacity of the Auto Scaling group after * the instances are placed into standby is equal to or greater than the minimum * capacity of the group.

If you choose not to decrement the desired * capacity of the Auto Scaling group, the Auto Scaling group launches new * instances to replace the instances on standby.

For more information, see * Temporarily * Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto * Scaling User Guide.

See Also:

AWS * API Reference

*/ virtual Model::EnterStandbyOutcome EnterStandby(const Model::EnterStandbyRequest& request) const; /** *

Moves the specified instances into the standby state.

If you choose to * decrement the desired capacity of the Auto Scaling group, the instances can * enter standby as long as the desired capacity of the Auto Scaling group after * the instances are placed into standby is equal to or greater than the minimum * capacity of the group.

If you choose not to decrement the desired * capacity of the Auto Scaling group, the Auto Scaling group launches new * instances to replace the instances on standby.

For more information, see * Temporarily * Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto * Scaling User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::EnterStandbyOutcomeCallable EnterStandbyCallable(const Model::EnterStandbyRequest& request) const; /** *

Moves the specified instances into the standby state.

If you choose to * decrement the desired capacity of the Auto Scaling group, the instances can * enter standby as long as the desired capacity of the Auto Scaling group after * the instances are placed into standby is equal to or greater than the minimum * capacity of the group.

If you choose not to decrement the desired * capacity of the Auto Scaling group, the Auto Scaling group launches new * instances to replace the instances on standby.

For more information, see * Temporarily * Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto * Scaling User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void EnterStandbyAsync(const Model::EnterStandbyRequest& request, const EnterStandbyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Executes the specified policy. This can be useful for testing the design of * your scaling policy.

See Also:

AWS * API Reference

*/ virtual Model::ExecutePolicyOutcome ExecutePolicy(const Model::ExecutePolicyRequest& request) const; /** *

Executes the specified policy. This can be useful for testing the design of * your scaling policy.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ExecutePolicyOutcomeCallable ExecutePolicyCallable(const Model::ExecutePolicyRequest& request) const; /** *

Executes the specified policy. This can be useful for testing the design of * your scaling policy.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ExecutePolicyAsync(const Model::ExecutePolicyRequest& request, const ExecutePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Moves the specified instances out of the standby state.

After you put * the instances back in service, the desired capacity is incremented.

For * more information, see Temporarily * Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto * Scaling User Guide.

See Also:

AWS * API Reference

*/ virtual Model::ExitStandbyOutcome ExitStandby(const Model::ExitStandbyRequest& request) const; /** *

Moves the specified instances out of the standby state.

After you put * the instances back in service, the desired capacity is incremented.

For * more information, see Temporarily * Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto * Scaling User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ExitStandbyOutcomeCallable ExitStandbyCallable(const Model::ExitStandbyRequest& request) const; /** *

Moves the specified instances out of the standby state.

After you put * the instances back in service, the desired capacity is incremented.

For * more information, see Temporarily * Removing Instances from Your Auto Scaling Group in the Amazon EC2 Auto * Scaling User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ExitStandbyAsync(const Model::ExitStandbyRequest& request, const ExitStandbyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates a lifecycle hook for the specified Auto Scaling group.

*

A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an * instance when the instance launches (before it is put into service) or as the * instance terminates (before it is fully terminated).

This step is a part * of the procedure for adding a lifecycle hook to an Auto Scaling group:

    *
  1. (Optional) Create a Lambda function and a rule that allows CloudWatch * Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or * terminates instances.

  2. (Optional) Create a notification target * and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS * topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle * notifications to the target.

  3. Create the lifecycle hook. * Specify whether the hook is used when the instances launch or terminate. *

  4. If you need more time, record the lifecycle action heartbeat * to keep the instance in a pending state using the * RecordLifecycleActionHeartbeat API call.

  5. If you finish * before the timeout period ends, complete the lifecycle action using the * CompleteLifecycleAction API call.

For more * information, see Amazon * EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User * Guide.

If you exceed your maximum limit of lifecycle hooks, which by * default is 50 per Auto Scaling group, the call fails.

You can view the * lifecycle hooks for an Auto Scaling group using the * DescribeLifecycleHooks API call. If you are no longer using a lifecycle * hook, you can delete it by calling the DeleteLifecycleHook * API.

See Also:

AWS * API Reference

*/ virtual Model::PutLifecycleHookOutcome PutLifecycleHook(const Model::PutLifecycleHookRequest& request) const; /** *

Creates or updates a lifecycle hook for the specified Auto Scaling group.

*

A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an * instance when the instance launches (before it is put into service) or as the * instance terminates (before it is fully terminated).

This step is a part * of the procedure for adding a lifecycle hook to an Auto Scaling group:

    *
  1. (Optional) Create a Lambda function and a rule that allows CloudWatch * Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or * terminates instances.

  2. (Optional) Create a notification target * and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS * topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle * notifications to the target.

  3. Create the lifecycle hook. * Specify whether the hook is used when the instances launch or terminate. *

  4. If you need more time, record the lifecycle action heartbeat * to keep the instance in a pending state using the * RecordLifecycleActionHeartbeat API call.

  5. If you finish * before the timeout period ends, complete the lifecycle action using the * CompleteLifecycleAction API call.

For more * information, see Amazon * EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User * Guide.

If you exceed your maximum limit of lifecycle hooks, which by * default is 50 per Auto Scaling group, the call fails.

You can view the * lifecycle hooks for an Auto Scaling group using the * DescribeLifecycleHooks API call. If you are no longer using a lifecycle * hook, you can delete it by calling the DeleteLifecycleHook * API.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutLifecycleHookOutcomeCallable PutLifecycleHookCallable(const Model::PutLifecycleHookRequest& request) const; /** *

Creates or updates a lifecycle hook for the specified Auto Scaling group.

*

A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on an * instance when the instance launches (before it is put into service) or as the * instance terminates (before it is fully terminated).

This step is a part * of the procedure for adding a lifecycle hook to an Auto Scaling group:

    *
  1. (Optional) Create a Lambda function and a rule that allows CloudWatch * Events to invoke your Lambda function when Amazon EC2 Auto Scaling launches or * terminates instances.

  2. (Optional) Create a notification target * and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS * topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle * notifications to the target.

  3. Create the lifecycle hook. * Specify whether the hook is used when the instances launch or terminate. *

  4. If you need more time, record the lifecycle action heartbeat * to keep the instance in a pending state using the * RecordLifecycleActionHeartbeat API call.

  5. If you finish * before the timeout period ends, complete the lifecycle action using the * CompleteLifecycleAction API call.

For more * information, see Amazon * EC2 Auto Scaling Lifecycle Hooks in the Amazon EC2 Auto Scaling User * Guide.

If you exceed your maximum limit of lifecycle hooks, which by * default is 50 per Auto Scaling group, the call fails.

You can view the * lifecycle hooks for an Auto Scaling group using the * DescribeLifecycleHooks API call. If you are no longer using a lifecycle * hook, you can delete it by calling the DeleteLifecycleHook * API.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutLifecycleHookAsync(const Model::PutLifecycleHookRequest& request, const PutLifecycleHookResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Configures an Auto Scaling group to send notifications when specified events * take place. Subscribers to the specified topic can have messages delivered to an * endpoint such as a web server or an email address.

This configuration * overwrites any existing configuration.

For more information, see Getting * Amazon SNS Notifications When Your Auto Scaling Group Scales in the * Amazon EC2 Auto Scaling User Guide.

See Also:

AWS * API Reference

*/ virtual Model::PutNotificationConfigurationOutcome PutNotificationConfiguration(const Model::PutNotificationConfigurationRequest& request) const; /** *

Configures an Auto Scaling group to send notifications when specified events * take place. Subscribers to the specified topic can have messages delivered to an * endpoint such as a web server or an email address.

This configuration * overwrites any existing configuration.

For more information, see Getting * Amazon SNS Notifications When Your Auto Scaling Group Scales in the * Amazon EC2 Auto Scaling User Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutNotificationConfigurationOutcomeCallable PutNotificationConfigurationCallable(const Model::PutNotificationConfigurationRequest& request) const; /** *

Configures an Auto Scaling group to send notifications when specified events * take place. Subscribers to the specified topic can have messages delivered to an * endpoint such as a web server or an email address.

This configuration * overwrites any existing configuration.

For more information, see Getting * Amazon SNS Notifications When Your Auto Scaling Group Scales in the * Amazon EC2 Auto Scaling User Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutNotificationConfigurationAsync(const Model::PutNotificationConfigurationRequest& request, const PutNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates a scaling policy for an Auto Scaling group.

For * more information about using scaling policies to scale your Auto Scaling group, * see Target * Tracking Scaling Policies and Step * and Simple Scaling Policies in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::PutScalingPolicyOutcome PutScalingPolicy(const Model::PutScalingPolicyRequest& request) const; /** *

Creates or updates a scaling policy for an Auto Scaling group.

For * more information about using scaling policies to scale your Auto Scaling group, * see Target * Tracking Scaling Policies and Step * and Simple Scaling Policies in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutScalingPolicyOutcomeCallable PutScalingPolicyCallable(const Model::PutScalingPolicyRequest& request) const; /** *

Creates or updates a scaling policy for an Auto Scaling group.

For * more information about using scaling policies to scale your Auto Scaling group, * see Target * Tracking Scaling Policies and Step * and Simple Scaling Policies in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutScalingPolicyAsync(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates a scheduled scaling action for an Auto Scaling group. If * you leave a parameter unspecified when updating a scheduled scaling action, the * corresponding value remains unchanged.

For more information, see Scheduled * Scaling in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::PutScheduledUpdateGroupActionOutcome PutScheduledUpdateGroupAction(const Model::PutScheduledUpdateGroupActionRequest& request) const; /** *

Creates or updates a scheduled scaling action for an Auto Scaling group. If * you leave a parameter unspecified when updating a scheduled scaling action, the * corresponding value remains unchanged.

For more information, see Scheduled * Scaling in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutScheduledUpdateGroupActionOutcomeCallable PutScheduledUpdateGroupActionCallable(const Model::PutScheduledUpdateGroupActionRequest& request) const; /** *

Creates or updates a scheduled scaling action for an Auto Scaling group. If * you leave a parameter unspecified when updating a scheduled scaling action, the * corresponding value remains unchanged.

For more information, see Scheduled * Scaling in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutScheduledUpdateGroupActionAsync(const Model::PutScheduledUpdateGroupActionRequest& request, const PutScheduledUpdateGroupActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Records a heartbeat for the lifecycle action associated with the specified * token or instance. This extends the timeout by the length of time defined using * the PutLifecycleHook API call.

This step is a part of the * procedure for adding a lifecycle hook to an Auto Scaling group:

  1. *

    (Optional) Create a Lambda function and a rule that allows CloudWatch Events * to invoke your Lambda function when Amazon EC2 Auto Scaling launches or * terminates instances.

  2. (Optional) Create a notification target * and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS * topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle * notifications to the target.

  3. Create the lifecycle hook. * Specify whether the hook is used when the instances launch or terminate.

    *
  4. If you need more time, record the lifecycle action heartbeat * to keep the instance in a pending state.

  5. If you finish * before the timeout period ends, complete the lifecycle action.

*

For more information, see Auto * Scaling Lifecycle in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::RecordLifecycleActionHeartbeatOutcome RecordLifecycleActionHeartbeat(const Model::RecordLifecycleActionHeartbeatRequest& request) const; /** *

Records a heartbeat for the lifecycle action associated with the specified * token or instance. This extends the timeout by the length of time defined using * the PutLifecycleHook API call.

This step is a part of the * procedure for adding a lifecycle hook to an Auto Scaling group:

  1. *

    (Optional) Create a Lambda function and a rule that allows CloudWatch Events * to invoke your Lambda function when Amazon EC2 Auto Scaling launches or * terminates instances.

  2. (Optional) Create a notification target * and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS * topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle * notifications to the target.

  3. Create the lifecycle hook. * Specify whether the hook is used when the instances launch or terminate.

    *
  4. If you need more time, record the lifecycle action heartbeat * to keep the instance in a pending state.

  5. If you finish * before the timeout period ends, complete the lifecycle action.

*

For more information, see Auto * Scaling Lifecycle in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::RecordLifecycleActionHeartbeatOutcomeCallable RecordLifecycleActionHeartbeatCallable(const Model::RecordLifecycleActionHeartbeatRequest& request) const; /** *

Records a heartbeat for the lifecycle action associated with the specified * token or instance. This extends the timeout by the length of time defined using * the PutLifecycleHook API call.

This step is a part of the * procedure for adding a lifecycle hook to an Auto Scaling group:

  1. *

    (Optional) Create a Lambda function and a rule that allows CloudWatch Events * to invoke your Lambda function when Amazon EC2 Auto Scaling launches or * terminates instances.

  2. (Optional) Create a notification target * and an IAM role. The target can be either an Amazon SQS queue or an Amazon SNS * topic. The role allows Amazon EC2 Auto Scaling to publish lifecycle * notifications to the target.

  3. Create the lifecycle hook. * Specify whether the hook is used when the instances launch or terminate.

    *
  4. If you need more time, record the lifecycle action heartbeat * to keep the instance in a pending state.

  5. If you finish * before the timeout period ends, complete the lifecycle action.

*

For more information, see Auto * Scaling Lifecycle in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RecordLifecycleActionHeartbeatAsync(const Model::RecordLifecycleActionHeartbeatRequest& request, const RecordLifecycleActionHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Resumes the specified suspended automatic scaling processes, or all suspended * process, for the specified Auto Scaling group.

For more information, see * Suspending * and Resuming Scaling Processes in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::ResumeProcessesOutcome ResumeProcesses(const Model::ResumeProcessesRequest& request) const; /** *

Resumes the specified suspended automatic scaling processes, or all suspended * process, for the specified Auto Scaling group.

For more information, see * Suspending * and Resuming Scaling Processes in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ResumeProcessesOutcomeCallable ResumeProcessesCallable(const Model::ResumeProcessesRequest& request) const; /** *

Resumes the specified suspended automatic scaling processes, or all suspended * process, for the specified Auto Scaling group.

For more information, see * Suspending * and Resuming Scaling Processes in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ResumeProcessesAsync(const Model::ResumeProcessesRequest& request, const ResumeProcessesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the size of the specified Auto Scaling group.

If a scale-in * activity occurs as a result of a new DesiredCapacity value that is * lower than the current size of the group, the Auto Scaling group uses its * termination policy to determine which instances to terminate.

For more * information, see Manual * Scaling in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::SetDesiredCapacityOutcome SetDesiredCapacity(const Model::SetDesiredCapacityRequest& request) const; /** *

Sets the size of the specified Auto Scaling group.

If a scale-in * activity occurs as a result of a new DesiredCapacity value that is * lower than the current size of the group, the Auto Scaling group uses its * termination policy to determine which instances to terminate.

For more * information, see Manual * Scaling in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetDesiredCapacityOutcomeCallable SetDesiredCapacityCallable(const Model::SetDesiredCapacityRequest& request) const; /** *

Sets the size of the specified Auto Scaling group.

If a scale-in * activity occurs as a result of a new DesiredCapacity value that is * lower than the current size of the group, the Auto Scaling group uses its * termination policy to determine which instances to terminate.

For more * information, see Manual * Scaling in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetDesiredCapacityAsync(const Model::SetDesiredCapacityRequest& request, const SetDesiredCapacityResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Sets the health status of the specified instance.

For more * information, see Health * Checks for Auto Scaling Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::SetInstanceHealthOutcome SetInstanceHealth(const Model::SetInstanceHealthRequest& request) const; /** *

Sets the health status of the specified instance.

For more * information, see Health * Checks for Auto Scaling Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetInstanceHealthOutcomeCallable SetInstanceHealthCallable(const Model::SetInstanceHealthRequest& request) const; /** *

Sets the health status of the specified instance.

For more * information, see Health * Checks for Auto Scaling Instances in the Amazon EC2 Auto Scaling User * Guide.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetInstanceHealthAsync(const Model::SetInstanceHealthRequest& request, const SetInstanceHealthResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the instance protection settings of the specified instances.

*

For more information about preventing instances that are part of an Auto * Scaling group from terminating on scale in, see Instance * Protection in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::SetInstanceProtectionOutcome SetInstanceProtection(const Model::SetInstanceProtectionRequest& request) const; /** *

Updates the instance protection settings of the specified instances.

*

For more information about preventing instances that are part of an Auto * Scaling group from terminating on scale in, see Instance * Protection in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SetInstanceProtectionOutcomeCallable SetInstanceProtectionCallable(const Model::SetInstanceProtectionRequest& request) const; /** *

Updates the instance protection settings of the specified instances.

*

For more information about preventing instances that are part of an Auto * Scaling group from terminating on scale in, see Instance * Protection in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SetInstanceProtectionAsync(const Model::SetInstanceProtectionRequest& request, const SetInstanceProtectionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Starts a new instance refresh operation, which triggers a rolling replacement * of all previously launched instances in the Auto Scaling group with a new group * of instances.

If successful, this call creates a new instance refresh * request with a unique ID that you can use to track its progress. To query its * status, call the DescribeInstanceRefreshes API. To describe the instance * refreshes that have already run, call the DescribeInstanceRefreshes API. * To cancel an instance refresh operation in progress, use the * CancelInstanceRefresh API.

For more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

*/ virtual Model::StartInstanceRefreshOutcome StartInstanceRefresh(const Model::StartInstanceRefreshRequest& request) const; /** *

Starts a new instance refresh operation, which triggers a rolling replacement * of all previously launched instances in the Auto Scaling group with a new group * of instances.

If successful, this call creates a new instance refresh * request with a unique ID that you can use to track its progress. To query its * status, call the DescribeInstanceRefreshes API. To describe the instance * refreshes that have already run, call the DescribeInstanceRefreshes API. * To cancel an instance refresh operation in progress, use the * CancelInstanceRefresh API.

For more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StartInstanceRefreshOutcomeCallable StartInstanceRefreshCallable(const Model::StartInstanceRefreshRequest& request) const; /** *

Starts a new instance refresh operation, which triggers a rolling replacement * of all previously launched instances in the Auto Scaling group with a new group * of instances.

If successful, this call creates a new instance refresh * request with a unique ID that you can use to track its progress. To query its * status, call the DescribeInstanceRefreshes API. To describe the instance * refreshes that have already run, call the DescribeInstanceRefreshes API. * To cancel an instance refresh operation in progress, use the * CancelInstanceRefresh API.

For more information, see Replacing * Auto Scaling Instances Based on an Instance Refresh.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StartInstanceRefreshAsync(const Model::StartInstanceRefreshRequest& request, const StartInstanceRefreshResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Suspends the specified automatic scaling processes, or all processes, for the * specified Auto Scaling group.

If you suspend either the * Launch or Terminate process types, it can prevent * other process types from functioning properly. For more information, see Suspending * and Resuming Scaling Processes in the Amazon EC2 Auto Scaling User * Guide.

To resume processes that have been suspended, call the * ResumeProcesses API.

See Also:

AWS * API Reference

*/ virtual Model::SuspendProcessesOutcome SuspendProcesses(const Model::SuspendProcessesRequest& request) const; /** *

Suspends the specified automatic scaling processes, or all processes, for the * specified Auto Scaling group.

If you suspend either the * Launch or Terminate process types, it can prevent * other process types from functioning properly. For more information, see Suspending * and Resuming Scaling Processes in the Amazon EC2 Auto Scaling User * Guide.

To resume processes that have been suspended, call the * ResumeProcesses API.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::SuspendProcessesOutcomeCallable SuspendProcessesCallable(const Model::SuspendProcessesRequest& request) const; /** *

Suspends the specified automatic scaling processes, or all processes, for the * specified Auto Scaling group.

If you suspend either the * Launch or Terminate process types, it can prevent * other process types from functioning properly. For more information, see Suspending * and Resuming Scaling Processes in the Amazon EC2 Auto Scaling User * Guide.

To resume processes that have been suspended, call the * ResumeProcesses API.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void SuspendProcessesAsync(const Model::SuspendProcessesRequest& request, const SuspendProcessesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Terminates the specified instance and optionally adjusts the desired group * size.

This call simply makes a termination request. The instance is not * terminated immediately. When an instance is terminated, the instance status * changes to terminated. You can't connect to or start an instance * after you've terminated it.

If you do not specify the option to decrement * the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the * ones that are terminated.

By default, Amazon EC2 Auto Scaling balances * instances across all Availability Zones. If you decrement the desired capacity, * your Auto Scaling group can become unbalanced between Availability Zones. Amazon * EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate * instances in other zones. For more information, see Rebalancing * Activities in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::TerminateInstanceInAutoScalingGroupOutcome TerminateInstanceInAutoScalingGroup(const Model::TerminateInstanceInAutoScalingGroupRequest& request) const; /** *

Terminates the specified instance and optionally adjusts the desired group * size.

This call simply makes a termination request. The instance is not * terminated immediately. When an instance is terminated, the instance status * changes to terminated. You can't connect to or start an instance * after you've terminated it.

If you do not specify the option to decrement * the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the * ones that are terminated.

By default, Amazon EC2 Auto Scaling balances * instances across all Availability Zones. If you decrement the desired capacity, * your Auto Scaling group can become unbalanced between Availability Zones. Amazon * EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate * instances in other zones. For more information, see Rebalancing * Activities in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TerminateInstanceInAutoScalingGroupOutcomeCallable TerminateInstanceInAutoScalingGroupCallable(const Model::TerminateInstanceInAutoScalingGroupRequest& request) const; /** *

Terminates the specified instance and optionally adjusts the desired group * size.

This call simply makes a termination request. The instance is not * terminated immediately. When an instance is terminated, the instance status * changes to terminated. You can't connect to or start an instance * after you've terminated it.

If you do not specify the option to decrement * the desired capacity, Amazon EC2 Auto Scaling launches instances to replace the * ones that are terminated.

By default, Amazon EC2 Auto Scaling balances * instances across all Availability Zones. If you decrement the desired capacity, * your Auto Scaling group can become unbalanced between Availability Zones. Amazon * EC2 Auto Scaling tries to rebalance the group, and rebalancing might terminate * instances in other zones. For more information, see Rebalancing * Activities in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TerminateInstanceInAutoScalingGroupAsync(const Model::TerminateInstanceInAutoScalingGroupRequest& request, const TerminateInstanceInAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the configuration for the specified Auto Scaling group.

To * update an Auto Scaling group, specify the name of the group and the parameter * that you want to change. Any parameters that you don't specify are not changed * by this update request. The new settings take effect on any scaling activities * after this call returns.

If you associate a new launch configuration or * template with an Auto Scaling group, all new instances will get the updated * configuration. Existing instances continue to run with the configuration that * they were originally launched with. When you update a group to specify a mixed * instances policy instead of a launch configuration or template, existing * instances may be replaced to match the new purchasing options that you specified * in the policy. For example, if the group currently has 100% On-Demand capacity * and the policy specifies 50% Spot capacity, this means that half of your * instances will be gradually terminated and relaunched as Spot Instances. When * replacing instances, Amazon EC2 Auto Scaling launches new instances before * terminating the old ones, so that updating your group does not compromise the * performance or availability of your application.

Note the following about * changing DesiredCapacity, MaxSize, or * MinSize:

  • If a scale-in activity occurs as a result * of a new DesiredCapacity value that is lower than the current size * of the group, the Auto Scaling group uses its termination policy to determine * which instances to terminate.

  • If you specify a new value for * MinSize without specifying a value for * DesiredCapacity, and the new MinSize is larger than * the current size of the group, this sets the group's * DesiredCapacity to the new MinSize value.

  • *
  • If you specify a new value for MaxSize without specifying a * value for DesiredCapacity, and the new MaxSize is * smaller than the current size of the group, this sets the group's * DesiredCapacity to the new MaxSize value.

  • *

To see which parameters have been set, call the * DescribeAutoScalingGroups API. To view the scaling policies for an Auto * Scaling group, call the DescribePolicies API. If the group has scaling * policies, you can update them by calling the PutScalingPolicy * API.

See Also:

AWS * API Reference

*/ virtual Model::UpdateAutoScalingGroupOutcome UpdateAutoScalingGroup(const Model::UpdateAutoScalingGroupRequest& request) const; /** *

Updates the configuration for the specified Auto Scaling group.

To * update an Auto Scaling group, specify the name of the group and the parameter * that you want to change. Any parameters that you don't specify are not changed * by this update request. The new settings take effect on any scaling activities * after this call returns.

If you associate a new launch configuration or * template with an Auto Scaling group, all new instances will get the updated * configuration. Existing instances continue to run with the configuration that * they were originally launched with. When you update a group to specify a mixed * instances policy instead of a launch configuration or template, existing * instances may be replaced to match the new purchasing options that you specified * in the policy. For example, if the group currently has 100% On-Demand capacity * and the policy specifies 50% Spot capacity, this means that half of your * instances will be gradually terminated and relaunched as Spot Instances. When * replacing instances, Amazon EC2 Auto Scaling launches new instances before * terminating the old ones, so that updating your group does not compromise the * performance or availability of your application.

Note the following about * changing DesiredCapacity, MaxSize, or * MinSize:

  • If a scale-in activity occurs as a result * of a new DesiredCapacity value that is lower than the current size * of the group, the Auto Scaling group uses its termination policy to determine * which instances to terminate.

  • If you specify a new value for * MinSize without specifying a value for * DesiredCapacity, and the new MinSize is larger than * the current size of the group, this sets the group's * DesiredCapacity to the new MinSize value.

  • *
  • If you specify a new value for MaxSize without specifying a * value for DesiredCapacity, and the new MaxSize is * smaller than the current size of the group, this sets the group's * DesiredCapacity to the new MaxSize value.

  • *

To see which parameters have been set, call the * DescribeAutoScalingGroups API. To view the scaling policies for an Auto * Scaling group, call the DescribePolicies API. If the group has scaling * policies, you can update them by calling the PutScalingPolicy * API.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateAutoScalingGroupOutcomeCallable UpdateAutoScalingGroupCallable(const Model::UpdateAutoScalingGroupRequest& request) const; /** *

Updates the configuration for the specified Auto Scaling group.

To * update an Auto Scaling group, specify the name of the group and the parameter * that you want to change. Any parameters that you don't specify are not changed * by this update request. The new settings take effect on any scaling activities * after this call returns.

If you associate a new launch configuration or * template with an Auto Scaling group, all new instances will get the updated * configuration. Existing instances continue to run with the configuration that * they were originally launched with. When you update a group to specify a mixed * instances policy instead of a launch configuration or template, existing * instances may be replaced to match the new purchasing options that you specified * in the policy. For example, if the group currently has 100% On-Demand capacity * and the policy specifies 50% Spot capacity, this means that half of your * instances will be gradually terminated and relaunched as Spot Instances. When * replacing instances, Amazon EC2 Auto Scaling launches new instances before * terminating the old ones, so that updating your group does not compromise the * performance or availability of your application.

Note the following about * changing DesiredCapacity, MaxSize, or * MinSize:

  • If a scale-in activity occurs as a result * of a new DesiredCapacity value that is lower than the current size * of the group, the Auto Scaling group uses its termination policy to determine * which instances to terminate.

  • If you specify a new value for * MinSize without specifying a value for * DesiredCapacity, and the new MinSize is larger than * the current size of the group, this sets the group's * DesiredCapacity to the new MinSize value.

  • *
  • If you specify a new value for MaxSize without specifying a * value for DesiredCapacity, and the new MaxSize is * smaller than the current size of the group, this sets the group's * DesiredCapacity to the new MaxSize value.

  • *

To see which parameters have been set, call the * DescribeAutoScalingGroups API. To view the scaling policies for an Auto * Scaling group, call the DescribePolicies API. If the group has scaling * policies, you can update them by calling the PutScalingPolicy * API.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateAutoScalingGroupAsync(const Model::UpdateAutoScalingGroupRequest& request, const UpdateAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AttachInstancesAsyncHelper(const Model::AttachInstancesRequest& request, const AttachInstancesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AttachLoadBalancerTargetGroupsAsyncHelper(const Model::AttachLoadBalancerTargetGroupsRequest& request, const AttachLoadBalancerTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void AttachLoadBalancersAsyncHelper(const Model::AttachLoadBalancersRequest& request, const AttachLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void BatchDeleteScheduledActionAsyncHelper(const Model::BatchDeleteScheduledActionRequest& request, const BatchDeleteScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void BatchPutScheduledUpdateGroupActionAsyncHelper(const Model::BatchPutScheduledUpdateGroupActionRequest& request, const BatchPutScheduledUpdateGroupActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CancelInstanceRefreshAsyncHelper(const Model::CancelInstanceRefreshRequest& request, const CancelInstanceRefreshResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CompleteLifecycleActionAsyncHelper(const Model::CompleteLifecycleActionRequest& request, const CompleteLifecycleActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateAutoScalingGroupAsyncHelper(const Model::CreateAutoScalingGroupRequest& request, const CreateAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateLaunchConfigurationAsyncHelper(const Model::CreateLaunchConfigurationRequest& request, const CreateLaunchConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateOrUpdateTagsAsyncHelper(const Model::CreateOrUpdateTagsRequest& request, const CreateOrUpdateTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteAutoScalingGroupAsyncHelper(const Model::DeleteAutoScalingGroupRequest& request, const DeleteAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteLaunchConfigurationAsyncHelper(const Model::DeleteLaunchConfigurationRequest& request, const DeleteLaunchConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteLifecycleHookAsyncHelper(const Model::DeleteLifecycleHookRequest& request, const DeleteLifecycleHookResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteNotificationConfigurationAsyncHelper(const Model::DeleteNotificationConfigurationRequest& request, const DeleteNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteScheduledActionAsyncHelper(const Model::DeleteScheduledActionRequest& request, const DeleteScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteTagsAsyncHelper(const Model::DeleteTagsRequest& request, const DeleteTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAccountLimitsAsyncHelper(const Model::DescribeAccountLimitsRequest& request, const DescribeAccountLimitsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAdjustmentTypesAsyncHelper(const Model::DescribeAdjustmentTypesRequest& request, const DescribeAdjustmentTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAutoScalingGroupsAsyncHelper(const Model::DescribeAutoScalingGroupsRequest& request, const DescribeAutoScalingGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAutoScalingInstancesAsyncHelper(const Model::DescribeAutoScalingInstancesRequest& request, const DescribeAutoScalingInstancesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAutoScalingNotificationTypesAsyncHelper(const Model::DescribeAutoScalingNotificationTypesRequest& request, const DescribeAutoScalingNotificationTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeInstanceRefreshesAsyncHelper(const Model::DescribeInstanceRefreshesRequest& request, const DescribeInstanceRefreshesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLaunchConfigurationsAsyncHelper(const Model::DescribeLaunchConfigurationsRequest& request, const DescribeLaunchConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLifecycleHookTypesAsyncHelper(const Model::DescribeLifecycleHookTypesRequest& request, const DescribeLifecycleHookTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLifecycleHooksAsyncHelper(const Model::DescribeLifecycleHooksRequest& request, const DescribeLifecycleHooksResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLoadBalancerTargetGroupsAsyncHelper(const Model::DescribeLoadBalancerTargetGroupsRequest& request, const DescribeLoadBalancerTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeLoadBalancersAsyncHelper(const Model::DescribeLoadBalancersRequest& request, const DescribeLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeMetricCollectionTypesAsyncHelper(const Model::DescribeMetricCollectionTypesRequest& request, const DescribeMetricCollectionTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeNotificationConfigurationsAsyncHelper(const Model::DescribeNotificationConfigurationsRequest& request, const DescribeNotificationConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribePoliciesAsyncHelper(const Model::DescribePoliciesRequest& request, const DescribePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScalingActivitiesAsyncHelper(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScalingProcessTypesAsyncHelper(const Model::DescribeScalingProcessTypesRequest& request, const DescribeScalingProcessTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScheduledActionsAsyncHelper(const Model::DescribeScheduledActionsRequest& request, const DescribeScheduledActionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeTagsAsyncHelper(const Model::DescribeTagsRequest& request, const DescribeTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeTerminationPolicyTypesAsyncHelper(const Model::DescribeTerminationPolicyTypesRequest& request, const DescribeTerminationPolicyTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DetachInstancesAsyncHelper(const Model::DetachInstancesRequest& request, const DetachInstancesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DetachLoadBalancerTargetGroupsAsyncHelper(const Model::DetachLoadBalancerTargetGroupsRequest& request, const DetachLoadBalancerTargetGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DetachLoadBalancersAsyncHelper(const Model::DetachLoadBalancersRequest& request, const DetachLoadBalancersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisableMetricsCollectionAsyncHelper(const Model::DisableMetricsCollectionRequest& request, const DisableMetricsCollectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void EnableMetricsCollectionAsyncHelper(const Model::EnableMetricsCollectionRequest& request, const EnableMetricsCollectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void EnterStandbyAsyncHelper(const Model::EnterStandbyRequest& request, const EnterStandbyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ExecutePolicyAsyncHelper(const Model::ExecutePolicyRequest& request, const ExecutePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ExitStandbyAsyncHelper(const Model::ExitStandbyRequest& request, const ExitStandbyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutLifecycleHookAsyncHelper(const Model::PutLifecycleHookRequest& request, const PutLifecycleHookResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutNotificationConfigurationAsyncHelper(const Model::PutNotificationConfigurationRequest& request, const PutNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutScalingPolicyAsyncHelper(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutScheduledUpdateGroupActionAsyncHelper(const Model::PutScheduledUpdateGroupActionRequest& request, const PutScheduledUpdateGroupActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RecordLifecycleActionHeartbeatAsyncHelper(const Model::RecordLifecycleActionHeartbeatRequest& request, const RecordLifecycleActionHeartbeatResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ResumeProcessesAsyncHelper(const Model::ResumeProcessesRequest& request, const ResumeProcessesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetDesiredCapacityAsyncHelper(const Model::SetDesiredCapacityRequest& request, const SetDesiredCapacityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetInstanceHealthAsyncHelper(const Model::SetInstanceHealthRequest& request, const SetInstanceHealthResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SetInstanceProtectionAsyncHelper(const Model::SetInstanceProtectionRequest& request, const SetInstanceProtectionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StartInstanceRefreshAsyncHelper(const Model::StartInstanceRefreshRequest& request, const StartInstanceRefreshResponseReceivedHandler& handler, const std::shared_ptr& context) const; void SuspendProcessesAsyncHelper(const Model::SuspendProcessesRequest& request, const SuspendProcessesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TerminateInstanceInAutoScalingGroupAsyncHelper(const Model::TerminateInstanceInAutoScalingGroupRequest& request, const TerminateInstanceInAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateAutoScalingGroupAsyncHelper(const Model::UpdateAutoScalingGroupRequest& request, const UpdateAutoScalingGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace AutoScaling } // namespace Aws