com.amazonaws.services.autoscaling
Class AmazonAutoScalingAsyncClient

java.lang.Object
  extended by com.amazonaws.AmazonWebServiceClient
      extended by com.amazonaws.services.autoscaling.AmazonAutoScalingClient
          extended by com.amazonaws.services.autoscaling.AmazonAutoScalingAsyncClient
All Implemented Interfaces:
AmazonAutoScaling, AmazonAutoScalingAsync

public class AmazonAutoScalingAsyncClient
extends AmazonAutoScalingClient
implements AmazonAutoScalingAsync

Client for accessing AmazonAutoScaling. All calls made using this client are non-blocking and will immediately return a Java Future. Callers must use the Future object to determine when the service call has actually completed.

Amazon Auto Scaling is an easy-to-use web service designed to automatically launch or terminate EC2 instances based on user defined triggers. Users can set up Auto Scaling groups and associate triggers with these groups to automatically scale computing resources based on parameters such as bandwidth usage or CPU utilization. Auto Scaling groups can work across multiple Availability Zones - distinct physical locations for the hosted EC2 instances - so that if an Availability Zone becomes unhealthy or unavailable, Auto Scaling will automatically re-distribute applications to a healthy Availability Zone.


Constructor Summary
AmazonAutoScalingAsyncClient(AWSCredentials awsCredentials)
          Constructs a new asynchronous client to invoke service methods on AmazonAutoScaling using the specified AWS account credentials.
AmazonAutoScalingAsyncClient(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration, ExecutorService executorService)
          Constructs a new asynchronous client to invoke service methods on AmazonAutoScaling using the specified AWS account credentials, executor service, and client configuration options.
AmazonAutoScalingAsyncClient(AWSCredentials awsCredentials, ExecutorService executorService)
          Constructs a new asynchronous client to invoke service methods on AmazonAutoScaling using the specified AWS account credentials and executor service.
 
Method Summary
 Future<Void> createAutoScalingGroupAsync(CreateAutoScalingGroupRequest createAutoScalingGroupRequest)
           Creates a new Auto Scaling group with the specified name.
 Future<Void> createLaunchConfigurationAsync(CreateLaunchConfigurationRequest createLaunchConfigurationRequest)
           Creates a new launch configuration.
 Future<Void> createOrUpdateScalingTriggerAsync(CreateOrUpdateScalingTriggerRequest createOrUpdateScalingTriggerRequest)
           Sets the parameters that govern how and when to scale an AutoScaling group.
 Future<Void> deleteAutoScalingGroupAsync(DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest)
           Deletes all configuration for the specified AutoScalingGroup and deletes the group.
 Future<Void> deleteLaunchConfigurationAsync(DeleteLaunchConfigurationRequest deleteLaunchConfigurationRequest)
           Deletes the specified LaunchConfiguration.
 Future<Void> deleteTriggerAsync(DeleteTriggerRequest deleteTriggerRequest)
           Deletes the specified trigger.
 Future<DescribeAutoScalingGroupsResult> describeAutoScalingGroupsAsync(DescribeAutoScalingGroupsRequest describeAutoScalingGroupsRequest)
           Returns a full description of the AutoScalingGroup instances specified in the given list.
 Future<DescribeLaunchConfigurationsResult> describeLaunchConfigurationsAsync(DescribeLaunchConfigurationsRequest describeLaunchConfigurationsRequest)
           Returns a full description of the launch configurations given the specified names.
 Future<DescribeScalingActivitiesResult> describeScalingActivitiesAsync(DescribeScalingActivitiesRequest describeScalingActivitiesRequest)
           Returns the scaling activities for the specified Auto Scaling group.
 Future<DescribeTriggersResult> describeTriggersAsync(DescribeTriggersRequest describeTriggersRequest)
           Returns a full description of the specified AutoScalingGroup's triggers.
 ExecutorService getExecutorService()
          Returns the executor service used by this async client to execute requests.
 Future<Void> setDesiredCapacityAsync(SetDesiredCapacityRequest setDesiredCapacityRequest)
           Adjusts the desired size of the AutoScalingGroup by initiating scaling activities.
 Future<TerminateInstanceInAutoScalingGroupResult> terminateInstanceInAutoScalingGroupAsync(TerminateInstanceInAutoScalingGroupRequest terminateInstanceInAutoScalingGroupRequest)
           Terminates the specified instance.
 Future<Void> updateAutoScalingGroupAsync(UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest)
           Updates the configuration for the specified AutoScalingGroup.
 
Methods inherited from class com.amazonaws.services.autoscaling.AmazonAutoScalingClient
createAutoScalingGroup, createLaunchConfiguration, createOrUpdateScalingTrigger, deleteAutoScalingGroup, deleteLaunchConfiguration, deleteTrigger, describeAutoScalingGroups, describeAutoScalingGroups, describeLaunchConfigurations, describeLaunchConfigurations, describeScalingActivities, describeTriggers, setDesiredCapacity, terminateInstanceInAutoScalingGroup, updateAutoScalingGroup
 
Methods inherited from class com.amazonaws.AmazonWebServiceClient
setEndpoint
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.amazonaws.services.autoscaling.AmazonAutoScaling
createAutoScalingGroup, createLaunchConfiguration, createOrUpdateScalingTrigger, deleteAutoScalingGroup, deleteLaunchConfiguration, deleteTrigger, describeAutoScalingGroups, describeAutoScalingGroups, describeLaunchConfigurations, describeLaunchConfigurations, describeScalingActivities, describeTriggers, setDesiredCapacity, setEndpoint, terminateInstanceInAutoScalingGroup, updateAutoScalingGroup
 

Constructor Detail

AmazonAutoScalingAsyncClient

public AmazonAutoScalingAsyncClient(AWSCredentials awsCredentials)
Constructs a new asynchronous client to invoke service methods on AmazonAutoScaling using the specified AWS account credentials. Default client settings will be used, and a default cached thread pool will be created for executing the asynchronous tasks.

All calls made using this new client object are non-blocking, and will immediately return a Java Future object that the caller can later check to see if the service call has actually completed.

Parameters:
awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.

AmazonAutoScalingAsyncClient

public AmazonAutoScalingAsyncClient(AWSCredentials awsCredentials,
                                    ExecutorService executorService)
Constructs a new asynchronous client to invoke service methods on AmazonAutoScaling using the specified AWS account credentials and executor service. Default client settings will be used.

All calls made using this new client object are non-blocking, and will immediately return a Java Future object that the caller can later check to see if the service call has actually completed.

Parameters:
awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
executorService - The executor service by which all asynchronous requests will be executed.

AmazonAutoScalingAsyncClient

public AmazonAutoScalingAsyncClient(AWSCredentials awsCredentials,
                                    ClientConfiguration clientConfiguration,
                                    ExecutorService executorService)
Constructs a new asynchronous client to invoke service methods on AmazonAutoScaling using the specified AWS account credentials, executor service, and client configuration options.

All calls made using this new client object are non-blocking, and will immediately return a Java Future object that the caller can later check to see if the service call has actually completed.

Parameters:
awsCredentials - The AWS credentials (access key ID and secret key) to use when authenticating with AWS services.
clientConfiguration - Client configuration options (ex: max retry limit, proxy settings, etc).
executorService - The executor service by which all asynchronous requests will be executed.
Method Detail

getExecutorService

public ExecutorService getExecutorService()
Returns the executor service used by this async client to execute requests.

Returns:
The executor service used by this async client to execute requests.

deleteLaunchConfigurationAsync

public Future<Void> deleteLaunchConfigurationAsync(DeleteLaunchConfigurationRequest deleteLaunchConfigurationRequest)
                                            throws AmazonServiceException,
                                                   AmazonClientException

Deletes the specified LaunchConfiguration.

The specified LaunchConfiguration must not be currently attached to any Auto Scaling group. Once this call completes, the launch configuration is no longer available for use.

Specified by:
deleteLaunchConfigurationAsync in interface AmazonAutoScalingAsync
Parameters:
deleteLaunchConfigurationRequest - Container for the necessary parameters to execute the DeleteLaunchConfiguration operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DeleteLaunchConfiguration service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

describeTriggersAsync

public Future<DescribeTriggersResult> describeTriggersAsync(DescribeTriggersRequest describeTriggersRequest)
                                                     throws AmazonServiceException,
                                                            AmazonClientException

Returns a full description of the specified AutoScalingGroup's triggers.

Specified by:
describeTriggersAsync in interface AmazonAutoScalingAsync
Parameters:
describeTriggersRequest - Container for the necessary parameters to execute the DescribeTriggers operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DescribeTriggers service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

updateAutoScalingGroupAsync

public Future<Void> updateAutoScalingGroupAsync(UpdateAutoScalingGroupRequest updateAutoScalingGroupRequest)
                                         throws AmazonServiceException,
                                                AmazonClientException

Updates the configuration for the specified AutoScalingGroup.

The new settings are registered upon the completion of this call. Any launch configuration settings take effect on any triggers after this call returns. Triggers that are currently in progress aren't affected.

NOTE: If the new values are specified for the MinSize or MaxSize parameters, then there will be an implicit call to SetDesiredCapacity to set the group to the new MaxSize. All optional parameters are left unchanged if not passed in the request.

Specified by:
updateAutoScalingGroupAsync in interface AmazonAutoScalingAsync
Parameters:
updateAutoScalingGroupRequest - Container for the necessary parameters to execute the UpdateAutoScalingGroup operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the UpdateAutoScalingGroup service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

createAutoScalingGroupAsync

public Future<Void> createAutoScalingGroupAsync(CreateAutoScalingGroupRequest createAutoScalingGroupRequest)
                                         throws AmazonServiceException,
                                                AmazonClientException

Creates a new Auto Scaling group with the specified name. Once the creation request is completed, the AutoScalingGroup is ready to be used in other calls.

NOTE: The client must not have already used up their entire quota of AutoScaling groups in order for this call to be successful.

Specified by:
createAutoScalingGroupAsync in interface AmazonAutoScalingAsync
Parameters:
createAutoScalingGroupRequest - Container for the necessary parameters to execute the CreateAutoScalingGroup operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the CreateAutoScalingGroup service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

deleteTriggerAsync

public Future<Void> deleteTriggerAsync(DeleteTriggerRequest deleteTriggerRequest)
                                throws AmazonServiceException,
                                       AmazonClientException

Deletes the specified trigger.

If a trigger is currently in progress, the trigger continues to run until its activities complete.

Specified by:
deleteTriggerAsync in interface AmazonAutoScalingAsync
Parameters:
deleteTriggerRequest - Container for the necessary parameters to execute the DeleteTrigger operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DeleteTrigger service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

terminateInstanceInAutoScalingGroupAsync

public Future<TerminateInstanceInAutoScalingGroupResult> terminateInstanceInAutoScalingGroupAsync(TerminateInstanceInAutoScalingGroupRequest terminateInstanceInAutoScalingGroupRequest)
                                                                                           throws AmazonServiceException,
                                                                                                  AmazonClientException

Terminates the specified instance. Optionally, the desired group size can be adjusted.

NOTE: This call simply registers a termination request. The termination of the instance cannot happen immediately.

Specified by:
terminateInstanceInAutoScalingGroupAsync in interface AmazonAutoScalingAsync
Parameters:
terminateInstanceInAutoScalingGroupRequest - Container for the necessary parameters to execute the TerminateInstanceInAutoScalingGroup operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the TerminateInstanceInAutoScalingGroup service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

createOrUpdateScalingTriggerAsync

public Future<Void> createOrUpdateScalingTriggerAsync(CreateOrUpdateScalingTriggerRequest createOrUpdateScalingTriggerRequest)
                                               throws AmazonServiceException,
                                                      AmazonClientException

Sets the parameters that govern how and when to scale an AutoScaling group.

Specified by:
createOrUpdateScalingTriggerAsync in interface AmazonAutoScalingAsync
Parameters:
createOrUpdateScalingTriggerRequest - Container for the necessary parameters to execute the CreateOrUpdateScalingTrigger operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the CreateOrUpdateScalingTrigger service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

describeAutoScalingGroupsAsync

public Future<DescribeAutoScalingGroupsResult> describeAutoScalingGroupsAsync(DescribeAutoScalingGroupsRequest describeAutoScalingGroupsRequest)
                                                                       throws AmazonServiceException,
                                                                              AmazonClientException

Returns a full description of the AutoScalingGroup instances specified in the given list. This includes all Amazon EC2 instances that are members of the Auto Scaling group. If a list of names is not provided, then the full details of all AutoScalingGroups is returned.

Specified by:
describeAutoScalingGroupsAsync in interface AmazonAutoScalingAsync
Parameters:
describeAutoScalingGroupsRequest - Container for the necessary parameters to execute the DescribeAutoScalingGroups operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DescribeAutoScalingGroups service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

createLaunchConfigurationAsync

public Future<Void> createLaunchConfigurationAsync(CreateLaunchConfigurationRequest createLaunchConfigurationRequest)
                                            throws AmazonServiceException,
                                                   AmazonClientException

Creates a new launch configuration. Once created, the new launch configuration is available for immediate use.

NOTE: The launch configuration name used must be unique, within the scope of the client's AWS account, and the maximum limit of launch configurations must not yet have been met, or else the call will fail.

Specified by:
createLaunchConfigurationAsync in interface AmazonAutoScalingAsync
Parameters:
createLaunchConfigurationRequest - Container for the necessary parameters to execute the CreateLaunchConfiguration operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the CreateLaunchConfiguration service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

describeLaunchConfigurationsAsync

public Future<DescribeLaunchConfigurationsResult> describeLaunchConfigurationsAsync(DescribeLaunchConfigurationsRequest describeLaunchConfigurationsRequest)
                                                                             throws AmazonServiceException,
                                                                                    AmazonClientException

Returns a full description of the launch configurations given the specified names.

If no names are specified, then the full details of all launch configurations are returned.

Specified by:
describeLaunchConfigurationsAsync in interface AmazonAutoScalingAsync
Parameters:
describeLaunchConfigurationsRequest - Container for the necessary parameters to execute the DescribeLaunchConfigurations operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DescribeLaunchConfigurations service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

describeScalingActivitiesAsync

public Future<DescribeScalingActivitiesResult> describeScalingActivitiesAsync(DescribeScalingActivitiesRequest describeScalingActivitiesRequest)
                                                                       throws AmazonServiceException,
                                                                              AmazonClientException

Returns the scaling activities for the specified Auto Scaling group.

If the specified ActivityIds list is empty, all the activities from the past six weeks are returned. Activities will be sorted by completion time. Activities that have no completion time are considered as using the most recent possible time.

Specified by:
describeScalingActivitiesAsync in interface AmazonAutoScalingAsync
Parameters:
describeScalingActivitiesRequest - Container for the necessary parameters to execute the DescribeScalingActivities operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DescribeScalingActivities service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

setDesiredCapacityAsync

public Future<Void> setDesiredCapacityAsync(SetDesiredCapacityRequest setDesiredCapacityRequest)
                                     throws AmazonServiceException,
                                            AmazonClientException

Adjusts the desired size of the AutoScalingGroup by initiating scaling activities. When reducing the size of the group, it is not possible to define which EC2 instances will be terminated. This applies to any auto-scaling decisions that might result in the termination of instances.

Specified by:
setDesiredCapacityAsync in interface AmazonAutoScalingAsync
Parameters:
setDesiredCapacityRequest - Container for the necessary parameters to execute the SetDesiredCapacity operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the SetDesiredCapacity service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.

deleteAutoScalingGroupAsync

public Future<Void> deleteAutoScalingGroupAsync(DeleteAutoScalingGroupRequest deleteAutoScalingGroupRequest)
                                         throws AmazonServiceException,
                                                AmazonClientException

Deletes all configuration for the specified AutoScalingGroup and deletes the group.

In order to successfully call this API, no triggers can be currently in progress. Once this call successfully executes, no further triggers will begin, and the specified AutoScalingGroup will not be available for use in other API calls.

NOTE: The client cannot delete an AutoScalingGroup if it contains instances or if there are scaling activities in progress. Before attempting to delete an AutoScalingGroup, call the UpdateAutoScalingGroup operation to set the minimum and maximum size of the AutoScalingGroup to zero. This will remove all instances and avoid problems with a previously set trigger preventing the deletion of the AutoScalingGroup.

Specified by:
deleteAutoScalingGroupAsync in interface AmazonAutoScalingAsync
Parameters:
deleteAutoScalingGroupRequest - Container for the necessary parameters to execute the DeleteAutoScalingGroup operation on AmazonAutoScaling.
Returns:
A Java Future object containing the response from the DeleteAutoScalingGroup service method, as returned by AmazonAutoScaling.
Throws:
AmazonClientException - If any internal errors are encountered inside the client while attempting to make the request or handle the response. For example if a network connection is not available.
AmazonServiceException - If an error response is returned by AmazonAutoScaling indicating either a problem with the data in the request, or a server side issue.


Copyright © 2010 Amazon Web Services, Inc. All Rights Reserved.