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

com.pulumi.vault.identity.inputs.GroupPoliciesState Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing HashiCorp Vault cloud resources.

There is a newer version: 6.5.0-alpha.1732775348
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.vault.identity.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final GroupPoliciesState Empty = new GroupPoliciesState();

    /**
     * Defaults to `true`.
     * 
     * If `true`, this resource will take exclusive control of the policies assigned to the group and will set it equal to what is specified in the resource.
     * 
     * If set to `false`, this resource will simply ensure that the policies specified in the resource are present in the group. When destroying the resource, the resource will ensure that the policies specified in the resource are removed.
     * 
     */
    @Import(name="exclusive")
    private @Nullable Output exclusive;

    /**
     * @return Defaults to `true`.
     * 
     * If `true`, this resource will take exclusive control of the policies assigned to the group and will set it equal to what is specified in the resource.
     * 
     * If set to `false`, this resource will simply ensure that the policies specified in the resource are present in the group. When destroying the resource, the resource will ensure that the policies specified in the resource are removed.
     * 
     */
    public Optional> exclusive() {
        return Optional.ofNullable(this.exclusive);
    }

    /**
     * Group ID to assign policies to.
     * 
     */
    @Import(name="groupId")
    private @Nullable Output groupId;

    /**
     * @return Group ID to assign policies to.
     * 
     */
    public Optional> groupId() {
        return Optional.ofNullable(this.groupId);
    }

    /**
     * The name of the group that are assigned the policies.
     * 
     */
    @Import(name="groupName")
    private @Nullable Output groupName;

    /**
     * @return The name of the group that are assigned the policies.
     * 
     */
    public Optional> groupName() {
        return Optional.ofNullable(this.groupName);
    }

    /**
     * The namespace to provision the resource in.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * 
     */
    @Import(name="namespace")
    private @Nullable Output namespace;

    /**
     * @return The namespace to provision the resource in.
     * The value should not contain leading or trailing forward slashes.
     * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
     * *Available only for Vault Enterprise*.
     * 
     */
    public Optional> namespace() {
        return Optional.ofNullable(this.namespace);
    }

    /**
     * List of policies to assign to the group
     * 
     */
    @Import(name="policies")
    private @Nullable Output> policies;

    /**
     * @return List of policies to assign to the group
     * 
     */
    public Optional>> policies() {
        return Optional.ofNullable(this.policies);
    }

    private GroupPoliciesState() {}

    private GroupPoliciesState(GroupPoliciesState $) {
        this.exclusive = $.exclusive;
        this.groupId = $.groupId;
        this.groupName = $.groupName;
        this.namespace = $.namespace;
        this.policies = $.policies;
    }

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

    public static final class Builder {
        private GroupPoliciesState $;

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

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

        /**
         * @param exclusive Defaults to `true`.
         * 
         * If `true`, this resource will take exclusive control of the policies assigned to the group and will set it equal to what is specified in the resource.
         * 
         * If set to `false`, this resource will simply ensure that the policies specified in the resource are present in the group. When destroying the resource, the resource will ensure that the policies specified in the resource are removed.
         * 
         * @return builder
         * 
         */
        public Builder exclusive(@Nullable Output exclusive) {
            $.exclusive = exclusive;
            return this;
        }

        /**
         * @param exclusive Defaults to `true`.
         * 
         * If `true`, this resource will take exclusive control of the policies assigned to the group and will set it equal to what is specified in the resource.
         * 
         * If set to `false`, this resource will simply ensure that the policies specified in the resource are present in the group. When destroying the resource, the resource will ensure that the policies specified in the resource are removed.
         * 
         * @return builder
         * 
         */
        public Builder exclusive(Boolean exclusive) {
            return exclusive(Output.of(exclusive));
        }

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

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

        /**
         * @param groupName The name of the group that are assigned the policies.
         * 
         * @return builder
         * 
         */
        public Builder groupName(@Nullable Output groupName) {
            $.groupName = groupName;
            return this;
        }

        /**
         * @param groupName The name of the group that are assigned the policies.
         * 
         * @return builder
         * 
         */
        public Builder groupName(String groupName) {
            return groupName(Output.of(groupName));
        }

        /**
         * @param namespace The namespace to provision the resource in.
         * The value should not contain leading or trailing forward slashes.
         * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
         * *Available only for Vault Enterprise*.
         * 
         * @return builder
         * 
         */
        public Builder namespace(@Nullable Output namespace) {
            $.namespace = namespace;
            return this;
        }

        /**
         * @param namespace The namespace to provision the resource in.
         * The value should not contain leading or trailing forward slashes.
         * The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
         * *Available only for Vault Enterprise*.
         * 
         * @return builder
         * 
         */
        public Builder namespace(String namespace) {
            return namespace(Output.of(namespace));
        }

        /**
         * @param policies List of policies to assign to the group
         * 
         * @return builder
         * 
         */
        public Builder policies(@Nullable Output> policies) {
            $.policies = policies;
            return this;
        }

        /**
         * @param policies List of policies to assign to the group
         * 
         * @return builder
         * 
         */
        public Builder policies(List policies) {
            return policies(Output.of(policies));
        }

        /**
         * @param policies List of policies to assign to the group
         * 
         * @return builder
         * 
         */
        public Builder policies(String... policies) {
            return policies(List.of(policies));
        }

        public GroupPoliciesState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy