com.amazonaws.services.config.AmazonConfigAsync Maven / Gradle / Ivy
Show all versions of aws-java-sdk-config Show documentation
/*
 * Copyright 2011-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not
 * use this file except in compliance with the License. A copy of the License is
 * located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.config;
import com.amazonaws.services.config.model.*;
/**
 * Interface for accessing Config Service asynchronously. Each asynchronous
 * method will return a Java Future object representing the asynchronous
 * operation; overloads which accept an {@code AsyncHandler} can be used to
 * receive notification when an asynchronous operation completes.
 * 
 * AWS Config 
 * 
 * AWS Config provides a way to keep track of the configurations of all the AWS
 * resources associated with your AWS account. You can use AWS Config to get the
 * current and historical configurations of each AWS resource and also to get
 * information about the relationship between the resources. An AWS resource can
 * be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block Store
 * (EBS) volume, an Elastic network Interface (ENI), or a security group. For a
 * complete list of resources currently supported by AWS Config, see Supported AWS Resources.
 * 
 * 
 * You can access and manage AWS Config through the AWS Management Console, the
 * AWS Command Line Interface (AWS CLI), the AWS Config API, or the AWS SDKs for
 * AWS Config
 * 
 * 
 * This reference guide contains documentation for the AWS Config API and the
 * AWS CLI commands that you can use to manage AWS Config.
 * 
 * 
 * The AWS Config API uses the Signature Version 4 protocol for signing
 * requests. For more information about how to sign a request with this
 * protocol, see Signature Version 4 Signing Process.
 * 
 * 
 * For detailed information about AWS Config features and their associated
 * actions or commands, as well as how to work with AWS Management Console, see
 * What Is AWS Config? in the AWS Config Developer Guide.
 * 
 */
public interface AmazonConfigAsync extends AmazonConfig {
    /**
     * 
     * Deletes the specified AWS Config rule and all of its evaluation results.
     * 
     * 
     * AWS Config sets the state of a rule to DELETING until the
     * deletion is complete. You cannot update a rule while it is in this state.
     * If you make a PutConfigRule or DeleteConfigRule
     * request for the rule, you will receive a
     * ResourceInUseException.
     * 
     * 
     * You can check the state of a rule by using the
     * DescribeConfigRules request.
     * 
     * 
     * @param deleteConfigRuleRequest
     * @return A Java Future containing the result of the DeleteConfigRule
     *         operation returned by the service.
     * @sample AmazonConfigAsync.DeleteConfigRule
     */
    java.util.concurrent.Future deleteConfigRuleAsync(
            DeleteConfigRuleRequest deleteConfigRuleRequest);
    /**
     * 
     * Deletes the specified AWS Config rule and all of its evaluation results.
     * 
     * 
     * AWS Config sets the state of a rule to DELETING until the
     * deletion is complete. You cannot update a rule while it is in this state.
     * If you make a PutConfigRule or DeleteConfigRule
     * request for the rule, you will receive a
     * ResourceInUseException.
     * 
     * 
     * You can check the state of a rule by using the
     * DescribeConfigRules request.
     * 
     * 
     * @param deleteConfigRuleRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteConfigRule
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DeleteConfigRule
     */
    java.util.concurrent.Future deleteConfigRuleAsync(
            DeleteConfigRuleRequest deleteConfigRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the configuration recorder.
     * 
     * 
     * After the configuration recorder is deleted, AWS Config will not record
     * resource configuration changes until you create a new configuration
     * recorder.
     * 
     * 
     * This action does not delete the configuration information that was
     * previously recorded. You will be able to access the previously recorded
     * information by using the GetResourceConfigHistory action,
     * but you will not be able to access this information in the AWS Config
     * console until you create a new configuration recorder.
     * 
     * 
     * @param deleteConfigurationRecorderRequest
     *        The request object for the
     *        DeleteConfigurationRecorder action.
     * @return A Java Future containing the result of the
     *         DeleteConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsync.DeleteConfigurationRecorder
     */
    java.util.concurrent.Future deleteConfigurationRecorderAsync(
            DeleteConfigurationRecorderRequest deleteConfigurationRecorderRequest);
    /**
     * 
     * Deletes the configuration recorder.
     * 
     * 
     * After the configuration recorder is deleted, AWS Config will not record
     * resource configuration changes until you create a new configuration
     * recorder.
     * 
     * 
     * This action does not delete the configuration information that was
     * previously recorded. You will be able to access the previously recorded
     * information by using the GetResourceConfigHistory action,
     * but you will not be able to access this information in the AWS Config
     * console until you create a new configuration recorder.
     * 
     * 
     * @param deleteConfigurationRecorderRequest
     *        The request object for the
     *        DeleteConfigurationRecorder action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DeleteConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DeleteConfigurationRecorder
     */
    java.util.concurrent.Future deleteConfigurationRecorderAsync(
            DeleteConfigurationRecorderRequest deleteConfigurationRecorderRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the delivery channel.
     * 
     * 
     * Before you can delete the delivery channel, you must stop the
     * configuration recorder by using the StopConfigurationRecorder
     * action.
     * 
     * 
     * @param deleteDeliveryChannelRequest
     *        The input for the DeleteDeliveryChannel action. The action
     *        accepts the following data in JSON format.
     * @return A Java Future containing the result of the DeleteDeliveryChannel
     *         operation returned by the service.
     * @sample AmazonConfigAsync.DeleteDeliveryChannel
     */
    java.util.concurrent.Future deleteDeliveryChannelAsync(
            DeleteDeliveryChannelRequest deleteDeliveryChannelRequest);
    /**
     * 
     * Deletes the delivery channel.
     * 
     * 
     * Before you can delete the delivery channel, you must stop the
     * configuration recorder by using the StopConfigurationRecorder
     * action.
     * 
     * 
     * @param deleteDeliveryChannelRequest
     *        The input for the DeleteDeliveryChannel action. The action
     *        accepts the following data in JSON format.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeleteDeliveryChannel
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DeleteDeliveryChannel
     */
    java.util.concurrent.Future deleteDeliveryChannelAsync(
            DeleteDeliveryChannelRequest deleteDeliveryChannelRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes the evaluation results for the specified Config rule. You can
     * specify one Config rule per request. After you delete the evaluation
     * results, you can call the StartConfigRulesEvaluation API to start
     * evaluating your AWS resources against the rule.
     * 
     * 
     * @param deleteEvaluationResultsRequest
     * @return A Java Future containing the result of the
     *         DeleteEvaluationResults operation returned by the service.
     * @sample AmazonConfigAsync.DeleteEvaluationResults
     */
    java.util.concurrent.Future deleteEvaluationResultsAsync(
            DeleteEvaluationResultsRequest deleteEvaluationResultsRequest);
    /**
     * 
     * Deletes the evaluation results for the specified Config rule. You can
     * specify one Config rule per request. After you delete the evaluation
     * results, you can call the StartConfigRulesEvaluation API to start
     * evaluating your AWS resources against the rule.
     * 
     * 
     * @param deleteEvaluationResultsRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DeleteEvaluationResults operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DeleteEvaluationResults
     */
    java.util.concurrent.Future deleteEvaluationResultsAsync(
            DeleteEvaluationResultsRequest deleteEvaluationResultsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Schedules delivery of a configuration snapshot to the Amazon S3 bucket in
     * the specified delivery channel. After the delivery has started, AWS
     * Config sends following notifications using an Amazon SNS topic that you
     * have specified.
     * 
     * 
     * - Notification of starting the delivery.
 
     * - Notification of delivery completed, if the delivery was successfully
     * completed.
 
     * - Notification of delivery failure, if the delivery failed to complete.
     * 
 
     * 
     * 
     * @param deliverConfigSnapshotRequest
     *        The input for the DeliverConfigSnapshot action.
     * @return A Java Future containing the result of the DeliverConfigSnapshot
     *         operation returned by the service.
     * @sample AmazonConfigAsync.DeliverConfigSnapshot
     */
    java.util.concurrent.Future deliverConfigSnapshotAsync(
            DeliverConfigSnapshotRequest deliverConfigSnapshotRequest);
    /**
     * 
     * Schedules delivery of a configuration snapshot to the Amazon S3 bucket in
     * the specified delivery channel. After the delivery has started, AWS
     * Config sends following notifications using an Amazon SNS topic that you
     * have specified.
     * 
     * 
     * - Notification of starting the delivery.
 
     * - Notification of delivery completed, if the delivery was successfully
     * completed.
 
     * - Notification of delivery failure, if the delivery failed to complete.
     * 
 
     * 
     * 
     * @param deliverConfigSnapshotRequest
     *        The input for the DeliverConfigSnapshot action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DeliverConfigSnapshot
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DeliverConfigSnapshot
     */
    java.util.concurrent.Future deliverConfigSnapshotAsync(
            DeliverConfigSnapshotRequest deliverConfigSnapshotRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Indicates whether the specified AWS Config rules are compliant. If a rule
     * is noncompliant, this action returns the number of AWS resources that do
     * not comply with the rule.
     * 
     * 
     * A rule is compliant if all of the evaluated resources comply with it, and
     * it is noncompliant if any of these resources do not comply.
     * 
     * 
     * If AWS Config has no current evaluation results for the rule, it returns
     * INSUFFICIENT_DATA. This result might indicate one of the
     * following conditions:
     * 
     * 
     * - AWS Config has never invoked an evaluation for the rule. To check
     * whether it has, use the 
DescribeConfigRuleEvaluationStatus
     * action to get the LastSuccessfulInvocationTime and
     * LastFailedInvocationTime. 
     * - The rule's AWS Lambda function is failing to send evaluation results
     * to AWS Config. Verify that the role that you assigned to your
     * configuration recorder includes the 
config:PutEvaluations
     * permission. If the rule is a custom rule, verify that the AWS Lambda
     * execution role includes the config:PutEvaluations
     * permission. 
     * - The rule's AWS Lambda function has returned
     * 
NOT_APPLICABLE for all evaluation results. This can occur if
     * the resources were deleted or removed from the rule's scope. 
     * 
     * 
     * @param describeComplianceByConfigRuleRequest
     * @return A Java Future containing the result of the
     *         DescribeComplianceByConfigRule operation returned by the service.
     * @sample AmazonConfigAsync.DescribeComplianceByConfigRule
     */
    java.util.concurrent.Future describeComplianceByConfigRuleAsync(
            DescribeComplianceByConfigRuleRequest describeComplianceByConfigRuleRequest);
    /**
     * 
     * Indicates whether the specified AWS Config rules are compliant. If a rule
     * is noncompliant, this action returns the number of AWS resources that do
     * not comply with the rule.
     * 
     * 
     * A rule is compliant if all of the evaluated resources comply with it, and
     * it is noncompliant if any of these resources do not comply.
     * 
     * 
     * If AWS Config has no current evaluation results for the rule, it returns
     * INSUFFICIENT_DATA. This result might indicate one of the
     * following conditions:
     * 
     * 
     * - AWS Config has never invoked an evaluation for the rule. To check
     * whether it has, use the 
DescribeConfigRuleEvaluationStatus
     * action to get the LastSuccessfulInvocationTime and
     * LastFailedInvocationTime. 
     * - The rule's AWS Lambda function is failing to send evaluation results
     * to AWS Config. Verify that the role that you assigned to your
     * configuration recorder includes the 
config:PutEvaluations
     * permission. If the rule is a custom rule, verify that the AWS Lambda
     * execution role includes the config:PutEvaluations
     * permission. 
     * - The rule's AWS Lambda function has returned
     * 
NOT_APPLICABLE for all evaluation results. This can occur if
     * the resources were deleted or removed from the rule's scope. 
     * 
     * 
     * @param describeComplianceByConfigRuleRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeComplianceByConfigRule operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DescribeComplianceByConfigRule
     */
    java.util.concurrent.Future describeComplianceByConfigRuleAsync(
            DescribeComplianceByConfigRuleRequest describeComplianceByConfigRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DescribeComplianceByConfigRule
     * operation.
     *
     * @see #describeComplianceByConfigRuleAsync(DescribeComplianceByConfigRuleRequest)
     */
    java.util.concurrent.Future describeComplianceByConfigRuleAsync();
    /**
     * Simplified method form for invoking the DescribeComplianceByConfigRule
     * operation with an AsyncHandler.
     *
     * @see #describeComplianceByConfigRuleAsync(DescribeComplianceByConfigRuleRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeComplianceByConfigRuleAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Indicates whether the specified AWS resources are compliant. If a
     * resource is noncompliant, this action returns the number of AWS Config
     * rules that the resource does not comply with.
     * 
     * 
     * A resource is compliant if it complies with all the AWS Config rules that
     * evaluate it. It is noncompliant if it does not comply with one or more of
     * these rules.
     * 
     * 
     * If AWS Config has no current evaluation results for the resource, it
     * returns INSUFFICIENT_DATA. This result might indicate one of
     * the following conditions about the rules that evaluate the resource:
     * 
     * 
     * - AWS Config has never invoked an evaluation for the rule. To check
     * whether it has, use the 
DescribeConfigRuleEvaluationStatus
     * action to get the LastSuccessfulInvocationTime and
     * LastFailedInvocationTime. 
     * - The rule's AWS Lambda function is failing to send evaluation results
     * to AWS Config. Verify that the role that you assigned to your
     * configuration recorder includes the 
config:PutEvaluations
     * permission. If the rule is a custom rule, verify that the AWS Lambda
     * execution role includes the config:PutEvaluations
     * permission. 
     * - The rule's AWS Lambda function has returned
     * 
NOT_APPLICABLE for all evaluation results. This can occur if
     * the resources were deleted or removed from the rule's scope. 
     * 
     * 
     * @param describeComplianceByResourceRequest
     * @return A Java Future containing the result of the
     *         DescribeComplianceByResource operation returned by the service.
     * @sample AmazonConfigAsync.DescribeComplianceByResource
     */
    java.util.concurrent.Future describeComplianceByResourceAsync(
            DescribeComplianceByResourceRequest describeComplianceByResourceRequest);
    /**
     * 
     * Indicates whether the specified AWS resources are compliant. If a
     * resource is noncompliant, this action returns the number of AWS Config
     * rules that the resource does not comply with.
     * 
     * 
     * A resource is compliant if it complies with all the AWS Config rules that
     * evaluate it. It is noncompliant if it does not comply with one or more of
     * these rules.
     * 
     * 
     * If AWS Config has no current evaluation results for the resource, it
     * returns INSUFFICIENT_DATA. This result might indicate one of
     * the following conditions about the rules that evaluate the resource:
     * 
     * 
     * - AWS Config has never invoked an evaluation for the rule. To check
     * whether it has, use the 
DescribeConfigRuleEvaluationStatus
     * action to get the LastSuccessfulInvocationTime and
     * LastFailedInvocationTime. 
     * - The rule's AWS Lambda function is failing to send evaluation results
     * to AWS Config. Verify that the role that you assigned to your
     * configuration recorder includes the 
config:PutEvaluations
     * permission. If the rule is a custom rule, verify that the AWS Lambda
     * execution role includes the config:PutEvaluations
     * permission. 
     * - The rule's AWS Lambda function has returned
     * 
NOT_APPLICABLE for all evaluation results. This can occur if
     * the resources were deleted or removed from the rule's scope. 
     * 
     * 
     * @param describeComplianceByResourceRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeComplianceByResource operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DescribeComplianceByResource
     */
    java.util.concurrent.Future describeComplianceByResourceAsync(
            DescribeComplianceByResourceRequest describeComplianceByResourceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DescribeComplianceByResource
     * operation.
     *
     * @see #describeComplianceByResourceAsync(DescribeComplianceByResourceRequest)
     */
    java.util.concurrent.Future describeComplianceByResourceAsync();
    /**
     * Simplified method form for invoking the DescribeComplianceByResource
     * operation with an AsyncHandler.
     *
     * @see #describeComplianceByResourceAsync(DescribeComplianceByResourceRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeComplianceByResourceAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns status information for each of your AWS managed Config rules. The
     * status includes information such as the last time AWS Config invoked the
     * rule, the last time AWS Config failed to invoke the rule, and the related
     * error for the last failure.
     * 
     * 
     * @param describeConfigRuleEvaluationStatusRequest
     * @return A Java Future containing the result of the
     *         DescribeConfigRuleEvaluationStatus operation returned by the
     *         service.
     * @sample AmazonConfigAsync.DescribeConfigRuleEvaluationStatus
     */
    java.util.concurrent.Future describeConfigRuleEvaluationStatusAsync(
            DescribeConfigRuleEvaluationStatusRequest describeConfigRuleEvaluationStatusRequest);
    /**
     * 
     * Returns status information for each of your AWS managed Config rules. The
     * status includes information such as the last time AWS Config invoked the
     * rule, the last time AWS Config failed to invoke the rule, and the related
     * error for the last failure.
     * 
     * 
     * @param describeConfigRuleEvaluationStatusRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeConfigRuleEvaluationStatus operation returned by the
     *         service.
     * @sample AmazonConfigAsyncHandler.DescribeConfigRuleEvaluationStatus
     */
    java.util.concurrent.Future describeConfigRuleEvaluationStatusAsync(
            DescribeConfigRuleEvaluationStatusRequest describeConfigRuleEvaluationStatusRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the
     * DescribeConfigRuleEvaluationStatus operation.
     *
     * @see #describeConfigRuleEvaluationStatusAsync(DescribeConfigRuleEvaluationStatusRequest)
     */
    java.util.concurrent.Future describeConfigRuleEvaluationStatusAsync();
    /**
     * Simplified method form for invoking the
     * DescribeConfigRuleEvaluationStatus operation with an AsyncHandler.
     *
     * @see #describeConfigRuleEvaluationStatusAsync(DescribeConfigRuleEvaluationStatusRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeConfigRuleEvaluationStatusAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns details about your AWS Config rules.
     * 
     * 
     * @param describeConfigRulesRequest
     * @return A Java Future containing the result of the DescribeConfigRules
     *         operation returned by the service.
     * @sample AmazonConfigAsync.DescribeConfigRules
     */
    java.util.concurrent.Future describeConfigRulesAsync(
            DescribeConfigRulesRequest describeConfigRulesRequest);
    /**
     * 
     * Returns details about your AWS Config rules.
     * 
     * 
     * @param describeConfigRulesRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the DescribeConfigRules
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DescribeConfigRules
     */
    java.util.concurrent.Future describeConfigRulesAsync(
            DescribeConfigRulesRequest describeConfigRulesRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DescribeConfigRules operation.
     *
     * @see #describeConfigRulesAsync(DescribeConfigRulesRequest)
     */
    java.util.concurrent.Future describeConfigRulesAsync();
    /**
     * Simplified method form for invoking the DescribeConfigRules operation
     * with an AsyncHandler.
     *
     * @see #describeConfigRulesAsync(DescribeConfigRulesRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeConfigRulesAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the current status of the specified configuration recorder. If a
     * configuration recorder is not specified, this action returns the status
     * of all configuration recorder associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one configuration recorder per account.
     * 
     *  
     * 
     * @param describeConfigurationRecorderStatusRequest
     *        The input for the DescribeConfigurationRecorderStatus
     *        action.
     * @return A Java Future containing the result of the
     *         DescribeConfigurationRecorderStatus operation returned by the
     *         service.
     * @sample AmazonConfigAsync.DescribeConfigurationRecorderStatus
     */
    java.util.concurrent.Future describeConfigurationRecorderStatusAsync(
            DescribeConfigurationRecorderStatusRequest describeConfigurationRecorderStatusRequest);
    /**
     * 
     * Returns the current status of the specified configuration recorder. If a
     * configuration recorder is not specified, this action returns the status
     * of all configuration recorder associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one configuration recorder per account.
     * 
     *  
     * 
     * @param describeConfigurationRecorderStatusRequest
     *        The input for the DescribeConfigurationRecorderStatus
     *        action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeConfigurationRecorderStatus operation returned by the
     *         service.
     * @sample AmazonConfigAsyncHandler.DescribeConfigurationRecorderStatus
     */
    java.util.concurrent.Future describeConfigurationRecorderStatusAsync(
            DescribeConfigurationRecorderStatusRequest describeConfigurationRecorderStatusRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the
     * DescribeConfigurationRecorderStatus operation.
     *
     * @see #describeConfigurationRecorderStatusAsync(DescribeConfigurationRecorderStatusRequest)
     */
    java.util.concurrent.Future describeConfigurationRecorderStatusAsync();
    /**
     * Simplified method form for invoking the
     * DescribeConfigurationRecorderStatus operation with an AsyncHandler.
     *
     * @see #describeConfigurationRecorderStatusAsync(DescribeConfigurationRecorderStatusRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeConfigurationRecorderStatusAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the name of one or more specified configuration recorders. If the
     * recorder name is not specified, this action returns the names of all the
     * configuration recorders associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one configuration recorder per account.
     * 
     *  
     * 
     * @param describeConfigurationRecordersRequest
     *        The input for the DescribeConfigurationRecorders action.
     * @return A Java Future containing the result of the
     *         DescribeConfigurationRecorders operation returned by the service.
     * @sample AmazonConfigAsync.DescribeConfigurationRecorders
     */
    java.util.concurrent.Future describeConfigurationRecordersAsync(
            DescribeConfigurationRecordersRequest describeConfigurationRecordersRequest);
    /**
     * 
     * Returns the name of one or more specified configuration recorders. If the
     * recorder name is not specified, this action returns the names of all the
     * configuration recorders associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one configuration recorder per account.
     * 
     *  
     * 
     * @param describeConfigurationRecordersRequest
     *        The input for the DescribeConfigurationRecorders action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeConfigurationRecorders operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DescribeConfigurationRecorders
     */
    java.util.concurrent.Future describeConfigurationRecordersAsync(
            DescribeConfigurationRecordersRequest describeConfigurationRecordersRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DescribeConfigurationRecorders
     * operation.
     *
     * @see #describeConfigurationRecordersAsync(DescribeConfigurationRecordersRequest)
     */
    java.util.concurrent.Future describeConfigurationRecordersAsync();
    /**
     * Simplified method form for invoking the DescribeConfigurationRecorders
     * operation with an AsyncHandler.
     *
     * @see #describeConfigurationRecordersAsync(DescribeConfigurationRecordersRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeConfigurationRecordersAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the current status of the specified delivery channel. If a
     * delivery channel is not specified, this action returns the current status
     * of all delivery channels associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one delivery channel per account.
     * 
     *  
     * 
     * @param describeDeliveryChannelStatusRequest
     *        The input for the DeliveryChannelStatus action.
     * @return A Java Future containing the result of the
     *         DescribeDeliveryChannelStatus operation returned by the service.
     * @sample AmazonConfigAsync.DescribeDeliveryChannelStatus
     */
    java.util.concurrent.Future describeDeliveryChannelStatusAsync(
            DescribeDeliveryChannelStatusRequest describeDeliveryChannelStatusRequest);
    /**
     * 
     * Returns the current status of the specified delivery channel. If a
     * delivery channel is not specified, this action returns the current status
     * of all delivery channels associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one delivery channel per account.
     * 
     *  
     * 
     * @param describeDeliveryChannelStatusRequest
     *        The input for the DeliveryChannelStatus action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeDeliveryChannelStatus operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DescribeDeliveryChannelStatus
     */
    java.util.concurrent.Future describeDeliveryChannelStatusAsync(
            DescribeDeliveryChannelStatusRequest describeDeliveryChannelStatusRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DescribeDeliveryChannelStatus
     * operation.
     *
     * @see #describeDeliveryChannelStatusAsync(DescribeDeliveryChannelStatusRequest)
     */
    java.util.concurrent.Future describeDeliveryChannelStatusAsync();
    /**
     * Simplified method form for invoking the DescribeDeliveryChannelStatus
     * operation with an AsyncHandler.
     *
     * @see #describeDeliveryChannelStatusAsync(DescribeDeliveryChannelStatusRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeDeliveryChannelStatusAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns details about the specified delivery channel. If a delivery
     * channel is not specified, this action returns the details of all delivery
     * channels associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one delivery channel per account.
     * 
     *  
     * 
     * @param describeDeliveryChannelsRequest
     *        The input for the DescribeDeliveryChannels action.
     * @return A Java Future containing the result of the
     *         DescribeDeliveryChannels operation returned by the service.
     * @sample AmazonConfigAsync.DescribeDeliveryChannels
     */
    java.util.concurrent.Future describeDeliveryChannelsAsync(
            DescribeDeliveryChannelsRequest describeDeliveryChannelsRequest);
    /**
     * 
     * Returns details about the specified delivery channel. If a delivery
     * channel is not specified, this action returns the details of all delivery
     * channels associated with the account.
     * 
     * 
     * 
     * Currently, you can specify only one delivery channel per account.
     * 
     *  
     * 
     * @param describeDeliveryChannelsRequest
     *        The input for the DescribeDeliveryChannels action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         DescribeDeliveryChannels operation returned by the service.
     * @sample AmazonConfigAsyncHandler.DescribeDeliveryChannels
     */
    java.util.concurrent.Future describeDeliveryChannelsAsync(
            DescribeDeliveryChannelsRequest describeDeliveryChannelsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the DescribeDeliveryChannels
     * operation.
     *
     * @see #describeDeliveryChannelsAsync(DescribeDeliveryChannelsRequest)
     */
    java.util.concurrent.Future describeDeliveryChannelsAsync();
    /**
     * Simplified method form for invoking the DescribeDeliveryChannels
     * operation with an AsyncHandler.
     *
     * @see #describeDeliveryChannelsAsync(DescribeDeliveryChannelsRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future describeDeliveryChannelsAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the evaluation results for the specified AWS Config rule. The
     * results indicate which AWS resources were evaluated by the rule, when
     * each resource was last evaluated, and whether each resource complies with
     * the rule.
     * 
     * 
     * @param getComplianceDetailsByConfigRuleRequest
     * @return A Java Future containing the result of the
     *         GetComplianceDetailsByConfigRule operation returned by the
     *         service.
     * @sample AmazonConfigAsync.GetComplianceDetailsByConfigRule
     */
    java.util.concurrent.Future getComplianceDetailsByConfigRuleAsync(
            GetComplianceDetailsByConfigRuleRequest getComplianceDetailsByConfigRuleRequest);
    /**
     * 
     * Returns the evaluation results for the specified AWS Config rule. The
     * results indicate which AWS resources were evaluated by the rule, when
     * each resource was last evaluated, and whether each resource complies with
     * the rule.
     * 
     * 
     * @param getComplianceDetailsByConfigRuleRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         GetComplianceDetailsByConfigRule operation returned by the
     *         service.
     * @sample AmazonConfigAsyncHandler.GetComplianceDetailsByConfigRule
     */
    java.util.concurrent.Future getComplianceDetailsByConfigRuleAsync(
            GetComplianceDetailsByConfigRuleRequest getComplianceDetailsByConfigRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the evaluation results for the specified AWS resource. The
     * results indicate which AWS Config rules were used to evaluate the
     * resource, when each rule was last used, and whether the resource complies
     * with each rule.
     * 
     * 
     * @param getComplianceDetailsByResourceRequest
     * @return A Java Future containing the result of the
     *         GetComplianceDetailsByResource operation returned by the service.
     * @sample AmazonConfigAsync.GetComplianceDetailsByResource
     */
    java.util.concurrent.Future getComplianceDetailsByResourceAsync(
            GetComplianceDetailsByResourceRequest getComplianceDetailsByResourceRequest);
    /**
     * 
     * Returns the evaluation results for the specified AWS resource. The
     * results indicate which AWS Config rules were used to evaluate the
     * resource, when each rule was last used, and whether the resource complies
     * with each rule.
     * 
     * 
     * @param getComplianceDetailsByResourceRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         GetComplianceDetailsByResource operation returned by the service.
     * @sample AmazonConfigAsyncHandler.GetComplianceDetailsByResource
     */
    java.util.concurrent.Future getComplianceDetailsByResourceAsync(
            GetComplianceDetailsByResourceRequest getComplianceDetailsByResourceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the number of AWS Config rules that are compliant and
     * noncompliant, up to a maximum of 25 for each.
     * 
     * 
     * @param getComplianceSummaryByConfigRuleRequest
     * @return A Java Future containing the result of the
     *         GetComplianceSummaryByConfigRule operation returned by the
     *         service.
     * @sample AmazonConfigAsync.GetComplianceSummaryByConfigRule
     */
    java.util.concurrent.Future getComplianceSummaryByConfigRuleAsync(
            GetComplianceSummaryByConfigRuleRequest getComplianceSummaryByConfigRuleRequest);
    /**
     * 
     * Returns the number of AWS Config rules that are compliant and
     * noncompliant, up to a maximum of 25 for each.
     * 
     * 
     * @param getComplianceSummaryByConfigRuleRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         GetComplianceSummaryByConfigRule operation returned by the
     *         service.
     * @sample AmazonConfigAsyncHandler.GetComplianceSummaryByConfigRule
     */
    java.util.concurrent.Future getComplianceSummaryByConfigRuleAsync(
            GetComplianceSummaryByConfigRuleRequest getComplianceSummaryByConfigRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the GetComplianceSummaryByConfigRule
     * operation.
     *
     * @see #getComplianceSummaryByConfigRuleAsync(GetComplianceSummaryByConfigRuleRequest)
     */
    java.util.concurrent.Future getComplianceSummaryByConfigRuleAsync();
    /**
     * Simplified method form for invoking the GetComplianceSummaryByConfigRule
     * operation with an AsyncHandler.
     *
     * @see #getComplianceSummaryByConfigRuleAsync(GetComplianceSummaryByConfigRuleRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future getComplianceSummaryByConfigRuleAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns the number of resources that are compliant and the number that
     * are noncompliant. You can specify one or more resource types to get these
     * numbers for each resource type. The maximum number returned is 100.
     * 
     * 
     * @param getComplianceSummaryByResourceTypeRequest
     * @return A Java Future containing the result of the
     *         GetComplianceSummaryByResourceType operation returned by the
     *         service.
     * @sample AmazonConfigAsync.GetComplianceSummaryByResourceType
     */
    java.util.concurrent.Future getComplianceSummaryByResourceTypeAsync(
            GetComplianceSummaryByResourceTypeRequest getComplianceSummaryByResourceTypeRequest);
    /**
     * 
     * Returns the number of resources that are compliant and the number that
     * are noncompliant. You can specify one or more resource types to get these
     * numbers for each resource type. The maximum number returned is 100.
     * 
     * 
     * @param getComplianceSummaryByResourceTypeRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         GetComplianceSummaryByResourceType operation returned by the
     *         service.
     * @sample AmazonConfigAsyncHandler.GetComplianceSummaryByResourceType
     */
    java.util.concurrent.Future getComplianceSummaryByResourceTypeAsync(
            GetComplianceSummaryByResourceTypeRequest getComplianceSummaryByResourceTypeRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * Simplified method form for invoking the
     * GetComplianceSummaryByResourceType operation.
     *
     * @see #getComplianceSummaryByResourceTypeAsync(GetComplianceSummaryByResourceTypeRequest)
     */
    java.util.concurrent.Future getComplianceSummaryByResourceTypeAsync();
    /**
     * Simplified method form for invoking the
     * GetComplianceSummaryByResourceType operation with an AsyncHandler.
     *
     * @see #getComplianceSummaryByResourceTypeAsync(GetComplianceSummaryByResourceTypeRequest,
     *      com.amazonaws.handlers.AsyncHandler)
     */
    java.util.concurrent.Future getComplianceSummaryByResourceTypeAsync(
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns a list of configuration items for the specified resource. The
     * list contains details about each state of the resource during the
     * specified time interval.
     * 
     * 
     * The response is paginated, and by default, AWS Config returns a limit of
     * 10 configuration items per page. You can customize this number with the
     * limit parameter. The response includes a
     * nextToken string, and to get the next page of results, run
     * the request again and enter this string for the nextToken
     * parameter.
     * 
     * 
     * 
     * Each call to the API is limited to span a duration of seven days. It is
     * likely that the number of records returned is smaller than the specified
     * limit. In such cases, you can make another call, using the
     * nextToken.
     * 
     *  
     * 
     * @param getResourceConfigHistoryRequest
     *        The input for the GetResourceConfigHistory action.
     * @return A Java Future containing the result of the
     *         GetResourceConfigHistory operation returned by the service.
     * @sample AmazonConfigAsync.GetResourceConfigHistory
     */
    java.util.concurrent.Future getResourceConfigHistoryAsync(
            GetResourceConfigHistoryRequest getResourceConfigHistoryRequest);
    /**
     * 
     * Returns a list of configuration items for the specified resource. The
     * list contains details about each state of the resource during the
     * specified time interval.
     * 
     * 
     * The response is paginated, and by default, AWS Config returns a limit of
     * 10 configuration items per page. You can customize this number with the
     * limit parameter. The response includes a
     * nextToken string, and to get the next page of results, run
     * the request again and enter this string for the nextToken
     * parameter.
     * 
     * 
     * 
     * Each call to the API is limited to span a duration of seven days. It is
     * likely that the number of records returned is smaller than the specified
     * limit. In such cases, you can make another call, using the
     * nextToken.
     * 
     *  
     * 
     * @param getResourceConfigHistoryRequest
     *        The input for the GetResourceConfigHistory action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         GetResourceConfigHistory operation returned by the service.
     * @sample AmazonConfigAsyncHandler.GetResourceConfigHistory
     */
    java.util.concurrent.Future getResourceConfigHistoryAsync(
            GetResourceConfigHistoryRequest getResourceConfigHistoryRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Accepts a resource type and returns a list of resource identifiers for
     * the resources of that type. A resource identifier includes the resource
     * type, ID, and (if available) the custom resource name. The results
     * consist of resources that AWS Config has discovered, including those that
     * AWS Config is not currently recording. You can narrow the results to
     * include only resources that have specific resource IDs or a resource
     * name.
     * 
     * 
     * 
     * You can specify either resource IDs or a resource name but not both in
     * the same request.
     * 
     *  
     * 
     * The response is paginated, and by default AWS Config lists 100 resource
     * identifiers on each page. You can customize this number with the
     * limit parameter. The response includes a
     * nextToken string, and to get the next page of results, run
     * the request again and enter this string for the nextToken
     * parameter.
     * 
     * 
     * @param listDiscoveredResourcesRequest
     * @return A Java Future containing the result of the
     *         ListDiscoveredResources operation returned by the service.
     * @sample AmazonConfigAsync.ListDiscoveredResources
     */
    java.util.concurrent.Future listDiscoveredResourcesAsync(
            ListDiscoveredResourcesRequest listDiscoveredResourcesRequest);
    /**
     * 
     * Accepts a resource type and returns a list of resource identifiers for
     * the resources of that type. A resource identifier includes the resource
     * type, ID, and (if available) the custom resource name. The results
     * consist of resources that AWS Config has discovered, including those that
     * AWS Config is not currently recording. You can narrow the results to
     * include only resources that have specific resource IDs or a resource
     * name.
     * 
     * 
     * 
     * You can specify either resource IDs or a resource name but not both in
     * the same request.
     * 
     *  
     * 
     * The response is paginated, and by default AWS Config lists 100 resource
     * identifiers on each page. You can customize this number with the
     * limit parameter. The response includes a
     * nextToken string, and to get the next page of results, run
     * the request again and enter this string for the nextToken
     * parameter.
     * 
     * 
     * @param listDiscoveredResourcesRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         ListDiscoveredResources operation returned by the service.
     * @sample AmazonConfigAsyncHandler.ListDiscoveredResources
     */
    java.util.concurrent.Future listDiscoveredResourcesAsync(
            ListDiscoveredResourcesRequest listDiscoveredResourcesRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Adds or updates an AWS Config rule for evaluating whether your AWS
     * resources comply with your desired configurations.
     * 
     * 
     * You can use this action for custom Config rules and AWS managed Config
     * rules. A custom Config rule is a rule that you develop and maintain. An
     * AWS managed Config rule is a customizable, predefined rule that AWS
     * Config provides.
     * 
     * 
     * If you are adding a new custom Config rule, you must first create the AWS
     * Lambda function that the rule invokes to evaluate your resources. When
     * you use the PutConfigRule action to add the rule to AWS
     * Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda
     * assigns to the function. Specify the ARN for the
     * SourceIdentifier key. This key is part of the
     * Source object, which is part of the ConfigRule
     * object.
     * 
     * 
     * If you are adding a new AWS managed Config rule, specify the rule's
     * identifier for the SourceIdentifier key. To reference AWS
     * managed Config rule identifiers, see Using AWS Managed Config Rules.
     * 
     * 
     * For any new rule that you add, specify the ConfigRuleName in
     * the ConfigRule object. Do not specify the
     * ConfigRuleArn or the ConfigRuleId. These values
     * are generated by AWS Config for new rules.
     * 
     * 
     * If you are updating a rule that you have added previously, specify the
     * rule's ConfigRuleName, ConfigRuleId, or
     * ConfigRuleArn in the ConfigRule data type that
     * you use in this request.
     * 
     * 
     * The maximum number of rules that AWS Config supports is 25.
     * 
     * 
     * For more information about developing and using AWS Config rules, see Evaluating AWS Resource Configurations with AWS Config in the AWS
     * Config Developer Guide.
     * 
     * 
     * 
     * @param putConfigRuleRequest
     * @return A Java Future containing the result of the PutConfigRule
     *         operation returned by the service.
     * @sample AmazonConfigAsync.PutConfigRule
     */
    java.util.concurrent.Future putConfigRuleAsync(
            PutConfigRuleRequest putConfigRuleRequest);
    /**
     * 
     * Adds or updates an AWS Config rule for evaluating whether your AWS
     * resources comply with your desired configurations.
     * 
     * 
     * You can use this action for custom Config rules and AWS managed Config
     * rules. A custom Config rule is a rule that you develop and maintain. An
     * AWS managed Config rule is a customizable, predefined rule that AWS
     * Config provides.
     * 
     * 
     * If you are adding a new custom Config rule, you must first create the AWS
     * Lambda function that the rule invokes to evaluate your resources. When
     * you use the PutConfigRule action to add the rule to AWS
     * Config, you must specify the Amazon Resource Name (ARN) that AWS Lambda
     * assigns to the function. Specify the ARN for the
     * SourceIdentifier key. This key is part of the
     * Source object, which is part of the ConfigRule
     * object.
     * 
     * 
     * If you are adding a new AWS managed Config rule, specify the rule's
     * identifier for the SourceIdentifier key. To reference AWS
     * managed Config rule identifiers, see Using AWS Managed Config Rules.
     * 
     * 
     * For any new rule that you add, specify the ConfigRuleName in
     * the ConfigRule object. Do not specify the
     * ConfigRuleArn or the ConfigRuleId. These values
     * are generated by AWS Config for new rules.
     * 
     * 
     * If you are updating a rule that you have added previously, specify the
     * rule's ConfigRuleName, ConfigRuleId, or
     * ConfigRuleArn in the ConfigRule data type that
     * you use in this request.
     * 
     * 
     * The maximum number of rules that AWS Config supports is 25.
     * 
     * 
     * For more information about developing and using AWS Config rules, see Evaluating AWS Resource Configurations with AWS Config in the AWS
     * Config Developer Guide.
     * 
     * 
     * 
     * @param putConfigRuleRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the PutConfigRule
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.PutConfigRule
     */
    java.util.concurrent.Future putConfigRuleAsync(
            PutConfigRuleRequest putConfigRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a new configuration recorder to record the selected resource
     * configurations.
     * 
     * 
     * You can use this action to change the role roleARN and/or
     * the recordingGroup of an existing recorder. To change the
     * role, call the action on the existing configuration recorder and specify
     * a role.
     * 
     * 
     * 
     * Currently, you can specify only one configuration recorder per account.
     * 
     * 
     * If ConfigurationRecorder does not have the
     * recordingGroup parameter specified, the default is to record all
     * supported resource types.
     * 
     *  
     * 
     * @param putConfigurationRecorderRequest
     *        The input for the PutConfigurationRecorder action.
     * @return A Java Future containing the result of the
     *         PutConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsync.PutConfigurationRecorder
     */
    java.util.concurrent.Future putConfigurationRecorderAsync(
            PutConfigurationRecorderRequest putConfigurationRecorderRequest);
    /**
     * 
     * Creates a new configuration recorder to record the selected resource
     * configurations.
     * 
     * 
     * You can use this action to change the role roleARN and/or
     * the recordingGroup of an existing recorder. To change the
     * role, call the action on the existing configuration recorder and specify
     * a role.
     * 
     * 
     * 
     * Currently, you can specify only one configuration recorder per account.
     * 
     * 
     * If ConfigurationRecorder does not have the
     * recordingGroup parameter specified, the default is to record all
     * supported resource types.
     * 
     *  
     * 
     * @param putConfigurationRecorderRequest
     *        The input for the PutConfigurationRecorder action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         PutConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsyncHandler.PutConfigurationRecorder
     */
    java.util.concurrent.Future putConfigurationRecorderAsync(
            PutConfigurationRecorderRequest putConfigurationRecorderRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a delivery channel object to deliver configuration information to
     * an Amazon S3 bucket and Amazon SNS topic.
     * 
     * 
     * Before you can create a delivery channel, you must create a configuration
     * recorder.
     * 
     * 
     * You can use this action to change the Amazon S3 bucket or an Amazon SNS
     * topic of the existing delivery channel. To change the Amazon S3 bucket or
     * an Amazon SNS topic, call this action and specify the changed values for
     * the S3 bucket and the SNS topic. If you specify a different value for
     * either the S3 bucket or the SNS topic, this action will keep the existing
     * value for the parameter that is not changed.
     * 
     * 
     * 
     * You can have only one delivery channel per AWS account.
     * 
     *  
     * 
     * @param putDeliveryChannelRequest
     *        The input for the PutDeliveryChannel action.
     * @return A Java Future containing the result of the PutDeliveryChannel
     *         operation returned by the service.
     * @sample AmazonConfigAsync.PutDeliveryChannel
     */
    java.util.concurrent.Future putDeliveryChannelAsync(
            PutDeliveryChannelRequest putDeliveryChannelRequest);
    /**
     * 
     * Creates a delivery channel object to deliver configuration information to
     * an Amazon S3 bucket and Amazon SNS topic.
     * 
     * 
     * Before you can create a delivery channel, you must create a configuration
     * recorder.
     * 
     * 
     * You can use this action to change the Amazon S3 bucket or an Amazon SNS
     * topic of the existing delivery channel. To change the Amazon S3 bucket or
     * an Amazon SNS topic, call this action and specify the changed values for
     * the S3 bucket and the SNS topic. If you specify a different value for
     * either the S3 bucket or the SNS topic, this action will keep the existing
     * value for the parameter that is not changed.
     * 
     * 
     * 
     * You can have only one delivery channel per AWS account.
     * 
     *  
     * 
     * @param putDeliveryChannelRequest
     *        The input for the PutDeliveryChannel action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the PutDeliveryChannel
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.PutDeliveryChannel
     */
    java.util.concurrent.Future putDeliveryChannelAsync(
            PutDeliveryChannelRequest putDeliveryChannelRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Used by an AWS Lambda function to deliver evaluation results to AWS
     * Config. This action is required in every AWS Lambda function that is
     * invoked by an AWS Config rule.
     * 
     * 
     * @param putEvaluationsRequest
     * @return A Java Future containing the result of the PutEvaluations
     *         operation returned by the service.
     * @sample AmazonConfigAsync.PutEvaluations
     */
    java.util.concurrent.Future putEvaluationsAsync(
            PutEvaluationsRequest putEvaluationsRequest);
    /**
     * 
     * Used by an AWS Lambda function to deliver evaluation results to AWS
     * Config. This action is required in every AWS Lambda function that is
     * invoked by an AWS Config rule.
     * 
     * 
     * @param putEvaluationsRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the PutEvaluations
     *         operation returned by the service.
     * @sample AmazonConfigAsyncHandler.PutEvaluations
     */
    java.util.concurrent.Future putEvaluationsAsync(
            PutEvaluationsRequest putEvaluationsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Evaluates your resources against the specified Config rules. You can
     * specify up to 25 Config rules per request.
     * 
     * 
     * An existing StartConfigRulesEvaluation call must complete for the
     * rules that you specified before you can call the API again. If you chose
     * to have AWS Config stream to an Amazon SNS topic, you will receive a
     * notification when the evaluation starts.
     * 
     * 
     * @param startConfigRulesEvaluationRequest
     * @return A Java Future containing the result of the
     *         StartConfigRulesEvaluation operation returned by the service.
     * @sample AmazonConfigAsync.StartConfigRulesEvaluation
     */
    java.util.concurrent.Future startConfigRulesEvaluationAsync(
            StartConfigRulesEvaluationRequest startConfigRulesEvaluationRequest);
    /**
     * 
     * Evaluates your resources against the specified Config rules. You can
     * specify up to 25 Config rules per request.
     * 
     * 
     * An existing StartConfigRulesEvaluation call must complete for the
     * rules that you specified before you can call the API again. If you chose
     * to have AWS Config stream to an Amazon SNS topic, you will receive a
     * notification when the evaluation starts.
     * 
     * 
     * @param startConfigRulesEvaluationRequest
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         StartConfigRulesEvaluation operation returned by the service.
     * @sample AmazonConfigAsyncHandler.StartConfigRulesEvaluation
     */
    java.util.concurrent.Future startConfigRulesEvaluationAsync(
            StartConfigRulesEvaluationRequest startConfigRulesEvaluationRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Starts recording configurations of the AWS resources you have selected to
     * record in your AWS account.
     * 
     * 
     * You must have created at least one delivery channel to successfully start
     * the configuration recorder.
     * 
     * 
     * @param startConfigurationRecorderRequest
     *        The input for the StartConfigurationRecorder action.
     * @return A Java Future containing the result of the
     *         StartConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsync.StartConfigurationRecorder
     */
    java.util.concurrent.Future startConfigurationRecorderAsync(
            StartConfigurationRecorderRequest startConfigurationRecorderRequest);
    /**
     * 
     * Starts recording configurations of the AWS resources you have selected to
     * record in your AWS account.
     * 
     * 
     * You must have created at least one delivery channel to successfully start
     * the configuration recorder.
     * 
     * 
     * @param startConfigurationRecorderRequest
     *        The input for the StartConfigurationRecorder action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         StartConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsyncHandler.StartConfigurationRecorder
     */
    java.util.concurrent.Future startConfigurationRecorderAsync(
            StartConfigurationRecorderRequest startConfigurationRecorderRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Stops recording configurations of the AWS resources you have selected to
     * record in your AWS account.
     * 
     * 
     * @param stopConfigurationRecorderRequest
     *        The input for the StopConfigurationRecorder action.
     * @return A Java Future containing the result of the
     *         StopConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsync.StopConfigurationRecorder
     */
    java.util.concurrent.Future stopConfigurationRecorderAsync(
            StopConfigurationRecorderRequest stopConfigurationRecorderRequest);
    /**
     * 
     * Stops recording configurations of the AWS resources you have selected to
     * record in your AWS account.
     * 
     * 
     * @param stopConfigurationRecorderRequest
     *        The input for the StopConfigurationRecorder action.
     * @param asyncHandler
     *        Asynchronous callback handler for events in the lifecycle of the
     *        request. Users can provide an implementation of the callback
     *        methods in this interface to receive notification of successful or
     *        unsuccessful completion of the operation.
     * @return A Java Future containing the result of the
     *         StopConfigurationRecorder operation returned by the service.
     * @sample AmazonConfigAsyncHandler.StopConfigurationRecorder
     */
    java.util.concurrent.Future stopConfigurationRecorderAsync(
            StopConfigurationRecorderRequest stopConfigurationRecorderRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
}