com.amazonaws.services.route53recoverycontrolconfig.AWSRoute53RecoveryControlConfigAsync Maven / Gradle / Ivy
/*
 * Copyright 2019-2024 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.route53recoverycontrolconfig;
import javax.annotation.Generated;
import com.amazonaws.services.route53recoverycontrolconfig.model.*;
/**
 * Interface for accessing AWS Route53 Recovery Control Config 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.
 * 
 * Note: Do not directly implement this interface, new methods are added to it regularly. Extend from
 * {@link com.amazonaws.services.route53recoverycontrolconfig.AbstractAWSRoute53RecoveryControlConfigAsync} instead.
 * 
 * 
 * 
 * Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller
 * 
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public interface AWSRoute53RecoveryControlConfigAsync extends AWSRoute53RecoveryControlConfig {
    /**
     * 
     * Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to
     * update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name
     * (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you
     * can use with API calls to the cluster data plane.
     * 
     * 
     * @param createClusterRequest
     *        Creates a cluster.
     * @return A Java Future containing the result of the CreateCluster operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.CreateCluster
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createClusterAsync(CreateClusterRequest createClusterRequest);
    /**
     * 
     * Create a new cluster. A cluster is a set of redundant Regional endpoints against which you can run API calls to
     * update or get the state of one or more routing controls. Each cluster has a name, status, Amazon Resource Name
     * (ARN), and an array of the five cluster endpoints (one for each supported Amazon Web Services Region) that you
     * can use with API calls to the cluster data plane.
     * 
     * 
     * @param createClusterRequest
     *        Creates a cluster.
     * @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 CreateCluster operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.CreateCluster
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createClusterAsync(CreateClusterRequest createClusterRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a new control panel. A control panel represents a group of routing controls that can be changed together
     * in a single transaction. You can use a control panel to centrally view the operational status of applications
     * across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an
     * Availability Zone or Amazon Web Services Region.
     * 
     * 
     * @param createControlPanelRequest
     *        The details of the control panel that you're creating.
     * @return A Java Future containing the result of the CreateControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.CreateControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createControlPanelAsync(CreateControlPanelRequest createControlPanelRequest);
    /**
     * 
     * Creates a new control panel. A control panel represents a group of routing controls that can be changed together
     * in a single transaction. You can use a control panel to centrally view the operational status of applications
     * across your organization, and trigger multi-app failovers in a single transaction, for example, to fail over an
     * Availability Zone or Amazon Web Services Region.
     * 
     * 
     * @param createControlPanelRequest
     *        The details of the control panel that you're creating.
     * @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 CreateControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.CreateControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createControlPanelAsync(CreateControlPanelRequest createControlPanelRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a new routing control.
     * 
     * 
     * A routing control has one of two states: ON and OFF. You can map the routing control state to the state of an
     * Amazon Route 53 health check, which can be used to control traffic routing.
     * 
     * 
     * To get or update the routing control state, see the Recovery Cluster (data plane) API actions for Amazon Route 53
     * Application Recovery Controller.
     * 
     * 
     * @param createRoutingControlRequest
     *        The details of the routing control that you're creating.
     * @return A Java Future containing the result of the CreateRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.CreateRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createRoutingControlAsync(CreateRoutingControlRequest createRoutingControlRequest);
    /**
     * 
     * Creates a new routing control.
     * 
     * 
     * A routing control has one of two states: ON and OFF. You can map the routing control state to the state of an
     * Amazon Route 53 health check, which can be used to control traffic routing.
     * 
     * 
     * To get or update the routing control state, see the Recovery Cluster (data plane) API actions for Amazon Route 53
     * Application Recovery Controller.
     * 
     * 
     * @param createRoutingControlRequest
     *        The details of the routing control that you're creating.
     * @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 CreateRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.CreateRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createRoutingControlAsync(CreateRoutingControlRequest createRoutingControlRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Creates a safety rule in a control panel. Safety rules let you add safeguards around changing routing control
     * states, and for enabling and disabling routing controls, to help prevent unexpected outcomes.
     * 
     * 
     * There are two types of safety rules: assertion rules and gating rules.
     * 
     * 
     * Assertion rule: An assertion rule enforces that, when you change a routing control state, that a certain criteria
     * is met. For example, the criteria might be that at least one routing control state is On after the transaction so
     * that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open
     * scenario.
     * 
     * 
     * Gating rule: A gating rule lets you configure a gating routing control as an overall "on/off" switch for a group
     * of routing controls. Or, you can configure more complex gating scenarios, for example by configuring multiple
     * gating routing controls.
     * 
     * 
     * For more information, see Safety rules in
     * the Amazon Route 53 Application Recovery Controller Developer Guide.
     * 
     * 
     * @param createSafetyRuleRequest
     *        The request body that you include when you create a safety rule.
     * @return A Java Future containing the result of the CreateSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.CreateSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createSafetyRuleAsync(CreateSafetyRuleRequest createSafetyRuleRequest);
    /**
     * 
     * Creates a safety rule in a control panel. Safety rules let you add safeguards around changing routing control
     * states, and for enabling and disabling routing controls, to help prevent unexpected outcomes.
     * 
     * 
     * There are two types of safety rules: assertion rules and gating rules.
     * 
     * 
     * Assertion rule: An assertion rule enforces that, when you change a routing control state, that a certain criteria
     * is met. For example, the criteria might be that at least one routing control state is On after the transaction so
     * that traffic continues to flow to at least one cell for the application. This ensures that you avoid a fail-open
     * scenario.
     * 
     * 
     * Gating rule: A gating rule lets you configure a gating routing control as an overall "on/off" switch for a group
     * of routing controls. Or, you can configure more complex gating scenarios, for example by configuring multiple
     * gating routing controls.
     * 
     * 
     * For more information, see Safety rules in
     * the Amazon Route 53 Application Recovery Controller Developer Guide.
     * 
     * 
     * @param createSafetyRuleRequest
     *        The request body that you include when you create a safety rule.
     * @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 CreateSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.CreateSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future createSafetyRuleAsync(CreateSafetyRuleRequest createSafetyRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Delete a cluster.
     * 
     * 
     * @param deleteClusterRequest
     * @return A Java Future containing the result of the DeleteCluster operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DeleteCluster
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteClusterAsync(DeleteClusterRequest deleteClusterRequest);
    /**
     * 
     * Delete a cluster.
     * 
     * 
     * @param deleteClusterRequest
     * @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 DeleteCluster operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DeleteCluster
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteClusterAsync(DeleteClusterRequest deleteClusterRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes a control panel.
     * 
     * 
     * @param deleteControlPanelRequest
     * @return A Java Future containing the result of the DeleteControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DeleteControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteControlPanelAsync(DeleteControlPanelRequest deleteControlPanelRequest);
    /**
     * 
     * Deletes a control panel.
     * 
     * 
     * @param deleteControlPanelRequest
     * @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 DeleteControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DeleteControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteControlPanelAsync(DeleteControlPanelRequest deleteControlPanelRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes a routing control.
     * 
     * 
     * @param deleteRoutingControlRequest
     * @return A Java Future containing the result of the DeleteRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DeleteRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteRoutingControlAsync(DeleteRoutingControlRequest deleteRoutingControlRequest);
    /**
     * 
     * Deletes a routing control.
     * 
     * 
     * @param deleteRoutingControlRequest
     * @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 DeleteRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DeleteRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteRoutingControlAsync(DeleteRoutingControlRequest deleteRoutingControlRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Deletes a safety rule.
     * 
     * />
     * 
     * @param deleteSafetyRuleRequest
     * @return A Java Future containing the result of the DeleteSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DeleteSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteSafetyRuleAsync(DeleteSafetyRuleRequest deleteSafetyRuleRequest);
    /**
     * 
     * Deletes a safety rule.
     * 
     * />
     * 
     * @param deleteSafetyRuleRequest
     * @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 DeleteSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DeleteSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future deleteSafetyRuleAsync(DeleteSafetyRuleRequest deleteSafetyRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Display the details about a cluster. The response includes the cluster name, endpoints, status, and Amazon
     * Resource Name (ARN).
     * 
     * 
     * @param describeClusterRequest
     * @return A Java Future containing the result of the DescribeCluster operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DescribeCluster
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeClusterAsync(DescribeClusterRequest describeClusterRequest);
    /**
     * 
     * Display the details about a cluster. The response includes the cluster name, endpoints, status, and Amazon
     * Resource Name (ARN).
     * 
     * 
     * @param describeClusterRequest
     * @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 DescribeCluster operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DescribeCluster
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeClusterAsync(DescribeClusterRequest describeClusterRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Displays details about a control panel.
     * 
     * 
     * @param describeControlPanelRequest
     * @return A Java Future containing the result of the DescribeControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DescribeControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeControlPanelAsync(DescribeControlPanelRequest describeControlPanelRequest);
    /**
     * 
     * Displays details about a control panel.
     * 
     * 
     * @param describeControlPanelRequest
     * @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 DescribeControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DescribeControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeControlPanelAsync(DescribeControlPanelRequest describeControlPanelRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Displays details about a routing control. A routing control has one of two states: ON and OFF. You can map the
     * routing control state to the state of an Amazon Route 53 health check, which can be used to control routing.
     * 
     * 
     * To get or update the routing control state, see the Recovery Cluster (data plane) API actions for Amazon Route 53
     * Application Recovery Controller.
     * 
     * 
     * @param describeRoutingControlRequest
     * @return A Java Future containing the result of the DescribeRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DescribeRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeRoutingControlAsync(DescribeRoutingControlRequest describeRoutingControlRequest);
    /**
     * 
     * Displays details about a routing control. A routing control has one of two states: ON and OFF. You can map the
     * routing control state to the state of an Amazon Route 53 health check, which can be used to control routing.
     * 
     * 
     * To get or update the routing control state, see the Recovery Cluster (data plane) API actions for Amazon Route 53
     * Application Recovery Controller.
     * 
     * 
     * @param describeRoutingControlRequest
     * @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 DescribeRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DescribeRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeRoutingControlAsync(DescribeRoutingControlRequest describeRoutingControlRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns information about a safety rule.
     * 
     * 
     * @param describeSafetyRuleRequest
     * @return A Java Future containing the result of the DescribeSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.DescribeSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeSafetyRuleAsync(DescribeSafetyRuleRequest describeSafetyRuleRequest);
    /**
     * 
     * Returns information about a safety rule.
     * 
     * 
     * @param describeSafetyRuleRequest
     * @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 DescribeSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.DescribeSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future describeSafetyRuleAsync(DescribeSafetyRuleRequest describeSafetyRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Get information about the resource policy for a cluster.
     * 
     * 
     * @param getResourcePolicyRequest
     * @return A Java Future containing the result of the GetResourcePolicy operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.GetResourcePolicy
     * @see AWS API Documentation
     */
    java.util.concurrent.Future getResourcePolicyAsync(GetResourcePolicyRequest getResourcePolicyRequest);
    /**
     * 
     * Get information about the resource policy for a cluster.
     * 
     * 
     * @param getResourcePolicyRequest
     * @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 GetResourcePolicy operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.GetResourcePolicy
     * @see AWS API Documentation
     */
    java.util.concurrent.Future getResourcePolicyAsync(GetResourcePolicyRequest getResourcePolicyRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns an array of all Amazon Route 53 health checks associated with a specific routing control.
     * 
     * 
     * @param listAssociatedRoute53HealthChecksRequest
     * @return A Java Future containing the result of the ListAssociatedRoute53HealthChecks operation returned by the
     *         service.
     * @sample AWSRoute53RecoveryControlConfigAsync.ListAssociatedRoute53HealthChecks
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listAssociatedRoute53HealthChecksAsync(
            ListAssociatedRoute53HealthChecksRequest listAssociatedRoute53HealthChecksRequest);
    /**
     * 
     * Returns an array of all Amazon Route 53 health checks associated with a specific routing control.
     * 
     * 
     * @param listAssociatedRoute53HealthChecksRequest
     * @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 ListAssociatedRoute53HealthChecks operation returned by the
     *         service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.ListAssociatedRoute53HealthChecks
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listAssociatedRoute53HealthChecksAsync(
            ListAssociatedRoute53HealthChecksRequest listAssociatedRoute53HealthChecksRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns an array of all the clusters in an account.
     * 
     * 
     * @param listClustersRequest
     * @return A Java Future containing the result of the ListClusters operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.ListClusters
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listClustersAsync(ListClustersRequest listClustersRequest);
    /**
     * 
     * Returns an array of all the clusters in an account.
     * 
     * 
     * @param listClustersRequest
     * @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 ListClusters operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.ListClusters
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listClustersAsync(ListClustersRequest listClustersRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns an array of control panels in an account or in a cluster.
     * 
     * 
     * @param listControlPanelsRequest
     * @return A Java Future containing the result of the ListControlPanels operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.ListControlPanels
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listControlPanelsAsync(ListControlPanelsRequest listControlPanelsRequest);
    /**
     * 
     * Returns an array of control panels in an account or in a cluster.
     * 
     * 
     * @param listControlPanelsRequest
     * @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 ListControlPanels operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.ListControlPanels
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listControlPanelsAsync(ListControlPanelsRequest listControlPanelsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Returns an array of routing controls for a control panel. A routing control is an Amazon Route 53 Application
     * Recovery Controller construct that has one of two states: ON and OFF. You can map the routing control state to
     * the state of an Amazon Route 53 health check, which can be used to control routing.
     * 
     * 
     * @param listRoutingControlsRequest
     * @return A Java Future containing the result of the ListRoutingControls operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.ListRoutingControls
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listRoutingControlsAsync(ListRoutingControlsRequest listRoutingControlsRequest);
    /**
     * 
     * Returns an array of routing controls for a control panel. A routing control is an Amazon Route 53 Application
     * Recovery Controller construct that has one of two states: ON and OFF. You can map the routing control state to
     * the state of an Amazon Route 53 health check, which can be used to control routing.
     * 
     * 
     * @param listRoutingControlsRequest
     * @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 ListRoutingControls operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.ListRoutingControls
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listRoutingControlsAsync(ListRoutingControlsRequest listRoutingControlsRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * List the safety rules (the assertion rules and gating rules) that you've defined for the routing controls in a
     * control panel.
     * 
     * 
     * @param listSafetyRulesRequest
     * @return A Java Future containing the result of the ListSafetyRules operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.ListSafetyRules
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listSafetyRulesAsync(ListSafetyRulesRequest listSafetyRulesRequest);
    /**
     * 
     * List the safety rules (the assertion rules and gating rules) that you've defined for the routing controls in a
     * control panel.
     * 
     * 
     * @param listSafetyRulesRequest
     * @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 ListSafetyRules operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.ListSafetyRules
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listSafetyRulesAsync(ListSafetyRulesRequest listSafetyRulesRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Lists the tags for a resource.
     * 
     * 
     * @param listTagsForResourceRequest
     * @return A Java Future containing the result of the ListTagsForResource operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.ListTagsForResource
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listTagsForResourceAsync(ListTagsForResourceRequest listTagsForResourceRequest);
    /**
     * 
     * Lists the tags for a resource.
     * 
     * 
     * @param listTagsForResourceRequest
     * @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 ListTagsForResource operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.ListTagsForResource
     * @see AWS API Documentation
     */
    java.util.concurrent.Future listTagsForResourceAsync(ListTagsForResourceRequest listTagsForResourceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Adds a tag to a resource.
     * 
     * 
     * @param tagResourceRequest
     *        Request of adding tag to the resource
     * @return A Java Future containing the result of the TagResource operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.TagResource
     * @see AWS API Documentation
     */
    java.util.concurrent.Future tagResourceAsync(TagResourceRequest tagResourceRequest);
    /**
     * 
     * Adds a tag to a resource.
     * 
     * 
     * @param tagResourceRequest
     *        Request of adding tag to the resource
     * @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 TagResource operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.TagResource
     * @see AWS API Documentation
     */
    java.util.concurrent.Future tagResourceAsync(TagResourceRequest tagResourceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Removes a tag from a resource.
     * 
     * 
     * @param untagResourceRequest
     * @return A Java Future containing the result of the UntagResource operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.UntagResource
     * @see AWS API Documentation
     */
    java.util.concurrent.Future untagResourceAsync(UntagResourceRequest untagResourceRequest);
    /**
     * 
     * Removes a tag from a resource.
     * 
     * 
     * @param untagResourceRequest
     * @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 UntagResource operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.UntagResource
     * @see AWS API Documentation
     */
    java.util.concurrent.Future untagResourceAsync(UntagResourceRequest untagResourceRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Updates a control panel. The only update you can make to a control panel is to change the name of the control
     * panel.
     * 
     * 
     * @param updateControlPanelRequest
     *        The details of the control panel that you're updating.
     * @return A Java Future containing the result of the UpdateControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.UpdateControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future updateControlPanelAsync(UpdateControlPanelRequest updateControlPanelRequest);
    /**
     * 
     * Updates a control panel. The only update you can make to a control panel is to change the name of the control
     * panel.
     * 
     * 
     * @param updateControlPanelRequest
     *        The details of the control panel that you're updating.
     * @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 UpdateControlPanel operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.UpdateControlPanel
     * @see AWS API Documentation
     */
    java.util.concurrent.Future updateControlPanelAsync(UpdateControlPanelRequest updateControlPanelRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Updates a routing control. You can only update the name of the routing control. To get or update the routing
     * control state, see the Recovery Cluster (data plane) API actions for Amazon Route 53 Application Recovery
     * Controller.
     * 
     * 
     * @param updateRoutingControlRequest
     *        The details of the routing control that you're updating.
     * @return A Java Future containing the result of the UpdateRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.UpdateRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future updateRoutingControlAsync(UpdateRoutingControlRequest updateRoutingControlRequest);
    /**
     * 
     * Updates a routing control. You can only update the name of the routing control. To get or update the routing
     * control state, see the Recovery Cluster (data plane) API actions for Amazon Route 53 Application Recovery
     * Controller.
     * 
     * 
     * @param updateRoutingControlRequest
     *        The details of the routing control that you're updating.
     * @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 UpdateRoutingControl operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.UpdateRoutingControl
     * @see AWS API Documentation
     */
    java.util.concurrent.Future updateRoutingControlAsync(UpdateRoutingControlRequest updateRoutingControlRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
    /**
     * 
     * Update a safety rule (an assertion rule or gating rule). You can only update the name and the waiting period for
     * a safety rule. To make other updates, delete the safety rule and create a new one.
     * 
     * 
     * @param updateSafetyRuleRequest
     *        A rule that you add to Application Recovery Controller to ensure that recovery actions don't accidentally
     *        impair your application's availability.
     * @return A Java Future containing the result of the UpdateSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsync.UpdateSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future updateSafetyRuleAsync(UpdateSafetyRuleRequest updateSafetyRuleRequest);
    /**
     * 
     * Update a safety rule (an assertion rule or gating rule). You can only update the name and the waiting period for
     * a safety rule. To make other updates, delete the safety rule and create a new one.
     * 
     * 
     * @param updateSafetyRuleRequest
     *        A rule that you add to Application Recovery Controller to ensure that recovery actions don't accidentally
     *        impair your application's availability.
     * @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 UpdateSafetyRule operation returned by the service.
     * @sample AWSRoute53RecoveryControlConfigAsyncHandler.UpdateSafetyRule
     * @see AWS API Documentation
     */
    java.util.concurrent.Future updateSafetyRuleAsync(UpdateSafetyRuleRequest updateSafetyRuleRequest,
            com.amazonaws.handlers.AsyncHandler asyncHandler);
}