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

com.pulumi.azurenative.management.HierarchySettingArgs 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.management;

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.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final HierarchySettingArgs Empty = new HierarchySettingArgs();

    /**
     * Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup
     * 
     */
    @Import(name="defaultManagementGroup")
    private @Nullable Output defaultManagementGroup;

    /**
     * @return Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup
     * 
     */
    public Optional> defaultManagementGroup() {
        return Optional.ofNullable(this.defaultManagementGroup);
    }

    /**
     * Management Group ID.
     * 
     */
    @Import(name="groupId", required=true)
    private Output groupId;

    /**
     * @return Management Group ID.
     * 
     */
    public Output groupId() {
        return this.groupId;
    }

    /**
     * Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access.
     * 
     */
    @Import(name="requireAuthorizationForGroupCreation")
    private @Nullable Output requireAuthorizationForGroupCreation;

    /**
     * @return Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access.
     * 
     */
    public Optional> requireAuthorizationForGroupCreation() {
        return Optional.ofNullable(this.requireAuthorizationForGroupCreation);
    }

    private HierarchySettingArgs() {}

    private HierarchySettingArgs(HierarchySettingArgs $) {
        this.defaultManagementGroup = $.defaultManagementGroup;
        this.groupId = $.groupId;
        this.requireAuthorizationForGroupCreation = $.requireAuthorizationForGroupCreation;
    }

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

    public static final class Builder {
        private HierarchySettingArgs $;

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

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

        /**
         * @param defaultManagementGroup Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup
         * 
         * @return builder
         * 
         */
        public Builder defaultManagementGroup(@Nullable Output defaultManagementGroup) {
            $.defaultManagementGroup = defaultManagementGroup;
            return this;
        }

        /**
         * @param defaultManagementGroup Settings that sets the default Management Group under which new subscriptions get added in this tenant. For example, /providers/Microsoft.Management/managementGroups/defaultGroup
         * 
         * @return builder
         * 
         */
        public Builder defaultManagementGroup(String defaultManagementGroup) {
            return defaultManagementGroup(Output.of(defaultManagementGroup));
        }

        /**
         * @param groupId Management Group ID.
         * 
         * @return builder
         * 
         */
        public Builder groupId(Output groupId) {
            $.groupId = groupId;
            return this;
        }

        /**
         * @param groupId Management Group ID.
         * 
         * @return builder
         * 
         */
        public Builder groupId(String groupId) {
            return groupId(Output.of(groupId));
        }

        /**
         * @param requireAuthorizationForGroupCreation Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access.
         * 
         * @return builder
         * 
         */
        public Builder requireAuthorizationForGroupCreation(@Nullable Output requireAuthorizationForGroupCreation) {
            $.requireAuthorizationForGroupCreation = requireAuthorizationForGroupCreation;
            return this;
        }

        /**
         * @param requireAuthorizationForGroupCreation Indicates whether RBAC access is required upon group creation under the root Management Group. If set to true, user will require Microsoft.Management/managementGroups/write action on the root Management Group scope in order to create new Groups directly under the root. This will prevent new users from creating new Management Groups, unless they are given access.
         * 
         * @return builder
         * 
         */
        public Builder requireAuthorizationForGroupCreation(Boolean requireAuthorizationForGroupCreation) {
            return requireAuthorizationForGroupCreation(Output.of(requireAuthorizationForGroupCreation));
        }

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

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy