objectscale_namespace resource

objectscale_namespace (Resource)

This resource manages the full lifecycle of a Dell ObjectScale Namespace; It also configures key tenant-level settings—such as quotas.

Example Usage

/*
Copyright (c) 2025 Dell Inc., or its subsidiaries. All Rights Reserved.

Licensed under the Mozilla Public License Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://mozilla.org/MPL/2.0/


Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

# Available actions: Create, Update, Delete and Import
# After `terraform apply` of this example file it will create a new namespace with the name set in `name` attribute on the ObjectScale

resource "objectscale_namespace" "all" {
  name                        = "namespace1"
  default_data_services_vpool = "urn:storageos:ReplicationGroupInfo:55ca12b2-e908-4bac-a5fe-3fdaa975e3eb:global"
  allowed_vpools_list = [
    "urn:storageos:ReplicationGroupInfo:cd8bffcb-7a99-4023-82a8-982054fd73c2:global"
  ]
  disallowed_vpools_list = [
    "urn:storageos:ReplicationGroupInfo:e0b539a3-6ddd-4412-b4d0-ce08049f64cd:global"
  ]
  namespace_admins = "admin2,admin3"
  user_mapping = [{
    domain = "domain2"
    groups = ["group3", "group4"]
    attributes = [
      {
        key   = "key3"
        value = ["value5", "value6"]
      },
      {
        key   = "key4"
        value = ["value7", "value8"]
      }
    ]
  }]
  default_bucket_block_size       = 1024
  external_group_admins           = "admin3@foo,admin4@bar"
  is_stale_allowed                = true
  is_object_lock_with_ado_allowed = true
  retention_classes = [
    {
      name   = "class1"
      period = 500
    },
    {
      name   = "class2"
      period = 2000
    }
  ]
  quota = {
    notification_size = 90
    block_size        = 124
  }
  root_user_password = "password1"
}

# After the execution of above resource block, namespace would have been created on the ObjectScale array. For more information, Please check the terraform state file.

Schema

Required

  • default_data_services_vpool (String) Default replication group identifier for this tenant when creating buckets. Required. Updatable.
  • name (String) Name assigned to this resource in ObjectScale. The resource name is set by a user and can be changed at any time. It is not a unique identifier. Required.

Optional

  • allowed_vpools_list (List of String) List of replication group that are allowed access to namespace.
  • current_root_user_password (String, Sensitive) Current root user password. Only to be provided when updating the root user password.
  • default_audit_delete_expiration (Number) Default bucket audit delete expiration. Updatable.
  • default_bucket_block_size (Number) Default bucket quota size. Default: -1. Updatable.
  • disallowed_vpools_list (List of String) List of replication group that are not allowed access to namespace.
  • external_group_admins (String) List of groups from AD Server. Default: ‘’. Updatable.
  • is_compliance_enabled (Boolean) Namespace isComplianceEnabled flag. Default: false.
  • is_encryption_enabled (Boolean) Encryption status of the namesapce. Default: false.
  • is_object_lock_with_ado_allowed (Boolean) Defines the default behavior for allowing Object Lock with ADO on new buckets created in the namespace. Default: false. Updatable.
  • is_stale_allowed (Boolean) Namespace isStaleAllowed flag. Default: false. Updatable..
  • namespace_admins (String) Comma separated list of namespace admins. Default: ‘’. Updatable.
  • quota (Attributes) Namespace Quota. (see below for nested schema)
  • retention_classes (Attributes Set) Retention Class. (see below for nested schema)
  • root_user_password (String, Sensitive) root user password.
  • user_mapping (Attributes List) User Mapping. Default: []. Updatable. (see below for nested schema)

Read-Only

  • id (String) Identifier that is generated by ObjectScale when the resource is created. The resource Id is guaranteed to be unique and immutable across all virtual data centers for all time.
  • root_user_name (String) root user name.

Nested Schema for quota

Optional:

  • block_size (Number) Block Size in GB. Default: -1. Updatable.
  • notification_size (Number) Notification Size in GB. Default: -1. Updatable.

Nested Schema for retention_classes

Required:

  • name (String) Name of the retention class.
  • period (Number) Period of the retention class in seconds.

Nested Schema for user_mapping

Optional:

  • attributes (Attributes List) Attributes. (see below for nested schema)
  • domain (String) A single-valued attribute indicating the user’s IDP domain
  • groups (List of String) Groups.

Nested Schema for user_mapping.attributes

Optional:

  • key (String) Lookup string for this key-value pair
  • value (List of String) Lookup result for this key-value pair.

Unless specified otherwise, all fields of this resource can be updated.

Import

Import is supported using the following syntax:

# Copyright (c) 2025 Dell Inc., or its subsidiaries. All Rights Reserved.

# Licensed under the Mozilla Public License Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#     http://mozilla.org/MPL/2.0/


# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


# The command is
# terraform import objectscale_namespace.namespace <id>
# Example:
terraform import objectscale_namespace.namespace namespace_id
# after running this command, populate the name field and other required parameters in the config file to start managing this resource.
# Note: running "terraform show" after importing shows the current config/state of the resource. You can copy/paste that config to make it easier to manage the resource.