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

com.pulumi.alicloud.cfg.AggregateConfigRuleArgs Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show 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.alicloud.cfg;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final AggregateConfigRuleArgs Empty = new AggregateConfigRuleArgs();

    /**
     * The name of the rule.
     * 
     */
    @Import(name="aggregateConfigRuleName", required=true)
    private Output aggregateConfigRuleName;

    /**
     * @return The name of the rule.
     * 
     */
    public Output aggregateConfigRuleName() {
        return this.aggregateConfigRuleName;
    }

    /**
     * The Aggregator Id.
     * 
     */
    @Import(name="aggregatorId", required=true)
    private Output aggregatorId;

    /**
     * @return The Aggregator Id.
     * 
     */
    public Output aggregatorId() {
        return this.aggregatorId;
    }

    /**
     * The trigger type of the rule. Valid values: `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.
     * 
     */
    @Import(name="configRuleTriggerTypes", required=true)
    private Output configRuleTriggerTypes;

    /**
     * @return The trigger type of the rule. Valid values: `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.
     * 
     */
    public Output configRuleTriggerTypes() {
        return this.configRuleTriggerTypes;
    }

    /**
     * The description of the rule.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return The description of the rule.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.
     * 
     */
    @Import(name="excludeResourceIdsScope")
    private @Nullable Output excludeResourceIdsScope;

    /**
     * @return The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.
     * 
     */
    public Optional> excludeResourceIdsScope() {
        return Optional.ofNullable(this.excludeResourceIdsScope);
    }

    /**
     * The settings map of the input parameters for the rule.
     * 
     */
    @Import(name="inputParameters")
    private @Nullable Output> inputParameters;

    /**
     * @return The settings map of the input parameters for the rule.
     * 
     */
    public Optional>> inputParameters() {
        return Optional.ofNullable(this.inputParameters);
    }

    /**
     * The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the `config_rule_trigger_types` is `ScheduledNotification`.
     * 
     */
    @Import(name="maximumExecutionFrequency")
    private @Nullable Output maximumExecutionFrequency;

    /**
     * @return The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the `config_rule_trigger_types` is `ScheduledNotification`.
     * 
     */
    public Optional> maximumExecutionFrequency() {
        return Optional.ofNullable(this.maximumExecutionFrequency);
    }

    /**
     * The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.
     * 
     */
    @Import(name="regionIdsScope")
    private @Nullable Output regionIdsScope;

    /**
     * @return The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.
     * 
     */
    public Optional> regionIdsScope() {
        return Optional.ofNullable(this.regionIdsScope);
    }

    /**
     * The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.
     * 
     */
    @Import(name="resourceGroupIdsScope")
    private @Nullable Output resourceGroupIdsScope;

    /**
     * @return The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.
     * 
     */
    public Optional> resourceGroupIdsScope() {
        return Optional.ofNullable(this.resourceGroupIdsScope);
    }

    /**
     * Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)
     * 
     */
    @Import(name="resourceTypesScopes", required=true)
    private Output> resourceTypesScopes;

    /**
     * @return Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)
     * 
     */
    public Output> resourceTypesScopes() {
        return this.resourceTypesScopes;
    }

    /**
     * The risk level of the resources that are not compliant with the rule. Valid values:  `1`: critical `2`: warning `3`: info.
     * 
     */
    @Import(name="riskLevel", required=true)
    private Output riskLevel;

    /**
     * @return The risk level of the resources that are not compliant with the rule. Valid values:  `1`: critical `2`: warning `3`: info.
     * 
     */
    public Output riskLevel() {
        return this.riskLevel;
    }

    /**
     * The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)
     * 
     */
    @Import(name="sourceIdentifier", required=true)
    private Output sourceIdentifier;

    /**
     * @return The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)
     * 
     */
    public Output sourceIdentifier() {
        return this.sourceIdentifier;
    }

    /**
     * Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.
     * 
     */
    @Import(name="sourceOwner", required=true)
    private Output sourceOwner;

    /**
     * @return Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.
     * 
     */
    public Output sourceOwner() {
        return this.sourceOwner;
    }

    /**
     * The rule status. The valid values: `ACTIVE`, `INACTIVE`.
     * 
     */
    @Import(name="status")
    private @Nullable Output status;

    /**
     * @return The rule status. The valid values: `ACTIVE`, `INACTIVE`.
     * 
     */
    public Optional> status() {
        return Optional.ofNullable(this.status);
    }

    /**
     * The rule monitors the tag key, only applies to rules created based on managed rules.
     * 
     */
    @Import(name="tagKeyScope")
    private @Nullable Output tagKeyScope;

    /**
     * @return The rule monitors the tag key, only applies to rules created based on managed rules.
     * 
     */
    public Optional> tagKeyScope() {
        return Optional.ofNullable(this.tagKeyScope);
    }

    /**
     * The rule monitors the tag value, use with the `tag_key_scope` options. only applies to rules created based on managed rules.
     * 
     */
    @Import(name="tagValueScope")
    private @Nullable Output tagValueScope;

    /**
     * @return The rule monitors the tag value, use with the `tag_key_scope` options. only applies to rules created based on managed rules.
     * 
     */
    public Optional> tagValueScope() {
        return Optional.ofNullable(this.tagValueScope);
    }

    private AggregateConfigRuleArgs() {}

    private AggregateConfigRuleArgs(AggregateConfigRuleArgs $) {
        this.aggregateConfigRuleName = $.aggregateConfigRuleName;
        this.aggregatorId = $.aggregatorId;
        this.configRuleTriggerTypes = $.configRuleTriggerTypes;
        this.description = $.description;
        this.excludeResourceIdsScope = $.excludeResourceIdsScope;
        this.inputParameters = $.inputParameters;
        this.maximumExecutionFrequency = $.maximumExecutionFrequency;
        this.regionIdsScope = $.regionIdsScope;
        this.resourceGroupIdsScope = $.resourceGroupIdsScope;
        this.resourceTypesScopes = $.resourceTypesScopes;
        this.riskLevel = $.riskLevel;
        this.sourceIdentifier = $.sourceIdentifier;
        this.sourceOwner = $.sourceOwner;
        this.status = $.status;
        this.tagKeyScope = $.tagKeyScope;
        this.tagValueScope = $.tagValueScope;
    }

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

    public static final class Builder {
        private AggregateConfigRuleArgs $;

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

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

        /**
         * @param aggregateConfigRuleName The name of the rule.
         * 
         * @return builder
         * 
         */
        public Builder aggregateConfigRuleName(Output aggregateConfigRuleName) {
            $.aggregateConfigRuleName = aggregateConfigRuleName;
            return this;
        }

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

        /**
         * @param aggregatorId The Aggregator Id.
         * 
         * @return builder
         * 
         */
        public Builder aggregatorId(Output aggregatorId) {
            $.aggregatorId = aggregatorId;
            return this;
        }

        /**
         * @param aggregatorId The Aggregator Id.
         * 
         * @return builder
         * 
         */
        public Builder aggregatorId(String aggregatorId) {
            return aggregatorId(Output.of(aggregatorId));
        }

        /**
         * @param configRuleTriggerTypes The trigger type of the rule. Valid values: `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.
         * 
         * @return builder
         * 
         */
        public Builder configRuleTriggerTypes(Output configRuleTriggerTypes) {
            $.configRuleTriggerTypes = configRuleTriggerTypes;
            return this;
        }

        /**
         * @param configRuleTriggerTypes The trigger type of the rule. Valid values: `ConfigurationItemChangeNotification`: The rule is triggered upon configuration changes. `ScheduledNotification`: The rule is triggered as scheduled.
         * 
         * @return builder
         * 
         */
        public Builder configRuleTriggerTypes(String configRuleTriggerTypes) {
            return configRuleTriggerTypes(Output.of(configRuleTriggerTypes));
        }

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

        /**
         * @param description The description of the rule.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param excludeResourceIdsScope The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.
         * 
         * @return builder
         * 
         */
        public Builder excludeResourceIdsScope(@Nullable Output excludeResourceIdsScope) {
            $.excludeResourceIdsScope = excludeResourceIdsScope;
            return this;
        }

        /**
         * @param excludeResourceIdsScope The rule monitors excluded resource IDs, multiple of which are separated by commas, only applies to rules created based on managed rules, , custom rule this field is empty.
         * 
         * @return builder
         * 
         */
        public Builder excludeResourceIdsScope(String excludeResourceIdsScope) {
            return excludeResourceIdsScope(Output.of(excludeResourceIdsScope));
        }

        /**
         * @param inputParameters The settings map of the input parameters for the rule.
         * 
         * @return builder
         * 
         */
        public Builder inputParameters(@Nullable Output> inputParameters) {
            $.inputParameters = inputParameters;
            return this;
        }

        /**
         * @param inputParameters The settings map of the input parameters for the rule.
         * 
         * @return builder
         * 
         */
        public Builder inputParameters(Map inputParameters) {
            return inputParameters(Output.of(inputParameters));
        }

        /**
         * @param maximumExecutionFrequency The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the `config_rule_trigger_types` is `ScheduledNotification`.
         * 
         * @return builder
         * 
         */
        public Builder maximumExecutionFrequency(@Nullable Output maximumExecutionFrequency) {
            $.maximumExecutionFrequency = maximumExecutionFrequency;
            return this;
        }

        /**
         * @param maximumExecutionFrequency The frequency of the compliance evaluations. Valid values:  `One_Hour`, `Three_Hours`, `Six_Hours`, `Twelve_Hours`, `TwentyFour_Hours`. System default value is `TwentyFour_Hours` and valid when the `config_rule_trigger_types` is `ScheduledNotification`.
         * 
         * @return builder
         * 
         */
        public Builder maximumExecutionFrequency(String maximumExecutionFrequency) {
            return maximumExecutionFrequency(Output.of(maximumExecutionFrequency));
        }

        /**
         * @param regionIdsScope The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder regionIdsScope(@Nullable Output regionIdsScope) {
            $.regionIdsScope = regionIdsScope;
            return this;
        }

        /**
         * @param regionIdsScope The rule monitors region IDs, separated by commas, only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder regionIdsScope(String regionIdsScope) {
            return regionIdsScope(Output.of(regionIdsScope));
        }

        /**
         * @param resourceGroupIdsScope The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupIdsScope(@Nullable Output resourceGroupIdsScope) {
            $.resourceGroupIdsScope = resourceGroupIdsScope;
            return this;
        }

        /**
         * @param resourceGroupIdsScope The rule monitors resource group IDs, separated by commas, only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupIdsScope(String resourceGroupIdsScope) {
            return resourceGroupIdsScope(Output.of(resourceGroupIdsScope));
        }

        /**
         * @param resourceTypesScopes Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)
         * 
         * @return builder
         * 
         */
        public Builder resourceTypesScopes(Output> resourceTypesScopes) {
            $.resourceTypesScopes = resourceTypesScopes;
            return this;
        }

        /**
         * @param resourceTypesScopes Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)
         * 
         * @return builder
         * 
         */
        public Builder resourceTypesScopes(List resourceTypesScopes) {
            return resourceTypesScopes(Output.of(resourceTypesScopes));
        }

        /**
         * @param resourceTypesScopes Resource types to be evaluated. [Alibaba Cloud services that support Cloud Config.](https://www.alibabacloud.com/help/en/doc-detail/127411.htm)
         * 
         * @return builder
         * 
         */
        public Builder resourceTypesScopes(String... resourceTypesScopes) {
            return resourceTypesScopes(List.of(resourceTypesScopes));
        }

        /**
         * @param riskLevel The risk level of the resources that are not compliant with the rule. Valid values:  `1`: critical `2`: warning `3`: info.
         * 
         * @return builder
         * 
         */
        public Builder riskLevel(Output riskLevel) {
            $.riskLevel = riskLevel;
            return this;
        }

        /**
         * @param riskLevel The risk level of the resources that are not compliant with the rule. Valid values:  `1`: critical `2`: warning `3`: info.
         * 
         * @return builder
         * 
         */
        public Builder riskLevel(Integer riskLevel) {
            return riskLevel(Output.of(riskLevel));
        }

        /**
         * @param sourceIdentifier The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)
         * 
         * @return builder
         * 
         */
        public Builder sourceIdentifier(Output sourceIdentifier) {
            $.sourceIdentifier = sourceIdentifier;
            return this;
        }

        /**
         * @param sourceIdentifier The identifier of the rule. For a managed rule, the value is the identifier of the managed rule. For a custom rule, the value is the ARN of the custom rule. Using managed rules, refer to [List of Managed rules.](https://www.alibabacloud.com/help/en/doc-detail/127404.htm)
         * 
         * @return builder
         * 
         */
        public Builder sourceIdentifier(String sourceIdentifier) {
            return sourceIdentifier(Output.of(sourceIdentifier));
        }

        /**
         * @param sourceOwner Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.
         * 
         * @return builder
         * 
         */
        public Builder sourceOwner(Output sourceOwner) {
            $.sourceOwner = sourceOwner;
            return this;
        }

        /**
         * @param sourceOwner Specifies whether you or Alibaba Cloud owns and manages the rule. Valid values: `CUSTOM_FC`: The rule is a custom rule and you own the rule. `ALIYUN`: The rule is a managed rule and Alibaba Cloud owns the rule.
         * 
         * @return builder
         * 
         */
        public Builder sourceOwner(String sourceOwner) {
            return sourceOwner(Output.of(sourceOwner));
        }

        /**
         * @param status The rule status. The valid values: `ACTIVE`, `INACTIVE`.
         * 
         * @return builder
         * 
         */
        public Builder status(@Nullable Output status) {
            $.status = status;
            return this;
        }

        /**
         * @param status The rule status. The valid values: `ACTIVE`, `INACTIVE`.
         * 
         * @return builder
         * 
         */
        public Builder status(String status) {
            return status(Output.of(status));
        }

        /**
         * @param tagKeyScope The rule monitors the tag key, only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder tagKeyScope(@Nullable Output tagKeyScope) {
            $.tagKeyScope = tagKeyScope;
            return this;
        }

        /**
         * @param tagKeyScope The rule monitors the tag key, only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder tagKeyScope(String tagKeyScope) {
            return tagKeyScope(Output.of(tagKeyScope));
        }

        /**
         * @param tagValueScope The rule monitors the tag value, use with the `tag_key_scope` options. only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder tagValueScope(@Nullable Output tagValueScope) {
            $.tagValueScope = tagValueScope;
            return this;
        }

        /**
         * @param tagValueScope The rule monitors the tag value, use with the `tag_key_scope` options. only applies to rules created based on managed rules.
         * 
         * @return builder
         * 
         */
        public Builder tagValueScope(String tagValueScope) {
            return tagValueScope(Output.of(tagValueScope));
        }

        public AggregateConfigRuleArgs build() {
            if ($.aggregateConfigRuleName == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "aggregateConfigRuleName");
            }
            if ($.aggregatorId == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "aggregatorId");
            }
            if ($.configRuleTriggerTypes == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "configRuleTriggerTypes");
            }
            if ($.resourceTypesScopes == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "resourceTypesScopes");
            }
            if ($.riskLevel == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "riskLevel");
            }
            if ($.sourceIdentifier == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "sourceIdentifier");
            }
            if ($.sourceOwner == null) {
                throw new MissingRequiredPropertyException("AggregateConfigRuleArgs", "sourceOwner");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy