» openstack_objectstorage_container_v1

Manages a V1 container resource within OpenStack.

» Example Usage

» Basic Container

resource "openstack_objectstorage_container_v1" "container_1" {
  region = "RegionOne"
  name   = "tf-test-container-1"

  metadata = {
    test = "true"
  }

  content_type = "application/json"

  versioning {
    type     = "versions"
    location = "tf-test-container-versions"
  }
}

» Global Read Access

# Requires that a user know the object name they are attempting to download

resource "openstack_objectstorage_container_v1" "container_1" {
  region = "RegionOne"
  name   = "tf-test-container-1"

  container_read = ".r:*"
}

» Global Read and List Access

# Any user can read any object, and list all objects in the container

resource "openstack_objectstorage_container_v1" "container_1" {
  region = "RegionOne"
  name   = "tf-test-container-1"

  container_read = ".r:*,.rlistings"
}

» Write-Only Access for a User

data "openstack_identity_auth_scope_v3" "current" {
  name = "current"
}

# The named user can only upload objects, not read objects or list the container

resource "openstack_objectstorage_container_v1" "container_1" {
  region = "RegionOne"
  name   = "tf-test-container-1"

  container_read  = ".r:-${var.username}"
  container_write = "${data.openstack_identity_auth_scope_v3.current.project_id}:${var.username}"
}

» Argument Reference

The following arguments are supported:

  • region - (Optional) The region in which to create the container. If omitted, the region argument of the provider is used. Changing this creates a new container.

  • name - (Required) A unique name for the container. Changing this creates a new container.

  • container_read - (Optional) Sets an access control list (ACL) that grants read access. This header can contain a comma-delimited list of users that can read the container (allows the GET method for all objects in the container). Changing this updates the access control list read access.

  • container_sync_to - (Optional) The destination for container synchronization. Changing this updates container synchronization.

  • container_sync_key - (Optional) The secret key for container synchronization. Changing this updates container synchronization.

  • container_write - (Optional) Sets an ACL that grants write access. Changing this updates the access control list write access.

  • versioning - (Optional) Enable object versioning. The structure is described below.

  • metadata - (Optional) Custom key/value pairs to associate with the container. Changing this updates the existing container metadata.

  • content_type - (Optional) The MIME type for the container. Changing this updates the MIME type.

  • force_destroy - (Optional, Default:false ) A boolean that indicates all objects should be deleted from the container so that the container can be destroyed without error. These objects are not recoverable.

The versioning block supports:

» Attributes Reference

The following attributes are exported:

» Import

This resource can be imported by specifying the name of the container:

Some attributes can't be imported : * force_destroy * content_type * metadata * container_sync_to * container_sync_key

So you'll have to terraform plan and terraform apply after the import to fix those missing attributes.

$ terraform import openstack_objectstorage_container_v1.container_1 <name>