ListSafetyRules
URI
/controlpanel/
ControlPanelArn
/safetyrules
HTTP methods
GET
Operation ID: ListSafetyRules
List the safety rules (the assertion rules and gating rules) that you've defined for the routing controls in a control panel.
Name | Type | Required | Description |
---|---|---|---|
ControlPanelArn | String | True | The Amazon Resource Name (ARN) of the control panel. |
Name | Type | Required | Description |
---|---|---|---|
MaxResults | String | False | The number of objects that you want to return with this call. |
NextToken | String | False | The token that identifies which batch of results you want to see. |
Status code | Response model | Description |
---|---|---|
200 | ListSafetyRulesResponse | 200 response - Success. |
400 | 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. |
403 | AccessDeniedException | 403 response - AccessDeniedException. You do not have sufficient access to perform this action. |
404 | ResourceNotFoundException | 404 response - MalformedQueryString. The query string contains a syntax error or resource not found. |
429 | ThrottlingException | 429 response - LimitExceededException or TooManyRequestsException. |
500 | InternalServerException | 500 response - InternalServiceError. Temporary service error. Retry the request. |
OPTIONS
Name | Type | Required | Description |
---|---|---|---|
ControlPanelArn | String | True | The Amazon Resource Name (ARN) of a control panel. |
Status code | Response model | Description |
---|---|---|
200 | None | 200 response - Success. |
Schemas
Response bodies
{ "NextToken": "string", "SafetyRules": [ { "ASSERTION": { "Status": enum, "ControlPanelArn": "string", "AssertedControls": [ "string" ], "SafetyRuleArn": "string", "RuleConfig": { "Type": enum, "Inverted": boolean, "Threshold": integer }, "WaitPeriodMs": integer, "Name": "string" }, "GATING": { "Status": enum, "TargetControls": [ "string" ], "ControlPanelArn": "string", "GatingControls": [ "string" ], "SafetyRuleArn": "string", "RuleConfig": { "Type": enum, "Inverted": boolean, "Threshold": integer }, "WaitPeriodMs": integer, "Name": "string" } } ] }
{ "message": "string" }
{ "message": "string" }
{ "message": "string" }
{ "message": "string" }
{ "message": "string" }
Properties
AccessDeniedException
403 response - You do not have sufficient access to perform this action.
Property | Type | Required | Description |
---|---|---|---|
message | string | True |
AssertionRule
An assertion rule enforces that, when you change a routing control state, that the criteria that you set in the rule configuration is met.
Otherwise, the change to the routing control is not accepted. 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.
Property | Type | Required | Description |
---|---|---|---|
AssertedControls | Array of type string | True | The routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed. For example, you might include three routing controls, one for each of three AWS Regions. |
ControlPanelArn | string | True | The Amazon Resource Name (ARN) of the control panel. |
Name | string Pattern: MinLength: 1 MaxLength: 64 | True | Name of the assertion rule. You can use any non-white space character in the name except the following: & > < ' (single quote) " (double quote) ; (semicolon) |
RuleConfig | True | The criteria that you set for specific assertion routing controls (AssertedControls) that designate
how many routing control states must be | |
SafetyRuleArn | string | True | The Amazon Resource Name (ARN) of the assertion rule. |
Status | True | The deployment status of an assertion rule. Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION. | |
WaitPeriodMs | integer Format: int32 | True | An evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail. This helps prevent "flapping" of state. The wait period is 5000 ms by default, but you can choose a custom value. |
GatingRule
A gating rule verifies that a gating routing control or set of gating routing controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete.
For example, if you specify one gating routing control and you set the Type
in
the rule configuration to OR
, that indicates that you must set the gating routing control to On
for the rule to evaluate as true; that is, for the gating control "switch" to be "On". When you do that, then
you can update the routing control states for the target routing controls that you specify in the gating
rule.
Property | Type | Required | Description |
---|---|---|---|
ControlPanelArn | string | True | The Amazon Resource Name (ARN) of the control panel. |
GatingControls | Array of type string | True | An array of gating routing control Amazon Resource Names (ARNs). For a simple "on/off" switch, specify the ARN for one routing control. The gating routing controls are evaluated by the rule configuration that you specify to determine if the target routing control states can be changed. |
Name | string Pattern: MinLength: 1 MaxLength: 64 | True | The name of the gating rule. You can use any non-white space character in the name except the following: & > < ' (single quote) " (double quote) ; (semicolon) |
RuleConfig | True | The criteria that you set for gating routing controls that designate how many of the routing control states
must be | |
SafetyRuleArn | string | True | The Amazon Resource Name (ARN) of the gating rule. |
Status | True | The deployment status of a gating rule. Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION. | |
TargetControls | Array of type string | True | An array of target routing control Amazon Resource Names (ARNs) for which the states can only be updated if the rule configuration that you specify evaluates to true for the gating routing control. As a simple example, if you have a single gating control, it acts as an overall "on/off" switch for a set of target routing controls. You can use this to manually override automated failover, for example. |
WaitPeriodMs | integer Format: int32 | True | An evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail. This helps prevent "flapping" of state. The wait period is 5000 ms by default, but you can choose a custom value. |
InternalServerException
500 response - InternalServiceError. Temporary service error. Retry the request.
Property | Type | Required | Description |
---|---|---|---|
message | string | True |
ListSafetyRulesResponse
The response to a ListSafetyRulesRequest
.
Property | Type | Required | Description |
---|---|---|---|
NextToken | string MaxLength: 8096 | False | The token that identifies which batch of results you want to see. |
SafetyRules | Array of type Rule | False | The list of safety rules in a control panel. |
ResourceNotFoundException
404 response - MalformedQueryString. The query string contains a syntax error or resource not found.
Property | Type | Required | Description |
---|---|---|---|
message | string | True |
Rule
A safety rule. A safety rule can be an assertion rule or a gating rule. To learn more, see <ulink type="documentation" url="r53recovery/latest/dg/routing-control.safety-rules.html">Safety rules</ulink> in the Amazon Route 53 Application Recovery Controller Developer Guide.
Property | Type | Required | Description |
---|---|---|---|
ASSERTION | False | An assertion rule enforces that, when a routing control state is changed, the criteria set by the rule configuration is met.
Otherwise, the change to the routing control state is not accepted. For example, the criteria might be that at least one routing
control state is | |
GATING | False | A gating rule verifies that a gating routing control or set of gating routing controls, evaluates as true, based on a rule configuration that you specify, which allows a set of routing control state changes to complete. For example, if you specify one gating routing control and you set the |
RuleConfig
The rule configuration for an assertion rule. That is, the criteria that you set for specific assertion
controls (routing controls) that specify how many control states must be ON
after a transaction completes.
Property | Type | Required | Description |
---|---|---|---|
Inverted | boolean | True | Logical negation of the rule. If the rule would usually evaluate true, it's evaluated as false, and vice versa. |
Threshold | integer Format: int32 | True | The value of N, when you specify an |
Type | True | A rule can be one of the following: |
RuleType
An enumerated type that determines how the evaluated rules are processed. RuleType
can be one of the following:
ATLEAST - At least N routing controls must be set. You specify N as the Threshold
in the rule configuration.
AND - All routing controls must be set. This is a shortcut for "At least N," where N is the total number of controls in the rule.
OR - Any control must be set. This is a shortcut for "At least N," where N is 1.
ATLEAST
AND
OR
Status
The deployment status of a resource. Status can be one of the following:
PENDING: Amazon Route 53 Application Recovery Controller is creating the resource.
DEPLOYED: The resource is deployed and ready to use.
PENDING_DELETION: Amazon Route 53 Application Recovery Controller is deleting the resource.
PENDING
DEPLOYED
PENDING_DELETION
ThrottlingException
429 response - LimitExceededException or TooManyRequestsException.
Property | Type | Required | Description |
---|---|---|---|
message | string | True |
ValidationException
400 response - Multiple causes. For example, you might have a malformed query string and input parameter might be out of range, or you might have used parameters together incorrectly.
Property | Type | Required | Description |
---|---|---|---|
message | string | True |
See also
For more information about using this API in one of the language-specific AWS SDKs and references, see the following: