# ionoscloud\_mongo\_user

Manages a **DbaaS Mongo User**. .

## Example Usage

```hcl
# Basic example

resource "ionoscloud_datacenter" "datacenter_example" {
  name        = "example"
  location    = "de/txl"
  description = "Datacenter for testing dbaas cluster"
}

resource "ionoscloud_lan" "lan_example" {
  datacenter_id = ionoscloud_datacenter.datacenter_example.id
  public        = false
  name          = "example"
}

resource "ionoscloud_mongo_cluster" "example_mongo_cluster" {
  maintenance_window {
    day_of_the_week = "Sunday"
    time            = "09:00:00"
  }
  mongodb_version = "5.0"
  instances       = 1
  display_name    = "example_mongo_cluster"
  location        = ionoscloud_datacenter.datacenter_example.location
  connections {
    datacenter_id = ionoscloud_datacenter.datacenter_example.id
    lan_id        = ionoscloud_lan.lan_example.id
    cidr_list = ["192.168.1.108/24"]
  }
  template_id = "6b78ea06-ee0e-4689-998c-fc9c46e781f6"
}

resource "ionoscloud_mongo_user" "example_mongo_user" {
  cluster_id = ionoscloud_mongo_cluster.example_mongo_cluster.id
  username   = "myUser"
  password   = "strongPassword"
  roles {
    role     = "read"
    database = "db1"
  }
  roles {
    role     = "readWrite"
    database = "db2"
  }
}
```

```hcl
# Complete example

resource "ionoscloud_datacenter" "datacenter_example" {
  name                    = "example"
  location                = "de/txl"
  description             = "Datacenter for testing dbaas cluster"
}

resource "ionoscloud_lan"  "lan_example" {
  datacenter_id           = ionoscloud_datacenter.datacenter_example.id
  public                  = false
  name                    = "example"
}

resource "ionoscloud_mongo_cluster" "example_mongo_cluster" {
  maintenance_window {
    day_of_the_week  = "Sunday"
    time             = "09:00:00"
  }
  mongodb_version = "5.0"
  instances          = 1
  display_name = "example_mongo_cluster"
  location = ionoscloud_datacenter.datacenter_example.location
  connections   {
    datacenter_id   =  ionoscloud_datacenter.datacenter_example.id
    lan_id          =  ionoscloud_lan.lan_example.id
    cidr_list            =  ["192.168.1.108/24"]
  }
  template_id = "6b78ea06-ee0e-4689-998c-fc9c46e781f6"
}

resource "random_password" "cluster_password" {
  length           = 16
  special          = true
  override_special = "!#$%&*()-_=+[]{}<>:?"
}

resource "random_password" "user_password" {
  length           = 16
  special          = true
  override_special = "!#$%&*()-_=+[]{}<>:?"
}

resource "ionoscloud_mongo_user" "example_mongo_user" {
  cluster_id = ionoscloud_mongo_cluster.example_mongo_cluster.id
  username = "myUser"
  password = random_password.user_password.result
  roles {
    role = "read"
    database = "db1"
  }
  roles {
    role = "readWrite"
    database = "db2"
  }
}
```

## Argument reference

* `cluster_id` - (Required)\[string] The unique ID of the cluster. Updates to the value of the field force the cluster to be re-created.
* `username` - (Required)\[string] Used for authentication. Updates to the value of the field force the cluster to be re-created.
* `database` - (Required)\[string] The user database to use for authentication. Updates to the value of the field force the cluster to be re-created.
* `password` - (Required)\[string] User password. Updates to the value of the field force the cluster to be re-created.
* `roles` - (Required)\[string] a list of mongodb user roles. Updates to the value of the field force the cluster to be re-created.
  * `role` - (Required)\[true] Mongodb user role. Examples: read, readWrite, readAnyDatabase, readWriteAnyDatabase, dbAdmin, dbAdminAnyDatabase, clusterMonitor.
  * `database` - (Required)\[true] Database on which to apply the role.

**NOTE:** MongoDb users do not support update at the moment. Changing any attribute will result in the user being re-created.

## Import

Resource DBaaS MongoDB User can be imported using the `clusterID` and the `username`. First, define an empty resource in the plan:

```hcl
resource "ionoscloud_mongo_user" "importeduser" {
  
}
```

Then you can import the user using the following command:

```shell
terraform import ionoscloud_mongo_user.mycluser clusterid/username
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ionos.com/terraform-provider/resources/dbaas_mongo_user.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
