com.pulumi.awsnative.route53recoverycontrol.kotlin.outputs.SafetyRuleGatingRule.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.route53recoverycontrol.kotlin.outputs
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
/**
* A gating rule verifies that a set of gating controls evaluates as true, based on a rule configuration that you specify. If the gating rule evaluates to true, Amazon Route 53 Application Recovery Controller allows a set of routing control state changes to run and complete against the set of target controls.
* @property gatingControls The gating controls for the gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.
* @property targetControls Routing controls that can only be set or unset if the specified RuleConfig evaluates to true for the specified GatingControls. For example, say you have three gating controls, one for each of three AWS Regions. Now you specify AtLeast 2 as your RuleConfig. With these settings, you can only change (set or unset) the routing controls that you have specified as TargetControls if that rule evaluates to true.
* In other words, your ability to change the routing controls that you have specified as TargetControls is gated by the rule that you set for the routing controls in GatingControls.
* @property 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.
*/
public data class SafetyRuleGatingRule(
public val gatingControls: List,
public val targetControls: List,
public val waitPeriodMs: Int,
) {
public companion object {
public fun toKotlin(javaType: com.pulumi.awsnative.route53recoverycontrol.outputs.SafetyRuleGatingRule): SafetyRuleGatingRule = SafetyRuleGatingRule(
gatingControls = javaType.gatingControls().map({ args0 -> args0 }),
targetControls = javaType.targetControls().map({ args0 -> args0 }),
waitPeriodMs = javaType.waitPeriodMs(),
)
}
}