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

com.pulumi.azurenative.resources.inputs.DenySettingsArgs Maven / Gradle / Ivy

There is a newer version: 2.82.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.resources.inputs;

import com.pulumi.azurenative.resources.enums.DenySettingsMode;
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.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Defines how resources deployed by the deployment stack are locked.
 * 
 */
public final class DenySettingsArgs extends com.pulumi.resources.ResourceArgs {

    public static final DenySettingsArgs Empty = new DenySettingsArgs();

    /**
     * DenySettings will be applied to child scopes.
     * 
     */
    @Import(name="applyToChildScopes")
    private @Nullable Output applyToChildScopes;

    /**
     * @return DenySettings will be applied to child scopes.
     * 
     */
    public Optional> applyToChildScopes() {
        return Optional.ofNullable(this.applyToChildScopes);
    }

    /**
     * List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*\/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed.
     * 
     */
    @Import(name="excludedActions")
    private @Nullable Output> excludedActions;

    /**
     * @return List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*\/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed.
     * 
     */
    public Optional>> excludedActions() {
        return Optional.ofNullable(this.excludedActions);
    }

    /**
     * List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted.
     * 
     */
    @Import(name="excludedPrincipals")
    private @Nullable Output> excludedPrincipals;

    /**
     * @return List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted.
     * 
     */
    public Optional>> excludedPrincipals() {
        return Optional.ofNullable(this.excludedPrincipals);
    }

    /**
     * denySettings Mode.
     * 
     */
    @Import(name="mode", required=true)
    private Output> mode;

    /**
     * @return denySettings Mode.
     * 
     */
    public Output> mode() {
        return this.mode;
    }

    private DenySettingsArgs() {}

    private DenySettingsArgs(DenySettingsArgs $) {
        this.applyToChildScopes = $.applyToChildScopes;
        this.excludedActions = $.excludedActions;
        this.excludedPrincipals = $.excludedPrincipals;
        this.mode = $.mode;
    }

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

    public static final class Builder {
        private DenySettingsArgs $;

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

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

        /**
         * @param applyToChildScopes DenySettings will be applied to child scopes.
         * 
         * @return builder
         * 
         */
        public Builder applyToChildScopes(@Nullable Output applyToChildScopes) {
            $.applyToChildScopes = applyToChildScopes;
            return this;
        }

        /**
         * @param applyToChildScopes DenySettings will be applied to child scopes.
         * 
         * @return builder
         * 
         */
        public Builder applyToChildScopes(Boolean applyToChildScopes) {
            return applyToChildScopes(Output.of(applyToChildScopes));
        }

        /**
         * @param excludedActions List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*\/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed.
         * 
         * @return builder
         * 
         */
        public Builder excludedActions(@Nullable Output> excludedActions) {
            $.excludedActions = excludedActions;
            return this;
        }

        /**
         * @param excludedActions List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*\/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed.
         * 
         * @return builder
         * 
         */
        public Builder excludedActions(List excludedActions) {
            return excludedActions(Output.of(excludedActions));
        }

        /**
         * @param excludedActions List of role-based management operations that are excluded from the denySettings. Up to 200 actions are permitted. If the denySetting mode is set to 'denyWriteAndDelete', then the following actions are automatically appended to 'excludedActions': '*\/read' and 'Microsoft.Authorization/locks/delete'. If the denySetting mode is set to 'denyDelete', then the following actions are automatically appended to 'excludedActions': 'Microsoft.Authorization/locks/delete'. Duplicate actions will be removed.
         * 
         * @return builder
         * 
         */
        public Builder excludedActions(String... excludedActions) {
            return excludedActions(List.of(excludedActions));
        }

        /**
         * @param excludedPrincipals List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted.
         * 
         * @return builder
         * 
         */
        public Builder excludedPrincipals(@Nullable Output> excludedPrincipals) {
            $.excludedPrincipals = excludedPrincipals;
            return this;
        }

        /**
         * @param excludedPrincipals List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted.
         * 
         * @return builder
         * 
         */
        public Builder excludedPrincipals(List excludedPrincipals) {
            return excludedPrincipals(Output.of(excludedPrincipals));
        }

        /**
         * @param excludedPrincipals List of AAD principal IDs excluded from the lock. Up to 5 principals are permitted.
         * 
         * @return builder
         * 
         */
        public Builder excludedPrincipals(String... excludedPrincipals) {
            return excludedPrincipals(List.of(excludedPrincipals));
        }

        /**
         * @param mode denySettings Mode.
         * 
         * @return builder
         * 
         */
        public Builder mode(Output> mode) {
            $.mode = mode;
            return this;
        }

        /**
         * @param mode denySettings Mode.
         * 
         * @return builder
         * 
         */
        public Builder mode(Either mode) {
            return mode(Output.of(mode));
        }

        /**
         * @param mode denySettings Mode.
         * 
         * @return builder
         * 
         */
        public Builder mode(String mode) {
            return mode(Either.ofLeft(mode));
        }

        /**
         * @param mode denySettings Mode.
         * 
         * @return builder
         * 
         */
        public Builder mode(DenySettingsMode mode) {
            return mode(Either.ofRight(mode));
        }

        public DenySettingsArgs build() {
            if ($.mode == null) {
                throw new MissingRequiredPropertyException("DenySettingsArgs", "mode");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy