/* * Copyright 2018-2023 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.*; import com.amazonaws.regions.*; import com.amazonaws.services.route53recoverycontrolconfig.model.*; import com.amazonaws.services.route53recoverycontrolconfig.waiters.AWSRoute53RecoveryControlConfigWaiters; /** * Interface for accessing AWS Route53 Recovery Control Config. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.route53recoverycontrolconfig.AbstractAWSRoute53RecoveryControlConfig} instead. *

*

*

* Recovery Control Configuration API Reference for Amazon Route 53 Application Recovery Controller *

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AWSRoute53RecoveryControlConfig { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "route53-recovery-control-config"; /** *

* 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 Result of the CreateCluster operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws ServiceQuotaExceededException * 402 response * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.CreateCluster * @see AWS API Documentation */ CreateClusterResult createCluster(CreateClusterRequest createClusterRequest); /** *

* 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 Result of the CreateControlPanel operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws ServiceQuotaExceededException * 402 response * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.CreateControlPanel * @see AWS API Documentation */ CreateControlPanelResult createControlPanel(CreateControlPanelRequest createControlPanelRequest); /** *

* 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 Result of the CreateRoutingControl operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws ServiceQuotaExceededException * 402 response * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.CreateRoutingControl * @see AWS API Documentation */ CreateRoutingControlResult createRoutingControl(CreateRoutingControlRequest createRoutingControlRequest); /** *

* 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 Result of the CreateSafetyRule operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.CreateSafetyRule * @see AWS API Documentation */ CreateSafetyRuleResult createSafetyRule(CreateSafetyRuleRequest createSafetyRuleRequest); /** *

* Delete a cluster. *

* * @param deleteClusterRequest * @return Result of the DeleteCluster operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.DeleteCluster * @see AWS API Documentation */ DeleteClusterResult deleteCluster(DeleteClusterRequest deleteClusterRequest); /** *

* Deletes a control panel. *

* * @param deleteControlPanelRequest * @return Result of the DeleteControlPanel operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.DeleteControlPanel * @see AWS API Documentation */ DeleteControlPanelResult deleteControlPanel(DeleteControlPanelRequest deleteControlPanelRequest); /** *

* Deletes a routing control. *

* * @param deleteRoutingControlRequest * @return Result of the DeleteRoutingControl operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.DeleteRoutingControl * @see AWS API Documentation */ DeleteRoutingControlResult deleteRoutingControl(DeleteRoutingControlRequest deleteRoutingControlRequest); /** *

* Deletes a safety rule. *

* /> * * @param deleteSafetyRuleRequest * @return Result of the DeleteSafetyRule operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.DeleteSafetyRule * @see AWS API Documentation */ DeleteSafetyRuleResult deleteSafetyRule(DeleteSafetyRuleRequest deleteSafetyRuleRequest); /** *

* Display the details about a cluster. The response includes the cluster name, endpoints, status, and Amazon * Resource Name (ARN). *

* * @param describeClusterRequest * @return Result of the DescribeCluster operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.DescribeCluster * @see AWS API Documentation */ DescribeClusterResult describeCluster(DescribeClusterRequest describeClusterRequest); /** *

* Displays details about a control panel. *

* * @param describeControlPanelRequest * @return Result of the DescribeControlPanel operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.DescribeControlPanel * @see AWS API Documentation */ DescribeControlPanelResult describeControlPanel(DescribeControlPanelRequest describeControlPanelRequest); /** *

* 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 Result of the DescribeRoutingControl operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.DescribeRoutingControl * @see AWS API Documentation */ DescribeRoutingControlResult describeRoutingControl(DescribeRoutingControlRequest describeRoutingControlRequest); /** *

* Returns information about a safety rule. *

* * @param describeSafetyRuleRequest * @return Result of the DescribeSafetyRule operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @sample AWSRoute53RecoveryControlConfig.DescribeSafetyRule * @see AWS API Documentation */ DescribeSafetyRuleResult describeSafetyRule(DescribeSafetyRuleRequest describeSafetyRuleRequest); /** *

* Returns an array of all Amazon Route 53 health checks associated with a specific routing control. *

* * @param listAssociatedRoute53HealthChecksRequest * @return Result of the ListAssociatedRoute53HealthChecks operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.ListAssociatedRoute53HealthChecks * @see AWS API Documentation */ ListAssociatedRoute53HealthChecksResult listAssociatedRoute53HealthChecks(ListAssociatedRoute53HealthChecksRequest listAssociatedRoute53HealthChecksRequest); /** *

* Returns an array of all the clusters in an account. *

* * @param listClustersRequest * @return Result of the ListClusters operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @sample AWSRoute53RecoveryControlConfig.ListClusters * @see AWS API Documentation */ ListClustersResult listClusters(ListClustersRequest listClustersRequest); /** *

* Returns an array of control panels in an account or in a cluster. *

* * @param listControlPanelsRequest * @return Result of the ListControlPanels operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @sample AWSRoute53RecoveryControlConfig.ListControlPanels * @see AWS API Documentation */ ListControlPanelsResult listControlPanels(ListControlPanelsRequest listControlPanelsRequest); /** *

* 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 Result of the ListRoutingControls operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @sample AWSRoute53RecoveryControlConfig.ListRoutingControls * @see AWS API Documentation */ ListRoutingControlsResult listRoutingControls(ListRoutingControlsRequest listRoutingControlsRequest); /** *

* 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 Result of the ListSafetyRules operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @sample AWSRoute53RecoveryControlConfig.ListSafetyRules * @see AWS API Documentation */ ListSafetyRulesResult listSafetyRules(ListSafetyRulesRequest listSafetyRulesRequest); /** *

* Lists the tags for a resource. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.ListTagsForResource * @see AWS API Documentation */ ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest); /** *

* Adds a tag to a resource. *

* * @param tagResourceRequest * Request of adding tag to the resource * @return Result of the TagResource operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.TagResource * @see AWS API Documentation */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest); /** *

* Removes a tag from a resource. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.UntagResource * @see AWS API Documentation */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest); /** *

* 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 Result of the UpdateControlPanel operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.UpdateControlPanel * @see AWS API Documentation */ UpdateControlPanelResult updateControlPanel(UpdateControlPanelRequest updateControlPanelRequest); /** *

* 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 Result of the UpdateRoutingControl operation returned by the service. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @throws AccessDeniedException * 403 response - AccessDeniedException. You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ThrottlingException * 429 response - LimitExceededException or TooManyRequestsException. * @throws ConflictException * 409 response - ConflictException. You might be using a predefined variable. * @sample AWSRoute53RecoveryControlConfig.UpdateRoutingControl * @see AWS API Documentation */ UpdateRoutingControlResult updateRoutingControl(UpdateRoutingControlRequest updateRoutingControlRequest); /** *

* 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 Result of the UpdateSafetyRule operation returned by the service. * @throws ResourceNotFoundException * 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. * @throws ValidationException * 400 response - Multiple causes. For example, you might have a malformed query string and input parameter * might be out of range, or you used parameters together incorrectly. * @throws InternalServerException * 500 response - InternalServiceError. Temporary service error. Retry the request. * @sample AWSRoute53RecoveryControlConfig.UpdateSafetyRule * @see AWS API Documentation */ UpdateSafetyRuleResult updateSafetyRule(UpdateSafetyRuleRequest updateSafetyRuleRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); AWSRoute53RecoveryControlConfigWaiters waiters(); }