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

com.pulumi.azurenative.security.GovernanceRuleArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
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.azurenative.security;

import com.pulumi.azurenative.security.enums.GovernanceRuleSourceResourceType;
import com.pulumi.azurenative.security.enums.GovernanceRuleType;
import com.pulumi.azurenative.security.inputs.GovernanceRuleEmailNotificationArgs;
import com.pulumi.azurenative.security.inputs.GovernanceRuleOwnerSourceArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
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 GovernanceRuleArgs extends com.pulumi.resources.ResourceArgs {

    public static final GovernanceRuleArgs Empty = new GovernanceRuleArgs();

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

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

    /**
     * Display name of the governance rule
     * 
     */
    @Import(name="displayName", required=true)
    private Output displayName;

    /**
     * @return Display name of the governance rule
     * 
     */
    public Output displayName() {
        return this.displayName;
    }

    /**
     * Excluded scopes, filter out the descendants of the scope (on management scopes)
     * 
     */
    @Import(name="excludedScopes")
    private @Nullable Output> excludedScopes;

    /**
     * @return Excluded scopes, filter out the descendants of the scope (on management scopes)
     * 
     */
    public Optional>> excludedScopes() {
        return Optional.ofNullable(this.excludedScopes);
    }

    /**
     * The email notifications settings for the governance rule, states whether to disable notifications for mangers and owners
     * 
     */
    @Import(name="governanceEmailNotification")
    private @Nullable Output governanceEmailNotification;

    /**
     * @return The email notifications settings for the governance rule, states whether to disable notifications for mangers and owners
     * 
     */
    public Optional> governanceEmailNotification() {
        return Optional.ofNullable(this.governanceEmailNotification);
    }

    /**
     * Defines whether the rule is management scope rule (master connector as a single scope or management scope)
     * 
     */
    @Import(name="includeMemberScopes")
    private @Nullable Output includeMemberScopes;

    /**
     * @return Defines whether the rule is management scope rule (master connector as a single scope or management scope)
     * 
     */
    public Optional> includeMemberScopes() {
        return Optional.ofNullable(this.includeMemberScopes);
    }

    /**
     * Defines whether the rule is active/inactive
     * 
     */
    @Import(name="isDisabled")
    private @Nullable Output isDisabled;

    /**
     * @return Defines whether the rule is active/inactive
     * 
     */
    public Optional> isDisabled() {
        return Optional.ofNullable(this.isDisabled);
    }

    /**
     * Defines whether there is a grace period on the governance rule
     * 
     */
    @Import(name="isGracePeriod")
    private @Nullable Output isGracePeriod;

    /**
     * @return Defines whether there is a grace period on the governance rule
     * 
     */
    public Optional> isGracePeriod() {
        return Optional.ofNullable(this.isGracePeriod);
    }

    /**
     * The owner source for the governance rule - e.g. Manually by user{@literal @}contoso.com - see example
     * 
     */
    @Import(name="ownerSource", required=true)
    private Output ownerSource;

    /**
     * @return The owner source for the governance rule - e.g. Manually by user{@literal @}contoso.com - see example
     * 
     */
    public Output ownerSource() {
        return this.ownerSource;
    }

    /**
     * Governance rule remediation timeframe - this is the time that will affect on the grace-period duration e.g. 7.00:00:00 - means 7 days
     * 
     */
    @Import(name="remediationTimeframe")
    private @Nullable Output remediationTimeframe;

    /**
     * @return Governance rule remediation timeframe - this is the time that will affect on the grace-period duration e.g. 7.00:00:00 - means 7 days
     * 
     */
    public Optional> remediationTimeframe() {
        return Optional.ofNullable(this.remediationTimeframe);
    }

    /**
     * The governance rule key - unique key for the standard governance rule (GUID)
     * 
     */
    @Import(name="ruleId")
    private @Nullable Output ruleId;

    /**
     * @return The governance rule key - unique key for the standard governance rule (GUID)
     * 
     */
    public Optional> ruleId() {
        return Optional.ofNullable(this.ruleId);
    }

    /**
     * The governance rule priority, priority to the lower number. Rules with the same priority on the same scope will not be allowed
     * 
     */
    @Import(name="rulePriority", required=true)
    private Output rulePriority;

    /**
     * @return The governance rule priority, priority to the lower number. Rules with the same priority on the same scope will not be allowed
     * 
     */
    public Output rulePriority() {
        return this.rulePriority;
    }

    /**
     * The rule type of the governance rule, defines the source of the rule e.g. Integrated
     * 
     */
    @Import(name="ruleType", required=true)
    private Output> ruleType;

    /**
     * @return The rule type of the governance rule, defines the source of the rule e.g. Integrated
     * 
     */
    public Output> ruleType() {
        return this.ruleType;
    }

    /**
     * The scope of the Governance rules. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
     * 
     */
    @Import(name="scope", required=true)
    private Output scope;

    /**
     * @return The scope of the Governance rules. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
     * 
     */
    public Output scope() {
        return this.scope;
    }

    /**
     * The governance rule source, what the rule affects, e.g. Assessments
     * 
     */
    @Import(name="sourceResourceType", required=true)
    private Output> sourceResourceType;

    /**
     * @return The governance rule source, what the rule affects, e.g. Assessments
     * 
     */
    public Output> sourceResourceType() {
        return this.sourceResourceType;
    }

    private GovernanceRuleArgs() {}

    private GovernanceRuleArgs(GovernanceRuleArgs $) {
        this.description = $.description;
        this.displayName = $.displayName;
        this.excludedScopes = $.excludedScopes;
        this.governanceEmailNotification = $.governanceEmailNotification;
        this.includeMemberScopes = $.includeMemberScopes;
        this.isDisabled = $.isDisabled;
        this.isGracePeriod = $.isGracePeriod;
        this.ownerSource = $.ownerSource;
        this.remediationTimeframe = $.remediationTimeframe;
        this.ruleId = $.ruleId;
        this.rulePriority = $.rulePriority;
        this.ruleType = $.ruleType;
        this.scope = $.scope;
        this.sourceResourceType = $.sourceResourceType;
    }

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

    public static final class Builder {
        private GovernanceRuleArgs $;

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

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

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

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

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

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

        /**
         * @param excludedScopes Excluded scopes, filter out the descendants of the scope (on management scopes)
         * 
         * @return builder
         * 
         */
        public Builder excludedScopes(@Nullable Output> excludedScopes) {
            $.excludedScopes = excludedScopes;
            return this;
        }

        /**
         * @param excludedScopes Excluded scopes, filter out the descendants of the scope (on management scopes)
         * 
         * @return builder
         * 
         */
        public Builder excludedScopes(List excludedScopes) {
            return excludedScopes(Output.of(excludedScopes));
        }

        /**
         * @param excludedScopes Excluded scopes, filter out the descendants of the scope (on management scopes)
         * 
         * @return builder
         * 
         */
        public Builder excludedScopes(String... excludedScopes) {
            return excludedScopes(List.of(excludedScopes));
        }

        /**
         * @param governanceEmailNotification The email notifications settings for the governance rule, states whether to disable notifications for mangers and owners
         * 
         * @return builder
         * 
         */
        public Builder governanceEmailNotification(@Nullable Output governanceEmailNotification) {
            $.governanceEmailNotification = governanceEmailNotification;
            return this;
        }

        /**
         * @param governanceEmailNotification The email notifications settings for the governance rule, states whether to disable notifications for mangers and owners
         * 
         * @return builder
         * 
         */
        public Builder governanceEmailNotification(GovernanceRuleEmailNotificationArgs governanceEmailNotification) {
            return governanceEmailNotification(Output.of(governanceEmailNotification));
        }

        /**
         * @param includeMemberScopes Defines whether the rule is management scope rule (master connector as a single scope or management scope)
         * 
         * @return builder
         * 
         */
        public Builder includeMemberScopes(@Nullable Output includeMemberScopes) {
            $.includeMemberScopes = includeMemberScopes;
            return this;
        }

        /**
         * @param includeMemberScopes Defines whether the rule is management scope rule (master connector as a single scope or management scope)
         * 
         * @return builder
         * 
         */
        public Builder includeMemberScopes(Boolean includeMemberScopes) {
            return includeMemberScopes(Output.of(includeMemberScopes));
        }

        /**
         * @param isDisabled Defines whether the rule is active/inactive
         * 
         * @return builder
         * 
         */
        public Builder isDisabled(@Nullable Output isDisabled) {
            $.isDisabled = isDisabled;
            return this;
        }

        /**
         * @param isDisabled Defines whether the rule is active/inactive
         * 
         * @return builder
         * 
         */
        public Builder isDisabled(Boolean isDisabled) {
            return isDisabled(Output.of(isDisabled));
        }

        /**
         * @param isGracePeriod Defines whether there is a grace period on the governance rule
         * 
         * @return builder
         * 
         */
        public Builder isGracePeriod(@Nullable Output isGracePeriod) {
            $.isGracePeriod = isGracePeriod;
            return this;
        }

        /**
         * @param isGracePeriod Defines whether there is a grace period on the governance rule
         * 
         * @return builder
         * 
         */
        public Builder isGracePeriod(Boolean isGracePeriod) {
            return isGracePeriod(Output.of(isGracePeriod));
        }

        /**
         * @param ownerSource The owner source for the governance rule - e.g. Manually by user{@literal @}contoso.com - see example
         * 
         * @return builder
         * 
         */
        public Builder ownerSource(Output ownerSource) {
            $.ownerSource = ownerSource;
            return this;
        }

        /**
         * @param ownerSource The owner source for the governance rule - e.g. Manually by user{@literal @}contoso.com - see example
         * 
         * @return builder
         * 
         */
        public Builder ownerSource(GovernanceRuleOwnerSourceArgs ownerSource) {
            return ownerSource(Output.of(ownerSource));
        }

        /**
         * @param remediationTimeframe Governance rule remediation timeframe - this is the time that will affect on the grace-period duration e.g. 7.00:00:00 - means 7 days
         * 
         * @return builder
         * 
         */
        public Builder remediationTimeframe(@Nullable Output remediationTimeframe) {
            $.remediationTimeframe = remediationTimeframe;
            return this;
        }

        /**
         * @param remediationTimeframe Governance rule remediation timeframe - this is the time that will affect on the grace-period duration e.g. 7.00:00:00 - means 7 days
         * 
         * @return builder
         * 
         */
        public Builder remediationTimeframe(String remediationTimeframe) {
            return remediationTimeframe(Output.of(remediationTimeframe));
        }

        /**
         * @param ruleId The governance rule key - unique key for the standard governance rule (GUID)
         * 
         * @return builder
         * 
         */
        public Builder ruleId(@Nullable Output ruleId) {
            $.ruleId = ruleId;
            return this;
        }

        /**
         * @param ruleId The governance rule key - unique key for the standard governance rule (GUID)
         * 
         * @return builder
         * 
         */
        public Builder ruleId(String ruleId) {
            return ruleId(Output.of(ruleId));
        }

        /**
         * @param rulePriority The governance rule priority, priority to the lower number. Rules with the same priority on the same scope will not be allowed
         * 
         * @return builder
         * 
         */
        public Builder rulePriority(Output rulePriority) {
            $.rulePriority = rulePriority;
            return this;
        }

        /**
         * @param rulePriority The governance rule priority, priority to the lower number. Rules with the same priority on the same scope will not be allowed
         * 
         * @return builder
         * 
         */
        public Builder rulePriority(Integer rulePriority) {
            return rulePriority(Output.of(rulePriority));
        }

        /**
         * @param ruleType The rule type of the governance rule, defines the source of the rule e.g. Integrated
         * 
         * @return builder
         * 
         */
        public Builder ruleType(Output> ruleType) {
            $.ruleType = ruleType;
            return this;
        }

        /**
         * @param ruleType The rule type of the governance rule, defines the source of the rule e.g. Integrated
         * 
         * @return builder
         * 
         */
        public Builder ruleType(Either ruleType) {
            return ruleType(Output.of(ruleType));
        }

        /**
         * @param ruleType The rule type of the governance rule, defines the source of the rule e.g. Integrated
         * 
         * @return builder
         * 
         */
        public Builder ruleType(String ruleType) {
            return ruleType(Either.ofLeft(ruleType));
        }

        /**
         * @param ruleType The rule type of the governance rule, defines the source of the rule e.g. Integrated
         * 
         * @return builder
         * 
         */
        public Builder ruleType(GovernanceRuleType ruleType) {
            return ruleType(Either.ofRight(ruleType));
        }

        /**
         * @param scope The scope of the Governance rules. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
         * 
         * @return builder
         * 
         */
        public Builder scope(Output scope) {
            $.scope = scope;
            return this;
        }

        /**
         * @param scope The scope of the Governance rules. Valid scopes are: management group (format: 'providers/Microsoft.Management/managementGroups/{managementGroup}'), subscription (format: 'subscriptions/{subscriptionId}'), or security connector (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Security/securityConnectors/{securityConnectorName})'
         * 
         * @return builder
         * 
         */
        public Builder scope(String scope) {
            return scope(Output.of(scope));
        }

        /**
         * @param sourceResourceType The governance rule source, what the rule affects, e.g. Assessments
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceType(Output> sourceResourceType) {
            $.sourceResourceType = sourceResourceType;
            return this;
        }

        /**
         * @param sourceResourceType The governance rule source, what the rule affects, e.g. Assessments
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceType(Either sourceResourceType) {
            return sourceResourceType(Output.of(sourceResourceType));
        }

        /**
         * @param sourceResourceType The governance rule source, what the rule affects, e.g. Assessments
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceType(String sourceResourceType) {
            return sourceResourceType(Either.ofLeft(sourceResourceType));
        }

        /**
         * @param sourceResourceType The governance rule source, what the rule affects, e.g. Assessments
         * 
         * @return builder
         * 
         */
        public Builder sourceResourceType(GovernanceRuleSourceResourceType sourceResourceType) {
            return sourceResourceType(Either.ofRight(sourceResourceType));
        }

        public GovernanceRuleArgs build() {
            if ($.displayName == null) {
                throw new MissingRequiredPropertyException("GovernanceRuleArgs", "displayName");
            }
            if ($.ownerSource == null) {
                throw new MissingRequiredPropertyException("GovernanceRuleArgs", "ownerSource");
            }
            if ($.rulePriority == null) {
                throw new MissingRequiredPropertyException("GovernanceRuleArgs", "rulePriority");
            }
            if ($.ruleType == null) {
                throw new MissingRequiredPropertyException("GovernanceRuleArgs", "ruleType");
            }
            if ($.scope == null) {
                throw new MissingRequiredPropertyException("GovernanceRuleArgs", "scope");
            }
            if ($.sourceResourceType == null) {
                throw new MissingRequiredPropertyException("GovernanceRuleArgs", "sourceResourceType");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy