SafetyRuleArgs

data class SafetyRuleArgs(val assertedControls: Output<List<String>>? = null, val controlPanelArn: Output<String>? = null, val gatingControls: Output<List<String>>? = null, val name: Output<String>? = null, val ruleConfig: Output<SafetyRuleRuleConfigArgs>? = null, val targetControls: Output<List<String>>? = null, val waitPeriodMs: Output<Int>? = null) : ConvertibleToJava<SafetyRuleArgs>

Provides an AWS Route 53 Recovery Control Config Safety Rule

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.route53recoverycontrol.SafetyRule("example", {
assertedControls: [exampleAwsRoute53recoverycontrolconfigRoutingControl&#46;arn],
controlPanelArn: "arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8",
name: "daisyguttridge",
waitPeriodMs: 5000,
ruleConfig: {
inverted: false,
threshold: 1,
type: "ATLEAST",
},
});
import pulumi
import pulumi_aws as aws
example = aws.route53recoverycontrol.SafetyRule("example",
asserted_controls=[example_aws_route53recoverycontrolconfig_routing_control["arn"]],
control_panel_arn="arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8",
name="daisyguttridge",
wait_period_ms=5000,
rule_config={
"inverted": False,
"threshold": 1,
"type": "ATLEAST",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Route53RecoveryControl.SafetyRule("example", new()
{
AssertedControls = new[]
{
exampleAwsRoute53recoverycontrolconfigRoutingControl.Arn,
},
ControlPanelArn = "arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8",
Name = "daisyguttridge",
WaitPeriodMs = 5000,
RuleConfig = new Aws.Route53RecoveryControl.Inputs.SafetyRuleRuleConfigArgs
{
Inverted = false,
Threshold = 1,
Type = "ATLEAST",
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53recoverycontrol"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := route53recoverycontrol.NewSafetyRule(ctx, "example", &route53recoverycontrol.SafetyRuleArgs{
AssertedControls: pulumi.StringArray{
exampleAwsRoute53recoverycontrolconfigRoutingControl.Arn,
},
ControlPanelArn: pulumi.String("arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8"),
Name: pulumi.String("daisyguttridge"),
WaitPeriodMs: pulumi.Int(5000),
RuleConfig: &route53recoverycontrol.SafetyRuleRuleConfigArgs{
Inverted: pulumi.Bool(false),
Threshold: pulumi.Int(1),
Type: pulumi.String("ATLEAST"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.route53recoverycontrol.SafetyRule;
import com.pulumi.aws.route53recoverycontrol.SafetyRuleArgs;
import com.pulumi.aws.route53recoverycontrol.inputs.SafetyRuleRuleConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new SafetyRule("example", SafetyRuleArgs.builder()
.assertedControls(exampleAwsRoute53recoverycontrolconfigRoutingControl.arn())
.controlPanelArn("arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8")
.name("daisyguttridge")
.waitPeriodMs(5000)
.ruleConfig(SafetyRuleRuleConfigArgs.builder()
.inverted(false)
.threshold(1)
.type("ATLEAST")
.build())
.build());
}
}
resources:
example:
type: aws:route53recoverycontrol:SafetyRule
properties:
assertedControls:
- ${exampleAwsRoute53recoverycontrolconfigRoutingControl.arn}
controlPanelArn: arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8
name: daisyguttridge
waitPeriodMs: 5000
ruleConfig:
inverted: false
threshold: 1
type: ATLEAST
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.route53recoverycontrol.SafetyRule("example", {
name: "i_o",
controlPanelArn: "arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8",
waitPeriodMs: 5000,
gatingControls: [exampleAwsRoute53recoverycontrolconfigRoutingControl&#46;arn],
targetControls: [exampleAwsRoute53recoverycontrolconfigRoutingControl&#46;arn],
ruleConfig: {
inverted: false,
threshold: 1,
type: "ATLEAST",
},
});
import pulumi
import pulumi_aws as aws
example = aws.route53recoverycontrol.SafetyRule("example",
name="i_o",
control_panel_arn="arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8",
wait_period_ms=5000,
gating_controls=[example_aws_route53recoverycontrolconfig_routing_control["arn"]],
target_controls=[example_aws_route53recoverycontrolconfig_routing_control["arn"]],
rule_config={
"inverted": False,
"threshold": 1,
"type": "ATLEAST",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Route53RecoveryControl.SafetyRule("example", new()
{
Name = "i_o",
ControlPanelArn = "arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8",
WaitPeriodMs = 5000,
GatingControls = new[]
{
exampleAwsRoute53recoverycontrolconfigRoutingControl.Arn,
},
TargetControls = new[]
{
exampleAwsRoute53recoverycontrolconfigRoutingControl.Arn,
},
RuleConfig = new Aws.Route53RecoveryControl.Inputs.SafetyRuleRuleConfigArgs
{
Inverted = false,
Threshold = 1,
Type = "ATLEAST",
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53recoverycontrol"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := route53recoverycontrol.NewSafetyRule(ctx, "example", &route53recoverycontrol.SafetyRuleArgs{
Name: pulumi.String("i_o"),
ControlPanelArn: pulumi.String("arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8"),
WaitPeriodMs: pulumi.Int(5000),
GatingControls: pulumi.StringArray{
exampleAwsRoute53recoverycontrolconfigRoutingControl.Arn,
},
TargetControls: pulumi.StringArray{
exampleAwsRoute53recoverycontrolconfigRoutingControl.Arn,
},
RuleConfig: &route53recoverycontrol.SafetyRuleRuleConfigArgs{
Inverted: pulumi.Bool(false),
Threshold: pulumi.Int(1),
Type: pulumi.String("ATLEAST"),
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.route53recoverycontrol.SafetyRule;
import com.pulumi.aws.route53recoverycontrol.SafetyRuleArgs;
import com.pulumi.aws.route53recoverycontrol.inputs.SafetyRuleRuleConfigArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new SafetyRule("example", SafetyRuleArgs.builder()
.name("i_o")
.controlPanelArn("arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8")
.waitPeriodMs(5000)
.gatingControls(exampleAwsRoute53recoverycontrolconfigRoutingControl.arn())
.targetControls(exampleAwsRoute53recoverycontrolconfigRoutingControl.arn())
.ruleConfig(SafetyRuleRuleConfigArgs.builder()
.inverted(false)
.threshold(1)
.type("ATLEAST")
.build())
.build());
}
}
resources:
example:
type: aws:route53recoverycontrol:SafetyRule
properties:
name: i_o
controlPanelArn: arn:aws:route53-recovery-control::313517334327:controlpanel/abd5fbfc052d4844a082dbf400f61da8
waitPeriodMs: 5000
gatingControls:
- ${exampleAwsRoute53recoverycontrolconfigRoutingControl.arn}
targetControls:
- ${exampleAwsRoute53recoverycontrolconfigRoutingControl.arn}
ruleConfig:
inverted: false
threshold: 1
type: ATLEAST

Import

Using pulumi import, import Route53 Recovery Control Config Safety Rule using the safety rule ARN. For example:

$ pulumi import aws:route53recoverycontrol/safetyRule:SafetyRule myrule arn:aws:route53-recovery-control::313517334327:controlpanel/1bfba17df8684f5dab0467b71424f7e8/safetyrule/3bacc77003364c0f

Constructors

Link copied to clipboard
constructor(assertedControls: Output<List<String>>? = null, controlPanelArn: Output<String>? = null, gatingControls: Output<List<String>>? = null, name: Output<String>? = null, ruleConfig: Output<SafetyRuleRuleConfigArgs>? = null, targetControls: Output<List<String>>? = null, waitPeriodMs: Output<Int>? = null)

Properties

Link copied to clipboard
val assertedControls: Output<List<String>>? = null

Routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed.

Link copied to clipboard
val controlPanelArn: Output<String>? = null

ARN of the control panel in which this safety rule will reside.

Link copied to clipboard
val gatingControls: Output<List<String>>? = null

Gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.

Link copied to clipboard
val name: Output<String>? = null

Name describing the safety rule.

Link copied to clipboard

Configuration block for safety rule criteria. See below.

Link copied to clipboard
val targetControls: Output<List<String>>? = null

Routing controls that can only be set or unset if the specified rule_config evaluates to true for the specified gating_controls.

Link copied to clipboard
val waitPeriodMs: Output<Int>? = null

Evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail. The following arguments are optional:

Functions

Link copied to clipboard
open override fun toJava(): SafetyRuleArgs