/** * 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 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 Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace ApplicationAutoScaling { namespace Model { class DeleteScalingPolicyRequest; class DeleteScheduledActionRequest; class DeregisterScalableTargetRequest; class DescribeScalableTargetsRequest; class DescribeScalingActivitiesRequest; class DescribeScalingPoliciesRequest; class DescribeScheduledActionsRequest; class PutScalingPolicyRequest; class PutScheduledActionRequest; class RegisterScalableTargetRequest; typedef Aws::Utils::Outcome DeleteScalingPolicyOutcome; typedef Aws::Utils::Outcome DeleteScheduledActionOutcome; typedef Aws::Utils::Outcome DeregisterScalableTargetOutcome; typedef Aws::Utils::Outcome DescribeScalableTargetsOutcome; typedef Aws::Utils::Outcome DescribeScalingActivitiesOutcome; typedef Aws::Utils::Outcome DescribeScalingPoliciesOutcome; typedef Aws::Utils::Outcome DescribeScheduledActionsOutcome; typedef Aws::Utils::Outcome PutScalingPolicyOutcome; typedef Aws::Utils::Outcome PutScheduledActionOutcome; typedef Aws::Utils::Outcome RegisterScalableTargetOutcome; typedef std::future DeleteScalingPolicyOutcomeCallable; typedef std::future DeleteScheduledActionOutcomeCallable; typedef std::future DeregisterScalableTargetOutcomeCallable; typedef std::future DescribeScalableTargetsOutcomeCallable; typedef std::future DescribeScalingActivitiesOutcomeCallable; typedef std::future DescribeScalingPoliciesOutcomeCallable; typedef std::future DescribeScheduledActionsOutcomeCallable; typedef std::future PutScalingPolicyOutcomeCallable; typedef std::future PutScheduledActionOutcomeCallable; typedef std::future RegisterScalableTargetOutcomeCallable; } // namespace Model class ApplicationAutoScalingClient; typedef std::function&) > DeleteScalingPolicyResponseReceivedHandler; typedef std::function&) > DeleteScheduledActionResponseReceivedHandler; typedef std::function&) > DeregisterScalableTargetResponseReceivedHandler; typedef std::function&) > DescribeScalableTargetsResponseReceivedHandler; typedef std::function&) > DescribeScalingActivitiesResponseReceivedHandler; typedef std::function&) > DescribeScalingPoliciesResponseReceivedHandler; typedef std::function&) > DescribeScheduledActionsResponseReceivedHandler; typedef std::function&) > PutScalingPolicyResponseReceivedHandler; typedef std::function&) > PutScheduledActionResponseReceivedHandler; typedef std::function&) > RegisterScalableTargetResponseReceivedHandler; /** *

With Application Auto Scaling, you can configure automatic scaling for the * following resources:

  • Amazon ECS services

  • *

    Amazon EC2 Spot Fleet requests

  • Amazon EMR clusters

    *
  • Amazon AppStream 2.0 fleets

  • Amazon DynamoDB * tables and global secondary indexes throughput capacity

  • Amazon * Aurora Replicas

  • Amazon SageMaker endpoint variants

  • *
  • Custom resources provided by your own applications or services

  • *
  • Amazon Comprehend document classification endpoints

  • *

    AWS Lambda function provisioned concurrency

  • Amazon * Keyspaces (for Apache Cassandra) tables

API Summary *

The Application Auto Scaling service API includes three key sets of * actions:

  • Register and manage scalable targets - Register AWS * or custom resources as scalable targets (a resource that Application Auto * Scaling can scale), set minimum and maximum capacity limits, and retrieve * information on existing scalable targets.

  • Configure and manage * automatic scaling - Define scaling policies to dynamically scale your resources * in response to CloudWatch alarms, schedule one-time or recurring scaling * actions, and retrieve your recent scaling activity history.

  • *

    Suspend and resume scaling - Temporarily suspend and later resume automatic * scaling by calling the RegisterScalableTarget * API action for any Application Auto Scaling scalable target. You can suspend and * resume (individually or in combination) scale-out activities that are triggered * by a scaling policy, scale-in activities that are triggered by a scaling policy, * and scheduled scaling.

To learn more about Application Auto * Scaling, including information about granting IAM users required permissions for * Application Auto Scaling actions, see the Application * Auto Scaling User Guide.

*/ class AWS_APPLICATIONAUTOSCALING_API ApplicationAutoScalingClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient 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. */ ApplicationAutoScalingClient(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. */ ApplicationAutoScalingClient(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 */ ApplicationAutoScalingClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~ApplicationAutoScalingClient(); /** *

Deletes the specified scaling policy for an Application Auto Scaling scalable * target.

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

For more * information, see Delete * a Step Scaling Policy and Delete * a Target Tracking Scaling Policy in the Application Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DeleteScalingPolicyOutcome DeleteScalingPolicy(const Model::DeleteScalingPolicyRequest& request) const; /** *

Deletes the specified scaling policy for an Application Auto Scaling scalable * target.

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

For more * information, see Delete * a Step Scaling Policy and Delete * a Target Tracking Scaling Policy in the Application 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::DeleteScalingPolicyOutcomeCallable DeleteScalingPolicyCallable(const Model::DeleteScalingPolicyRequest& request) const; /** *

Deletes the specified scaling policy for an Application Auto Scaling scalable * target.

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

For more * information, see Delete * a Step Scaling Policy and Delete * a Target Tracking Scaling Policy in the Application 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 DeleteScalingPolicyAsync(const Model::DeleteScalingPolicyRequest& request, const DeleteScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the specified scheduled action for an Application Auto Scaling * scalable target.

For more information, see Delete * a Scheduled Action in the Application Auto Scaling User * Guide.

See Also:

AWS * API Reference

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

Deletes the specified scheduled action for an Application Auto Scaling * scalable target.

For more information, see Delete * a Scheduled Action in the Application 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::DeleteScheduledActionOutcomeCallable DeleteScheduledActionCallable(const Model::DeleteScheduledActionRequest& request) const; /** *

Deletes the specified scheduled action for an Application Auto Scaling * scalable target.

For more information, see Delete * a Scheduled Action in the Application 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 DeleteScheduledActionAsync(const Model::DeleteScheduledActionRequest& request, const DeleteScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deregisters an Application Auto Scaling scalable target when you have * finished using it. To see which resources have been registered, use DescribeScalableTargets. *

Deregistering a scalable target deletes the scaling policies and * the scheduled actions that are associated with it.

See * Also:

AWS * API Reference

*/ virtual Model::DeregisterScalableTargetOutcome DeregisterScalableTarget(const Model::DeregisterScalableTargetRequest& request) const; /** *

Deregisters an Application Auto Scaling scalable target when you have * finished using it. To see which resources have been registered, use DescribeScalableTargets. *

Deregistering a scalable target deletes the scaling policies and * the scheduled actions that are associated with it.

See * Also:

AWS * API Reference

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

Deregisters an Application Auto Scaling scalable target when you have * finished using it. To see which resources have been registered, use DescribeScalableTargets. *

Deregistering a scalable target deletes the scaling policies and * the scheduled actions that are associated with it.

See * Also:

AWS * API Reference

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

Gets information about the scalable targets in the specified namespace.

*

You can filter the results using ResourceIds and * ScalableDimension.

See Also:

AWS * API Reference

*/ virtual Model::DescribeScalableTargetsOutcome DescribeScalableTargets(const Model::DescribeScalableTargetsRequest& request) const; /** *

Gets information about the scalable targets in the specified namespace.

*

You can filter the results using ResourceIds and * ScalableDimension.

See Also:

AWS * API Reference

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

Gets information about the scalable targets in the specified namespace.

*

You can filter the results using ResourceIds and * ScalableDimension.

See Also:

AWS * API Reference

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

Provides descriptive information about the scaling activities in the * specified namespace from the previous six weeks.

You can filter the * results using ResourceId and * ScalableDimension.

See Also:

AWS * API Reference

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

Provides descriptive information about the scaling activities in the * specified namespace from the previous six weeks.

You can filter the * results using ResourceId and * ScalableDimension.

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; /** *

Provides descriptive information about the scaling activities in the * specified namespace from the previous six weeks.

You can filter the * results using ResourceId and * ScalableDimension.

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 Application Auto Scaling scaling policies for the specified * service namespace.

You can filter the results using * ResourceId, ScalableDimension, and * PolicyNames.

For more information, see Target * Tracking Scaling Policies and Step * Scaling Policies in the Application Auto Scaling User * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeScalingPoliciesOutcome DescribeScalingPolicies(const Model::DescribeScalingPoliciesRequest& request) const; /** *

Describes the Application Auto Scaling scaling policies for the specified * service namespace.

You can filter the results using * ResourceId, ScalableDimension, and * PolicyNames.

For more information, see Target * Tracking Scaling Policies and Step * Scaling Policies in the Application 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::DescribeScalingPoliciesOutcomeCallable DescribeScalingPoliciesCallable(const Model::DescribeScalingPoliciesRequest& request) const; /** *

Describes the Application Auto Scaling scaling policies for the specified * service namespace.

You can filter the results using * ResourceId, ScalableDimension, and * PolicyNames.

For more information, see Target * Tracking Scaling Policies and Step * Scaling Policies in the Application 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 DescribeScalingPoliciesAsync(const Model::DescribeScalingPoliciesRequest& request, const DescribeScalingPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Describes the Application Auto Scaling scheduled actions for the specified * service namespace.

You can filter the results using the * ResourceId, ScalableDimension, and * ScheduledActionNames parameters.

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

See * Also:

AWS * API Reference

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

Describes the Application Auto Scaling scheduled actions for the specified * service namespace.

You can filter the results using the * ResourceId, ScalableDimension, and * ScheduledActionNames parameters.

For more information, see * Scheduled * Scaling in the Application 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::DescribeScheduledActionsOutcomeCallable DescribeScheduledActionsCallable(const Model::DescribeScheduledActionsRequest& request) const; /** *

Describes the Application Auto Scaling scheduled actions for the specified * service namespace.

You can filter the results using the * ResourceId, ScalableDimension, and * ScheduledActionNames parameters.

For more information, see * Scheduled * Scaling in the Application 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 DescribeScheduledActionsAsync(const Model::DescribeScheduledActionsRequest& request, const DescribeScheduledActionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates or updates a scaling policy for an Application Auto Scaling scalable * target.

Each scalable target is identified by a service namespace, * resource ID, and scalable dimension. A scaling policy applies to the scalable * target identified by those three attributes. You cannot create a scaling policy * until you have registered the resource as a scalable target.

Multiple * scaling policies can be in force at the same time for the same scalable target. * You can have one or more target tracking scaling policies, one or more step * scaling policies, or both. However, there is a chance that multiple policies * could conflict, instructing the scalable target to scale out or in at the same * time. Application Auto Scaling gives precedence to the policy that provides the * largest capacity for both scale out and scale in. For example, if one policy * increases capacity by 3, another policy increases capacity by 200 percent, and * the current capacity is 10, Application Auto Scaling uses the policy with the * highest calculated capacity (200% of 10 = 20) and scales out to 30.

We * recommend caution, however, when using target tracking scaling policies with * step scaling policies because conflicts between these policies can cause * undesirable behavior. For example, if the step scaling policy initiates a * scale-in activity before the target tracking policy is ready to scale in, the * scale-in activity will not be blocked. After the scale-in activity completes, * the target tracking policy could instruct the scalable target to scale out * again.

For more information, see Target * Tracking Scaling Policies and Step * Scaling Policies in the Application Auto Scaling User Guide.

*

If a scalable target is deregistered, the scalable target is no longer * available to execute scaling policies. Any scaling policies that were specified * for the scalable target are deleted.

See Also:

AWS * API Reference

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

Creates or updates a scaling policy for an Application Auto Scaling scalable * target.

Each scalable target is identified by a service namespace, * resource ID, and scalable dimension. A scaling policy applies to the scalable * target identified by those three attributes. You cannot create a scaling policy * until you have registered the resource as a scalable target.

Multiple * scaling policies can be in force at the same time for the same scalable target. * You can have one or more target tracking scaling policies, one or more step * scaling policies, or both. However, there is a chance that multiple policies * could conflict, instructing the scalable target to scale out or in at the same * time. Application Auto Scaling gives precedence to the policy that provides the * largest capacity for both scale out and scale in. For example, if one policy * increases capacity by 3, another policy increases capacity by 200 percent, and * the current capacity is 10, Application Auto Scaling uses the policy with the * highest calculated capacity (200% of 10 = 20) and scales out to 30.

We * recommend caution, however, when using target tracking scaling policies with * step scaling policies because conflicts between these policies can cause * undesirable behavior. For example, if the step scaling policy initiates a * scale-in activity before the target tracking policy is ready to scale in, the * scale-in activity will not be blocked. After the scale-in activity completes, * the target tracking policy could instruct the scalable target to scale out * again.

For more information, see Target * Tracking Scaling Policies and Step * Scaling Policies in the Application Auto Scaling User Guide.

*

If a scalable target is deregistered, the scalable target is no longer * available to execute scaling policies. Any scaling policies that were specified * for the scalable target are deleted.

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 Application Auto Scaling scalable * target.

Each scalable target is identified by a service namespace, * resource ID, and scalable dimension. A scaling policy applies to the scalable * target identified by those three attributes. You cannot create a scaling policy * until you have registered the resource as a scalable target.

Multiple * scaling policies can be in force at the same time for the same scalable target. * You can have one or more target tracking scaling policies, one or more step * scaling policies, or both. However, there is a chance that multiple policies * could conflict, instructing the scalable target to scale out or in at the same * time. Application Auto Scaling gives precedence to the policy that provides the * largest capacity for both scale out and scale in. For example, if one policy * increases capacity by 3, another policy increases capacity by 200 percent, and * the current capacity is 10, Application Auto Scaling uses the policy with the * highest calculated capacity (200% of 10 = 20) and scales out to 30.

We * recommend caution, however, when using target tracking scaling policies with * step scaling policies because conflicts between these policies can cause * undesirable behavior. For example, if the step scaling policy initiates a * scale-in activity before the target tracking policy is ready to scale in, the * scale-in activity will not be blocked. After the scale-in activity completes, * the target tracking policy could instruct the scalable target to scale out * again.

For more information, see Target * Tracking Scaling Policies and Step * Scaling Policies in the Application Auto Scaling User Guide.

*

If a scalable target is deregistered, the scalable target is no longer * available to execute scaling policies. Any scaling policies that were specified * for the scalable target are deleted.

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 action for an Application Auto Scaling * scalable target.

Each scalable target is identified by a service * namespace, resource ID, and scalable dimension. A scheduled action applies to * the scalable target identified by those three attributes. You cannot create a * scheduled action until you have registered the resource as a scalable * target.

When start and end times are specified with a recurring schedule * using a cron expression or rates, they form the boundaries of when the recurring * action starts and stops.

To update a scheduled action, specify the * parameters that you want to change. If you don't specify start and end times, * the old values are deleted.

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

If * a scalable target is deregistered, the scalable target is no longer available to * run scheduled actions. Any scheduled actions that were specified for the * scalable target are deleted.

See Also:

AWS * API Reference

*/ virtual Model::PutScheduledActionOutcome PutScheduledAction(const Model::PutScheduledActionRequest& request) const; /** *

Creates or updates a scheduled action for an Application Auto Scaling * scalable target.

Each scalable target is identified by a service * namespace, resource ID, and scalable dimension. A scheduled action applies to * the scalable target identified by those three attributes. You cannot create a * scheduled action until you have registered the resource as a scalable * target.

When start and end times are specified with a recurring schedule * using a cron expression or rates, they form the boundaries of when the recurring * action starts and stops.

To update a scheduled action, specify the * parameters that you want to change. If you don't specify start and end times, * the old values are deleted.

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

If * a scalable target is deregistered, the scalable target is no longer available to * run scheduled actions. Any scheduled actions that were specified for the * scalable target are deleted.

See Also:

AWS * API Reference

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

Creates or updates a scheduled action for an Application Auto Scaling * scalable target.

Each scalable target is identified by a service * namespace, resource ID, and scalable dimension. A scheduled action applies to * the scalable target identified by those three attributes. You cannot create a * scheduled action until you have registered the resource as a scalable * target.

When start and end times are specified with a recurring schedule * using a cron expression or rates, they form the boundaries of when the recurring * action starts and stops.

To update a scheduled action, specify the * parameters that you want to change. If you don't specify start and end times, * the old values are deleted.

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

If * a scalable target is deregistered, the scalable target is no longer available to * run scheduled actions. Any scheduled actions that were specified for the * scalable target are deleted.

See Also:

AWS * API Reference

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

Registers or updates a scalable target.

A scalable target is a * resource that Application Auto Scaling can scale out and scale in. Scalable * targets are uniquely identified by the combination of resource ID, scalable * dimension, and namespace.

When you register a new scalable target, you * must specify values for minimum and maximum capacity. Application Auto Scaling * scaling policies will not scale capacity to values that are outside of this * range.

After you register a scalable target, you do not need to register * it again to use other Application Auto Scaling operations. To see which * resources have been registered, use DescribeScalableTargets. * You can also view the scaling policies for a service namespace by using DescribeScalableTargets. * If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget.

*

To update a scalable target, specify the parameters that you want to change. * Include the parameters that identify the scalable target: resource ID, scalable * dimension, and namespace. Any parameters that you don't specify are not changed * by this update request.

See Also:

AWS * API Reference

*/ virtual Model::RegisterScalableTargetOutcome RegisterScalableTarget(const Model::RegisterScalableTargetRequest& request) const; /** *

Registers or updates a scalable target.

A scalable target is a * resource that Application Auto Scaling can scale out and scale in. Scalable * targets are uniquely identified by the combination of resource ID, scalable * dimension, and namespace.

When you register a new scalable target, you * must specify values for minimum and maximum capacity. Application Auto Scaling * scaling policies will not scale capacity to values that are outside of this * range.

After you register a scalable target, you do not need to register * it again to use other Application Auto Scaling operations. To see which * resources have been registered, use DescribeScalableTargets. * You can also view the scaling policies for a service namespace by using DescribeScalableTargets. * If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget.

*

To update a scalable target, specify the parameters that you want to change. * Include the parameters that identify the scalable target: resource ID, scalable * dimension, and namespace. Any parameters that you don't specify are not changed * by this update request.

See Also:

AWS * API Reference

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

Registers or updates a scalable target.

A scalable target is a * resource that Application Auto Scaling can scale out and scale in. Scalable * targets are uniquely identified by the combination of resource ID, scalable * dimension, and namespace.

When you register a new scalable target, you * must specify values for minimum and maximum capacity. Application Auto Scaling * scaling policies will not scale capacity to values that are outside of this * range.

After you register a scalable target, you do not need to register * it again to use other Application Auto Scaling operations. To see which * resources have been registered, use DescribeScalableTargets. * You can also view the scaling policies for a service namespace by using DescribeScalableTargets. * If you no longer need a scalable target, you can deregister it by using DeregisterScalableTarget.

*

To update a scalable target, specify the parameters that you want to change. * Include the parameters that identify the scalable target: resource ID, scalable * dimension, and namespace. Any parameters that you don't specify are not changed * by this update request.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void RegisterScalableTargetAsync(const Model::RegisterScalableTargetRequest& request, const RegisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void DeleteScalingPolicyAsyncHelper(const Model::DeleteScalingPolicyRequest& request, const DeleteScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteScheduledActionAsyncHelper(const Model::DeleteScheduledActionRequest& request, const DeleteScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeregisterScalableTargetAsyncHelper(const Model::DeregisterScalableTargetRequest& request, const DeregisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScalableTargetsAsyncHelper(const Model::DescribeScalableTargetsRequest& request, const DescribeScalableTargetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScalingActivitiesAsyncHelper(const Model::DescribeScalingActivitiesRequest& request, const DescribeScalingActivitiesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScalingPoliciesAsyncHelper(const Model::DescribeScalingPoliciesRequest& request, const DescribeScalingPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeScheduledActionsAsyncHelper(const Model::DescribeScheduledActionsRequest& request, const DescribeScheduledActionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutScalingPolicyAsyncHelper(const Model::PutScalingPolicyRequest& request, const PutScalingPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutScheduledActionAsyncHelper(const Model::PutScheduledActionRequest& request, const PutScheduledActionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RegisterScalableTargetAsyncHelper(const Model::RegisterScalableTargetRequest& request, const RegisterScalableTargetResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace ApplicationAutoScaling } // namespace Aws