Class: AWSCDK::Route53RecoveryControl::CfnSafetyRule::GatingRuleProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
route53_recovery_control/cfn_safety_rule.rb

Overview

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.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gating_controls:, target_controls:, wait_period_ms:) ⇒ GatingRuleProperty

Returns a new instance of GatingRuleProperty.

Parameters:

  • gating_controls (Array<String>)

    An array of gating routing control Amazon Resource Names (ARNs).

  • target_controls (Array<String>)

    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.

  • wait_period_ms (Numeric)

    An evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail.



658
659
660
661
662
663
664
665
# File 'route53_recovery_control/cfn_safety_rule.rb', line 658

def initialize(gating_controls:, target_controls:, wait_period_ms:)
  @gating_controls = gating_controls
  Jsii::Type.check_type(@gating_controls, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "gatingControls")
  @target_controls = target_controls
  Jsii::Type.check_type(@target_controls, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "targetControls")
  @wait_period_ms = wait_period_ms
  Jsii::Type.check_type(@wait_period_ms, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "waitPeriodMs")
end

Instance Attribute Details

#gating_controlsArray<String> (readonly)

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.



673
674
675
# File 'route53_recovery_control/cfn_safety_rule.rb', line 673

def gating_controls
  @gating_controls
end

#target_controlsArray<String> (readonly)

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.



680
681
682
# File 'route53_recovery_control/cfn_safety_rule.rb', line 680

def target_controls
  @target_controls
end

#wait_period_msNumeric (readonly)

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.



687
688
689
# File 'route53_recovery_control/cfn_safety_rule.rb', line 687

def wait_period_ms
  @wait_period_ms
end

Class Method Details

.jsii_propertiesObject



689
690
691
692
693
694
695
# File 'route53_recovery_control/cfn_safety_rule.rb', line 689

def self.jsii_properties
  {
    :gating_controls => "gatingControls",
    :target_controls => "targetControls",
    :wait_period_ms => "waitPeriodMs",
  }
end

Instance Method Details

#to_jsiiObject



697
698
699
700
701
702
703
704
705
# File 'route53_recovery_control/cfn_safety_rule.rb', line 697

def to_jsii
  result = {}
  result.merge!({
    "gatingControls" => @gating_controls,
    "targetControls" => @target_controls,
    "waitPeriodMs" => @wait_period_ms,
  })
  result.compact
end