java.lang.Object
software.amazon.jsii.JsiiObject
All Implemented Interfaces:
IConstruct, IDependable, IInspectable, software.amazon.jsii.JsiiSerializable, software.constructs.IConstruct

@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)", date="2023-06-19T16:30:35.028Z") @Stability(Stable) public class CfnSafetyRule extends CfnResource implements IInspectable
A CloudFormation AWS::Route53RecoveryControl::SafetyRule.

Creates a safety rule in a control panel in Amazon Route 53 Application Recovery Controller. Safety rules in Amazon Route 53 Application Recovery Controller let you add safeguards around changing routing control states, and enabling and disabling routing controls, to help prevent unwanted outcomes. Note that the name of a safety rule must be unique within a control panel.

There are two types of safety rules in Route 53 ARC: assertion rules and gating rules.

Assertion rule: An assertion rule enforces that, when you change a routing control state, certain criteria are met. For example, the criteria might be that at least one routing control state is On after the transaction completes so that traffic continues to be directed to at least one cell for the application. This prevents 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.

Example:

 // The code below shows an example of how to instantiate this type.
 // The values are placeholders you should change.
 import software.amazon.awscdk.services.route53recoverycontrol.*;
 CfnSafetyRule cfnSafetyRule = CfnSafetyRule.Builder.create(this, "MyCfnSafetyRule")
         .controlPanelArn("controlPanelArn")
         .name("name")
         .ruleConfig(RuleConfigProperty.builder()
                 .inverted(false)
                 .threshold(123)
                 .type("type")
                 .build())
         // the properties below are optional
         .assertionRule(AssertionRuleProperty.builder()
                 .assertedControls(List.of("assertedControls"))
                 .waitPeriodMs(123)
                 .build())
         .gatingRule(GatingRuleProperty.builder()
                 .gatingControls(List.of("gatingControls"))
                 .targetControls(List.of("targetControls"))
                 .waitPeriodMs(123)
                 .build())
         .tags(List.of(CfnTag.builder()
                 .key("key")
                 .value("value")
                 .build()))
         .build();
 
  • Field Details

    • CFN_RESOURCE_TYPE_NAME

      @Stability(Stable) public static final String CFN_RESOURCE_TYPE_NAME
      The CloudFormation resource type name for this resource class.
  • Constructor Details

    • CfnSafetyRule

      protected CfnSafetyRule(software.amazon.jsii.JsiiObjectRef objRef)
    • CfnSafetyRule

      protected CfnSafetyRule(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • CfnSafetyRule

      @Stability(Stable) public CfnSafetyRule(@NotNull Construct scope, @NotNull String id, @NotNull CfnSafetyRuleProps props)
      Create a new AWS::Route53RecoveryControl::SafetyRule.

      Parameters:
      scope -
      • scope in which this resource is defined.
      This parameter is required.
      id -
      • scoped id of the resource.
      This parameter is required.
      props -
      • resource properties.
      This parameter is required.
  • Method Details

    • inspect

      @Stability(Stable) public void inspect(@NotNull TreeInspector inspector)
      Examines the CloudFormation resource and discloses attributes.

      Specified by:
      inspect in interface IInspectable
      Parameters:
      inspector -
      • tree inspector to collect and process attributes.
      This parameter is required.
    • renderProperties

      @Stability(Stable) @NotNull protected Map<String,Object> renderProperties(@NotNull Map<String,Object> props)
      Overrides:
      renderProperties in class CfnResource
      Parameters:
      props - This parameter is required.
    • getAttrSafetyRuleArn

      @Stability(Stable) @NotNull public String getAttrSafetyRuleArn()
      The Amazon Resource Name (ARN) of the safety rule.
    • getAttrStatus

      @Stability(Stable) @NotNull public String getAttrStatus()
      The deployment status of the safety rule.

      Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION.

    • getCfnProperties

      @Stability(Stable) @NotNull protected Map<String,Object> getCfnProperties()
      Overrides:
      getCfnProperties in class CfnResource
    • getTags

      @Stability(Stable) @NotNull public TagManager getTags()
      The value for a tag.
    • getControlPanelArn

      @Stability(Stable) @NotNull public String getControlPanelArn()
      The Amazon Resource Name (ARN) for the control panel.
    • setControlPanelArn

      @Stability(Stable) public void setControlPanelArn(@NotNull String value)
      The Amazon Resource Name (ARN) for the control panel.
    • getName

      @Stability(Stable) @NotNull public String getName()
      The name of the assertion rule.

      The name must be unique within a control panel. You can use any non-white space character in the name except the following: & > < ' (single quote) " (double quote) ; (semicolon)

    • setName

      @Stability(Stable) public void setName(@NotNull String value)
      The name of the assertion rule.

      The name must be unique within a control panel. You can use any non-white space character in the name except the following: & > < ' (single quote) " (double quote) ; (semicolon)

    • getRuleConfig

      @Stability(Stable) @NotNull public Object getRuleConfig()
      The criteria that you set for specific assertion controls (routing controls) that designate how many control states must be ON as the result of a transaction.

      For example, if you have three assertion controls, you might specify ATLEAST 2 for your rule configuration. This means that at least two assertion controls must be ON , so that at least two AWS Regions have traffic flowing to them.

    • setRuleConfig

      @Stability(Stable) public void setRuleConfig(@NotNull IResolvable value)
      The criteria that you set for specific assertion controls (routing controls) that designate how many control states must be ON as the result of a transaction.

      For example, if you have three assertion controls, you might specify ATLEAST 2 for your rule configuration. This means that at least two assertion controls must be ON , so that at least two AWS Regions have traffic flowing to them.

    • setRuleConfig

      @Stability(Stable) public void setRuleConfig(@NotNull CfnSafetyRule.RuleConfigProperty value)
      The criteria that you set for specific assertion controls (routing controls) that designate how many control states must be ON as the result of a transaction.

      For example, if you have three assertion controls, you might specify ATLEAST 2 for your rule configuration. This means that at least two assertion controls must be ON , so that at least two AWS Regions have traffic flowing to them.

    • getAssertionRule

      @Stability(Stable) @Nullable public Object getAssertionRule()
      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.

    • setAssertionRule

      @Stability(Stable) public void setAssertionRule(@Nullable IResolvable value)
      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.

    • setAssertionRule

      @Stability(Stable) public void setAssertionRule(@Nullable CfnSafetyRule.AssertionRuleProperty value)
      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.

    • getGatingRule

      @Stability(Stable) @Nullable public Object getGatingRule()
      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.

    • setGatingRule

      @Stability(Stable) public void setGatingRule(@Nullable IResolvable value)
      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.

    • setGatingRule

      @Stability(Stable) public void setGatingRule(@Nullable CfnSafetyRule.GatingRuleProperty value)
      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.