All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.route53recoverycontrol.inputs.SafetyRuleState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

The newest version!
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.route53recoverycontrol.inputs;

import com.pulumi.aws.route53recoverycontrol.inputs.SafetyRuleRuleConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class SafetyRuleState extends com.pulumi.resources.ResourceArgs {

    public static final SafetyRuleState Empty = new SafetyRuleState();

    /**
     * ARN of the safety rule.
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return ARN of the safety rule.
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * Routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed.
     * 
     */
    @Import(name="assertedControls")
    private @Nullable Output> assertedControls;

    /**
     * @return Routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed.
     * 
     */
    public Optional>> assertedControls() {
        return Optional.ofNullable(this.assertedControls);
    }

    /**
     * ARN of the control panel in which this safety rule will reside.
     * 
     */
    @Import(name="controlPanelArn")
    private @Nullable Output controlPanelArn;

    /**
     * @return ARN of the control panel in which this safety rule will reside.
     * 
     */
    public Optional> controlPanelArn() {
        return Optional.ofNullable(this.controlPanelArn);
    }

    /**
     * Gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.
     * 
     */
    @Import(name="gatingControls")
    private @Nullable Output> gatingControls;

    /**
     * @return Gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.
     * 
     */
    public Optional>> gatingControls() {
        return Optional.ofNullable(this.gatingControls);
    }

    /**
     * Name describing the safety rule.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name describing the safety rule.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Configuration block for safety rule criteria. See below.
     * 
     */
    @Import(name="ruleConfig")
    private @Nullable Output ruleConfig;

    /**
     * @return Configuration block for safety rule criteria. See below.
     * 
     */
    public Optional> ruleConfig() {
        return Optional.ofNullable(this.ruleConfig);
    }

    /**
     * Status of the safety rule. `PENDING` when it is being created/updated, `PENDING_DELETION` when it is being deleted, and `DEPLOYED` otherwise.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return Status of the safety rule. `PENDING` when it is being created/updated, `PENDING_DELETION` when it is being deleted, and `DEPLOYED` otherwise.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * Routing controls that can only be set or unset if the specified `rule_config` evaluates to true for the specified `gating_controls`.
     * 
     */
    @Import(name="targetControls")
    private @Nullable Output> targetControls;

    /**
     * @return Routing controls that can only be set or unset if the specified `rule_config` evaluates to true for the specified `gating_controls`.
     * 
     */
    public Optional>> targetControls() {
        return Optional.ofNullable(this.targetControls);
    }

    /**
     * Evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="waitPeriodMs")
    private @Nullable Output waitPeriodMs;

    /**
     * @return Evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail.
     * 
     * The following arguments are optional:
     * 
     */
    public Optional> waitPeriodMs() {
        return Optional.ofNullable(this.waitPeriodMs);
    }

    private SafetyRuleState() {}

    private SafetyRuleState(SafetyRuleState $) {
        this.arn = $.arn;
        this.assertedControls = $.assertedControls;
        this.controlPanelArn = $.controlPanelArn;
        this.gatingControls = $.gatingControls;
        this.name = $.name;
        this.ruleConfig = $.ruleConfig;
        this.status = $.status;
        this.targetControls = $.targetControls;
        this.waitPeriodMs = $.waitPeriodMs;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(SafetyRuleState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private SafetyRuleState $;

        public Builder() {
            $ = new SafetyRuleState();
        }

        public Builder(SafetyRuleState defaults) {
            $ = new SafetyRuleState(Objects.requireNonNull(defaults));
        }

        /**
         * @param arn ARN of the safety rule.
         * 
         * @return builder
         * 
         */
        public Builder arn(@Nullable Output arn) {
            $.arn = arn;
            return this;
        }

        /**
         * @param arn ARN of the safety rule.
         * 
         * @return builder
         * 
         */
        public Builder arn(String arn) {
            return arn(Output.of(arn));
        }

        /**
         * @param assertedControls Routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed.
         * 
         * @return builder
         * 
         */
        public Builder assertedControls(@Nullable Output> assertedControls) {
            $.assertedControls = assertedControls;
            return this;
        }

        /**
         * @param assertedControls Routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed.
         * 
         * @return builder
         * 
         */
        public Builder assertedControls(List assertedControls) {
            return assertedControls(Output.of(assertedControls));
        }

        /**
         * @param assertedControls Routing controls that are part of transactions that are evaluated to determine if a request to change a routing control state is allowed.
         * 
         * @return builder
         * 
         */
        public Builder assertedControls(String... assertedControls) {
            return assertedControls(List.of(assertedControls));
        }

        /**
         * @param controlPanelArn ARN of the control panel in which this safety rule will reside.
         * 
         * @return builder
         * 
         */
        public Builder controlPanelArn(@Nullable Output controlPanelArn) {
            $.controlPanelArn = controlPanelArn;
            return this;
        }

        /**
         * @param controlPanelArn ARN of the control panel in which this safety rule will reside.
         * 
         * @return builder
         * 
         */
        public Builder controlPanelArn(String controlPanelArn) {
            return controlPanelArn(Output.of(controlPanelArn));
        }

        /**
         * @param gatingControls Gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.
         * 
         * @return builder
         * 
         */
        public Builder gatingControls(@Nullable Output> gatingControls) {
            $.gatingControls = gatingControls;
            return this;
        }

        /**
         * @param gatingControls Gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.
         * 
         * @return builder
         * 
         */
        public Builder gatingControls(List gatingControls) {
            return gatingControls(Output.of(gatingControls));
        }

        /**
         * @param gatingControls Gating controls for the new gating rule. That is, routing controls that are evaluated by the rule configuration that you specify.
         * 
         * @return builder
         * 
         */
        public Builder gatingControls(String... gatingControls) {
            return gatingControls(List.of(gatingControls));
        }

        /**
         * @param name Name describing the safety rule.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name describing the safety rule.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param ruleConfig Configuration block for safety rule criteria. See below.
         * 
         * @return builder
         * 
         */
        public Builder ruleConfig(@Nullable Output ruleConfig) {
            $.ruleConfig = ruleConfig;
            return this;
        }

        /**
         * @param ruleConfig Configuration block for safety rule criteria. See below.
         * 
         * @return builder
         * 
         */
        public Builder ruleConfig(SafetyRuleRuleConfigArgs ruleConfig) {
            return ruleConfig(Output.of(ruleConfig));
        }

        /**
         * @param status Status of the safety rule. `PENDING` when it is being created/updated, `PENDING_DELETION` when it is being deleted, and `DEPLOYED` otherwise.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status Status of the safety rule. `PENDING` when it is being created/updated, `PENDING_DELETION` when it is being deleted, and `DEPLOYED` otherwise.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param targetControls Routing controls that can only be set or unset if the specified `rule_config` evaluates to true for the specified `gating_controls`.
         * 
         * @return builder
         * 
         */
        public Builder targetControls(@Nullable Output> targetControls) {
            $.targetControls = targetControls;
            return this;
        }

        /**
         * @param targetControls Routing controls that can only be set or unset if the specified `rule_config` evaluates to true for the specified `gating_controls`.
         * 
         * @return builder
         * 
         */
        public Builder targetControls(List targetControls) {
            return targetControls(Output.of(targetControls));
        }

        /**
         * @param targetControls Routing controls that can only be set or unset if the specified `rule_config` evaluates to true for the specified `gating_controls`.
         * 
         * @return builder
         * 
         */
        public Builder targetControls(String... targetControls) {
            return targetControls(List.of(targetControls));
        }

        /**
         * @param waitPeriodMs Evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder waitPeriodMs(@Nullable Output waitPeriodMs) {
            $.waitPeriodMs = waitPeriodMs;
            return this;
        }

        /**
         * @param waitPeriodMs Evaluation period, in milliseconds (ms), during which any request against the target routing controls will fail.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder waitPeriodMs(Integer waitPeriodMs) {
            return waitPeriodMs(Output.of(waitPeriodMs));
        }

        public SafetyRuleState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy