Routing Control API Reference Guide
Welcome
API Version 2019-12-02
Routing Control API Reference Guide: Welcome
Copyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by Amazon.
Table of Contents
Welcome ... 1
Actions ... 2
GetRoutingControlState ... 3
Request Syntax ... 3
Request Parameters ... 3
Response Syntax ... 3
Response Elements ... 4
Errors ... 4
See Also ... 5
UpdateRoutingControlState ... 6
Request Syntax ... 6
Request Parameters ... 6
Response Elements ... 7
Errors ... 7
See Also ... 8
UpdateRoutingControlStates ... 9
Request Syntax ... 9
Request Parameters ... 9
Response Elements ... 10
Errors ... 10
See Also ... 11
Data Types ... 12
UpdateRoutingControlStateEntry ... 13
Contents ... 13
See Also ... 13
ValidationExceptionField ... 14
Contents ... 14
See Also ... 14
Common Parameters ... 15
Common Errors ... 17
Welcome
Welcome to the Routing Control (Recovery Cluster) API Reference Guide for Amazon Route 53 Application Recovery Controller.
With Amazon Route 53 Application Recovery Controller, you can use routing control with extreme reliability to recover applications by rerouting traffic across Availability Zones or AWS Regions. Routing controls are simple on/off switches hosted on a highly available cluster in Application Recovery Controller. A cluster provides a set of five redundant Regional endpoints against which you can run API calls to get or update the state of routing controls. To implement failover, you set one routing control on and another one off, to reroute traffic from one Availability Zone or AWS Region to another.
Be aware that you must specify the Regional endpoints for a cluster when you work with API cluster operations to get or update routing control states in Application Recovery Controller. In addition, you must specify the US West (Oregon) Region for Application Recovery Controller API calls. For example, use the parameter region us-west-2 with AWS CLI commands. For more information, see Get and update routing control states using the API in the Amazon Route 53 Application Recovery Controller Developer Guide.
This API guide includes information about the API operations for how to get and update routing control states in Application Recovery Controller. You also must set up the structures to support routing controls:
clusters and control panels.
For more information about working with routing control in Application Recovery Controller, see the following:
• To create clusters, routing controls, and control panels by using the control plane API for routing control, see the Recovery Control Configuration API Reference Guide for Amazon Route 53 Application Recovery Controller.
• Learn about the components in recovery control configuration, including clusters, routing controls, and control panels. For more information, see Recovery control components in the Amazon Route 53 Application Recovery Controller Developer Guide.
• Application Recovery Controller also provides readiness checks that run continually to help make sure that your applications are scaled and ready to handle failover traffic. For more information about the related API actions, see the Recovery Readiness API Reference Guide for Amazon Route 53 Application Recovery Controller.
• For more information about creating resilient applications and preparing for recovery readiness with Application Recovery Controller, see the Amazon Route 53 Application Recovery Controller Developer Guide.
This document was last published on March 6, 2022.
Actions
The following actions are supported:
• GetRoutingControlState (p. 3)
• UpdateRoutingControlState (p. 6)
• UpdateRoutingControlStates (p. 9)
GetRoutingControlState
GetRoutingControlState
Get the state for a routing control. A routing control is a simple on/off switch that you can use to route traffic to cells. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.
Before you can create a routing control, you must first create a cluster to host the control in a control panel. For more information, see Create routing control structures in the Amazon Route 53 Application Recovery Controller Developer Guide. Then you access one of the endpoints for the cluster to get or update the routing control state to redirect traffic.
You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Application Recovery Controller.
To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.
Learn more about working with routing controls in the following topics in the Amazon Route 53 Application Recovery Controller Developer Guide:
• Viewing and updating routing control states
• Working with routing controls overall
Request Syntax
{
"RoutingControlArn": "string"
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 15).
The request accepts the following data in JSON format.
RoutingControlArn (p. 3)
The Amazon Resource Name (ARN) for the routing control that you want to get the state for.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern: ^[A-Za-z0-9:.\/_-]*$
Required: Yes
Response Syntax
{
"RoutingControlArn": "string", "RoutingControlState": "string"
}
Response Elements
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
RoutingControlArn (p. 3)
The Amazon Resource Name (ARN) of the response.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern: ^[A-Za-z0-9:.\/_-]*$
RoutingControlState (p. 3)
The state of the routing control.
Type: String
Valid Values: On | Off
Errors
For information about the errors that are common to all actions, see Common Errors (p. 17).
AccessDeniedException
You don't have sufficient permissions to query the routing control state.
HTTP Status Code: 400
EndpointTemporarilyUnavailableException
The cluster endpoint isn't available. Try another cluster endpoint.
HTTP Status Code: 400 InternalServerException
There was an unexpected error during processing of the request.
HTTP Status Code: 500 ResourceNotFoundException
The request references a routing control that was not found.
HTTP Status Code: 400 ThrottlingException
The request was denied because of request throttling.
HTTP Status Code: 400 ValidationException
There was a validation error on the request.
HTTP Status Code: 400
See Also
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
• AWS Command Line Interface
• AWS SDK for .NET
• AWS SDK for C++
• AWS SDK for Go
• AWS SDK for Java V2
• AWS SDK for JavaScript
• AWS SDK for PHP V3
• AWS SDK for Python
• AWS SDK for Ruby V3
UpdateRoutingControlState
UpdateRoutingControlState
Set the state of the routing control to reroute traffic. You can set the value to be On or Off. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.
With Application Recovery Controller, you can add safety rules for routing controls, which are safeguards for routing control state updates that help prevent unexpected outcomes, like fail open traffic routing.
However, there are scenarios when you might want to bypass the routing control safeguards that are enforced with safety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, and one or more safety rules might be unexpectedly preventing you from updating a routing control state to reroute traffic. In a "break glass" scenario like this, you can override one or more safety rules to change a routing control state and fail over your application.
The SafetyRulesToOverride property enables you override one or more safety rules and update routing control states. For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.
You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Application Recovery Controller.
To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.
• Viewing and updating routing control states
• Working with routing controls overall
Request Syntax
{ "RoutingControlArn": "string", "RoutingControlState": "string", "SafetyRulesToOverride": [ "string" ] }
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 15).
The request accepts the following data in JSON format.
RoutingControlArn (p. 6)
The Amazon Resource Name (ARN) for the routing control that you want to update the state for.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern: ^[A-Za-z0-9:.\/_-]*$
Required: Yes
RoutingControlState (p. 6)
The state of the routing control. You can set the value to be On or Off.
Response Elements
Type: String
Valid Values: On | Off Required: Yes
SafetyRulesToOverride (p. 6)
The Amazon Resource Names (ARNs) for the safety rules that you want to override when you're updating the state of a routing control. You can override one safety rule or multiple safety rules by including one or more ARNs, separated by commas.
For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.
Type: Array of strings
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern: ^[A-Za-z0-9:.\/_-]*$
Required: No
Response Elements
If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 17).
AccessDeniedException
You don't have sufficient permissions to query the routing control state.
HTTP Status Code: 400 ConflictException
There was a conflict with this request. Try again.
HTTP Status Code: 400
EndpointTemporarilyUnavailableException
The cluster endpoint isn't available. Try another cluster endpoint.
HTTP Status Code: 400 InternalServerException
There was an unexpected error during processing of the request.
HTTP Status Code: 500 ResourceNotFoundException
The request references a routing control that was not found.
HTTP Status Code: 400 ThrottlingException
The request was denied because of request throttling.
See Also
HTTP Status Code: 400 ValidationException
There was a validation error on the request.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
• AWS Command Line Interface
• AWS SDK for .NET
• AWS SDK for C++
• AWS SDK for Go
• AWS SDK for Java V2
• AWS SDK for JavaScript
• AWS SDK for PHP V3
• AWS SDK for Python
• AWS SDK for Ruby V3
UpdateRoutingControlStates
UpdateRoutingControlStates
Set multiple routing control states. You can set the value for each state to be On or Off. When the state is On, traffic flows to a cell. When it's Off, traffic does not flow.
With Application Recovery Controller, you can add safety rules for routing controls, which are safeguards for routing control state updates that help prevent unexpected outcomes, like fail open traffic routing.
However, there are scenarios when you might want to bypass the routing control safeguards that are enforced with safety rules that you've configured. For example, you might want to fail over quickly for disaster recovery, and one or more safety rules might be unexpectedly preventing you from updating a routing control state to reroute traffic. In a "break glass" scenario like this, you can override one or more safety rules to change a routing control state and fail over your application.
The SafetyRulesToOverride property enables you override one or more safety rules and update routing control states. For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.
You must specify Regional endpoints when you work with API cluster operations to get or update routing control states in Application Recovery Controller.
To see a code example for getting a routing control state, including accessing Regional cluster endpoints in sequence, see API examples in the Amazon Route 53 Application Recovery Controller Developer Guide.
• Viewing and updating routing control states
• Working with routing controls overall
Request Syntax
{ "SafetyRulesToOverride": [ "string" ], "UpdateRoutingControlStateEntries": [ {
"RoutingControlArn": "string", "RoutingControlState": "string"
} ]}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters (p. 15).
The request accepts the following data in JSON format.
SafetyRulesToOverride (p. 9)
The Amazon Resource Names (ARNs) for the safety rules that you want to override when you're updating routing control states. You can override one safety rule or multiple safety rules by including one or more ARNs, separated by commas.
For more information, see Override safety rules to reroute traffic in the Amazon Route 53 Application Recovery Controller Developer Guide.
Type: Array of strings
Response Elements
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern: ^[A-Za-z0-9:.\/_-]*$
Required: No
UpdateRoutingControlStateEntries (p. 9)
A set of routing control entries that you want to update.
Type: Array of UpdateRoutingControlStateEntry (p. 13) objects Required: Yes
Response Elements
If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body.
Errors
For information about the errors that are common to all actions, see Common Errors (p. 17).
AccessDeniedException
You don't have sufficient permissions to query the routing control state.
HTTP Status Code: 400 ConflictException
There was a conflict with this request. Try again.
HTTP Status Code: 400
EndpointTemporarilyUnavailableException
The cluster endpoint isn't available. Try another cluster endpoint.
HTTP Status Code: 400 InternalServerException
There was an unexpected error during processing of the request.
HTTP Status Code: 500 ResourceNotFoundException
The request references a routing control that was not found.
HTTP Status Code: 400 ThrottlingException
The request was denied because of request throttling.
HTTP Status Code: 400 ValidationException
There was a validation error on the request.
HTTP Status Code: 400
See Also
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
• AWS Command Line Interface
• AWS SDK for .NET
• AWS SDK for C++
• AWS SDK for Go
• AWS SDK for Java V2
• AWS SDK for JavaScript
• AWS SDK for PHP V3
• AWS SDK for Python
• AWS SDK for Ruby V3
Data Types
The Route53 Recovery Cluster API contains several data types that various actions use. This section describes each data type in detail.
Note
The order of each element in a data type structure is not guaranteed. Applications should not assume a particular order.
The following data types are supported:
• UpdateRoutingControlStateEntry (p. 13)
• ValidationExceptionField (p. 14)
UpdateRoutingControlStateEntry
UpdateRoutingControlStateEntry
A routing control state entry.
Contents
RoutingControlArn
The Amazon Resource Name (ARN) for a routing control state entry.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 255.
Pattern: ^[A-Za-z0-9:.\/_-]*$
Required: Yes RoutingControlState
The routing control state in a set of routing control state entries.
Type: String
Valid Values: On | Off Required: Yes
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
• AWS SDK for C++
• AWS SDK for Go
• AWS SDK for Java V2
• AWS SDK for Ruby V3
ValidationExceptionField
ValidationExceptionField
There was a validation error on the request.
Contents
message
Information about the validation exception.
Type: String Required: Yes name
The field that had the validation exception.
Type: String Required: Yes
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following:
• AWS SDK for C++
• AWS SDK for Go
• AWS SDK for Java V2
• AWS SDK for Ruby V3
Common Parameters
The following list contains the parameters that all actions use for signing Signature Version 4 requests with a query string. Any action-specific parameters are listed in the topic for that action. For more information about Signature Version 4, see Signature Version 4 Signing Process in the Amazon Web Services General Reference.
Action
The action to be performed.
Type: string Required: Yes Version
The API version that the request is written for, expressed in the format YYYY-MM-DD.
Type: string Required: Yes X-Amz-Algorithm
The hash algorithm that you used to create the request signature.
Condition: Specify this parameter when you include authentication information in a query string instead of in the HTTP authorization header.
Type: string
Valid Values: AWS4-HMAC-SHA256 Required: Conditional
X-Amz-Credential
The credential scope value, which is a string that includes your access key, the date, the region you are targeting, the service you are requesting, and a termination string ("aws4_request"). The value is expressed in the following format: access_key/YYYYMMDD/region/service/aws4_request.
For more information, see Task 2: Create a String to Sign for Signature Version 4 in the Amazon Web Services General Reference.
Condition: Specify this parameter when you include authentication information in a query string instead of in the HTTP authorization header.
Type: string
Required: Conditional X-Amz-Date
The date that is used to create the signature. The format must be ISO 8601 basic format (YYYYMMDD'T'HHMMSS'Z'). For example, the following date time is a valid X-Amz-Date value:
20120325T120000Z.
Condition: X-Amz-Date is optional for all requests; it can be used to override the date used for signing requests. If the Date header is specified in the ISO 8601 basic format, X-Amz-Date is
not required. When X-Amz-Date is used, it always overrides the value of the Date header. For more information, see Handling Dates in Signature Version 4 in the Amazon Web Services General Reference.
Type: string
Required: Conditional X-Amz-Security-Token
The temporary security token that was obtained through a call to AWS Security Token Service (AWS STS). For a list of services that support temporary security credentials from AWS Security Token Service, go to AWS Services That Work with IAM in the IAM User Guide.
Condition: If you're using temporary security credentials from the AWS Security Token Service, you must include the security token.
Type: string
Required: Conditional X-Amz-Signature
Specifies the hex-encoded signature that was calculated from the string to sign and the derived signing key.
Condition: Specify this parameter when you include authentication information in a query string instead of in the HTTP authorization header.
Type: string
Required: Conditional X-Amz-SignedHeaders
Specifies all the HTTP headers that were included as part of the canonical request. For more information about specifying signed headers, see Task 1: Create a Canonical Request For Signature Version 4 in the Amazon Web Services General Reference.
Condition: Specify this parameter when you include authentication information in a query string instead of in the HTTP authorization header.
Type: string
Required: Conditional
Common Errors
This section lists the errors common to the API actions of all AWS services. For errors specific to an API action for this service, see the topic for that API action.
AccessDeniedException
You do not have sufficient access to perform this action.
HTTP Status Code: 400 IncompleteSignature
The request signature does not conform to AWS standards.
HTTP Status Code: 400 InternalFailure
The request processing has failed because of an unknown error, exception or failure.
HTTP Status Code: 500 InvalidAction
The action or operation requested is invalid. Verify that the action is typed correctly.
HTTP Status Code: 400 InvalidClientTokenId
The X.509 certificate or AWS access key ID provided does not exist in our records.
HTTP Status Code: 403 InvalidParameterCombination
Parameters that must not be used together were used together.
HTTP Status Code: 400 InvalidParameterValue
An invalid or out-of-range value was supplied for the input parameter.
HTTP Status Code: 400 InvalidQueryParameter
The AWS query string is malformed or does not adhere to AWS standards.
HTTP Status Code: 400 MalformedQueryString
The query string contains a syntax error.
HTTP Status Code: 404 MissingAction
The request is missing an action or a required parameter.
HTTP Status Code: 400
MissingAuthenticationToken
The request must contain either a valid (registered) AWS access key ID or X.509 certificate.
HTTP Status Code: 403 MissingParameter
A required parameter for the specified action is not supplied.
HTTP Status Code: 400 NotAuthorized
You do not have permission to perform this action.
HTTP Status Code: 400 OptInRequired
The AWS access key ID needs a subscription for the service.
HTTP Status Code: 403 RequestExpired
The request reached the service more than 15 minutes after the date stamp on the request or more than 15 minutes after the request expiration date (such as for pre-signed URLs), or the date stamp on the request is more than 15 minutes in the future.
HTTP Status Code: 400 ServiceUnavailable
The request has failed due to a temporary failure of the server.
HTTP Status Code: 503 ThrottlingException
The request was denied due to request throttling.
HTTP Status Code: 400 ValidationError
The input fails to satisfy the constraints specified by an AWS service.
HTTP Status Code: 400