java.lang.Object
software.amazon.awssdk.services.route53recoverycontrolconfig.model.GatingRule
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<GatingRule.Builder,GatingRule>

@Generated("software.amazon.awssdk:codegen") public final class GatingRule extends Object implements SdkPojo, Serializable, ToCopyableBuilder<GatingRule.Builder,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.

See Also:
  • Method Details

    • controlPanelArn

      public final String controlPanelArn()

      The Amazon Resource Name (ARN) of the control panel.

      Returns:
      The Amazon Resource Name (ARN) of the control panel.
    • hasGatingControls

      public final boolean hasGatingControls()
      For responses, this returns true if the service returned a value for the GatingControls property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • gatingControls

      public final List<String> gatingControls()

      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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasGatingControls() method.

      Returns:
      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

      public final String name()

      The name for the gating rule. You can use any non-white space character in the name.

      Returns:
      The name for the gating rule. You can use any non-white space character in the name.
    • ruleConfig

      public final RuleConfig ruleConfig()

      The criteria that you set for gating routing controls that designate how many of the routing control states must be ON to allow you to update target routing control states.

      Returns:
      The criteria that you set for gating routing controls that designate how many of the routing control states must be ON to allow you to update target routing control states.
    • safetyRuleArn

      public final String safetyRuleArn()

      The Amazon Resource Name (ARN) of the gating rule.

      Returns:
      The Amazon Resource Name (ARN) of the gating rule.
    • status

      public final Status status()

      The deployment status of a gating rule. Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION.

      If the service returns an enum value that is not available in the current SDK version, status will return Status.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The deployment status of a gating rule. Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION.
      See Also:
    • statusAsString

      public final String statusAsString()

      The deployment status of a gating rule. Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION.

      If the service returns an enum value that is not available in the current SDK version, status will return Status.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from statusAsString().

      Returns:
      The deployment status of a gating rule. Status can be one of the following: PENDING, DEPLOYED, PENDING_DELETION.
      See Also:
    • hasTargetControls

      public final boolean hasTargetControls()
      For responses, this returns true if the service returned a value for the TargetControls property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • targetControls

      public final List<String> targetControls()

      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.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTargetControls() method.

      Returns:
      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

      public final Integer waitPeriodMs()

      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.

      Returns:
      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.
    • owner

      public final String owner()

      The Amazon Web Services account ID of the gating rule owner.

      Returns:
      The Amazon Web Services account ID of the gating rule owner.
    • toBuilder

      public GatingRule.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<GatingRule.Builder,GatingRule>
      Returns:
      a builder for type T
    • builder

      public static GatingRule.Builder builder()
    • serializableBuilderClass

      public static Class<? extends GatingRule.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.