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

com.pulumi.mongodbatlas.OrganizationArgs Maven / Gradle / Ivy

// *** 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.mongodbatlas;

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;


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

    public static final OrganizationArgs Empty = new OrganizationArgs();

    /**
     * Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.
     * 
     */
    @Import(name="apiAccessListRequired")
    private @Nullable Output apiAccessListRequired;

    /**
     * @return Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.
     * 
     */
    public Optional> apiAccessListRequired() {
        return Optional.ofNullable(this.apiAccessListRequired);
    }

    @Import(name="description", required=true)
    private Output description;

    public Output description() {
        return this.description;
    }

    /**
     * Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation.
     * 
     */
    @Import(name="federationSettingsId")
    private @Nullable Output federationSettingsId;

    /**
     * @return Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation.
     * 
     */
    public Optional> federationSettingsId() {
        return Optional.ofNullable(this.federationSettingsId);
    }

    /**
     * Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.
     * 
     */
    @Import(name="multiFactorAuthRequired")
    private @Nullable Output multiFactorAuthRequired;

    /**
     * @return Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.
     * 
     */
    public Optional> multiFactorAuthRequired() {
        return Optional.ofNullable(this.multiFactorAuthRequired);
    }

    /**
     * The name of the organization you want to create. (Cannot be changed via this Provider after creation.)
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the organization you want to create. (Cannot be changed via this Provider after creation.)
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername)
     * 
     */
    @Import(name="orgOwnerId", required=true)
    private Output orgOwnerId;

    /**
     * @return Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername)
     * 
     */
    public Output orgOwnerId() {
        return this.orgOwnerId;
    }

    /**
     * Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.
     * 
     */
    @Import(name="restrictEmployeeAccess")
    private @Nullable Output restrictEmployeeAccess;

    /**
     * @return Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.
     * 
     */
    public Optional> restrictEmployeeAccess() {
        return Optional.ofNullable(this.restrictEmployeeAccess);
    }

    /**
     * List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key.
     * 
     */
    @Import(name="roleNames", required=true)
    private Output> roleNames;

    /**
     * @return List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key.
     * 
     */
    public Output> roleNames() {
        return this.roleNames;
    }

    private OrganizationArgs() {}

    private OrganizationArgs(OrganizationArgs $) {
        this.apiAccessListRequired = $.apiAccessListRequired;
        this.description = $.description;
        this.federationSettingsId = $.federationSettingsId;
        this.multiFactorAuthRequired = $.multiFactorAuthRequired;
        this.name = $.name;
        this.orgOwnerId = $.orgOwnerId;
        this.restrictEmployeeAccess = $.restrictEmployeeAccess;
        this.roleNames = $.roleNames;
    }

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

    public static final class Builder {
        private OrganizationArgs $;

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

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

        /**
         * @param apiAccessListRequired Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.
         * 
         * @return builder
         * 
         */
        public Builder apiAccessListRequired(@Nullable Output apiAccessListRequired) {
            $.apiAccessListRequired = apiAccessListRequired;
            return this;
        }

        /**
         * @param apiAccessListRequired Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.
         * 
         * @return builder
         * 
         */
        public Builder apiAccessListRequired(Boolean apiAccessListRequired) {
            return apiAccessListRequired(Output.of(apiAccessListRequired));
        }

        public Builder description(Output description) {
            $.description = description;
            return this;
        }

        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param federationSettingsId Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation.
         * 
         * @return builder
         * 
         */
        public Builder federationSettingsId(@Nullable Output federationSettingsId) {
            $.federationSettingsId = federationSettingsId;
            return this;
        }

        /**
         * @param federationSettingsId Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation.
         * 
         * @return builder
         * 
         */
        public Builder federationSettingsId(String federationSettingsId) {
            return federationSettingsId(Output.of(federationSettingsId));
        }

        /**
         * @param multiFactorAuthRequired Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.
         * 
         * @return builder
         * 
         */
        public Builder multiFactorAuthRequired(@Nullable Output multiFactorAuthRequired) {
            $.multiFactorAuthRequired = multiFactorAuthRequired;
            return this;
        }

        /**
         * @param multiFactorAuthRequired Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.
         * 
         * @return builder
         * 
         */
        public Builder multiFactorAuthRequired(Boolean multiFactorAuthRequired) {
            return multiFactorAuthRequired(Output.of(multiFactorAuthRequired));
        }

        /**
         * @param name The name of the organization you want to create. (Cannot be changed via this Provider after creation.)
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the organization you want to create. (Cannot be changed via this Provider after creation.)
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param orgOwnerId Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername)
         * 
         * @return builder
         * 
         */
        public Builder orgOwnerId(Output orgOwnerId) {
            $.orgOwnerId = orgOwnerId;
            return this;
        }

        /**
         * @param orgOwnerId Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername)
         * 
         * @return builder
         * 
         */
        public Builder orgOwnerId(String orgOwnerId) {
            return orgOwnerId(Output.of(orgOwnerId));
        }

        /**
         * @param restrictEmployeeAccess Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.
         * 
         * @return builder
         * 
         */
        public Builder restrictEmployeeAccess(@Nullable Output restrictEmployeeAccess) {
            $.restrictEmployeeAccess = restrictEmployeeAccess;
            return this;
        }

        /**
         * @param restrictEmployeeAccess Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.
         * 
         * @return builder
         * 
         */
        public Builder restrictEmployeeAccess(Boolean restrictEmployeeAccess) {
            return restrictEmployeeAccess(Output.of(restrictEmployeeAccess));
        }

        /**
         * @param roleNames List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key.
         * 
         * @return builder
         * 
         */
        public Builder roleNames(Output> roleNames) {
            $.roleNames = roleNames;
            return this;
        }

        /**
         * @param roleNames List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key.
         * 
         * @return builder
         * 
         */
        public Builder roleNames(List roleNames) {
            return roleNames(Output.of(roleNames));
        }

        /**
         * @param roleNames List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key.
         * 
         * @return builder
         * 
         */
        public Builder roleNames(String... roleNames) {
            return roleNames(List.of(roleNames));
        }

        public OrganizationArgs build() {
            if ($.description == null) {
                throw new MissingRequiredPropertyException("OrganizationArgs", "description");
            }
            if ($.orgOwnerId == null) {
                throw new MissingRequiredPropertyException("OrganizationArgs", "orgOwnerId");
            }
            if ($.roleNames == null) {
                throw new MissingRequiredPropertyException("OrganizationArgs", "roleNames");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy