{"slug":"terraform-resources","title":"Terraform Resources","description":"This page documents all resources available in the DanubeData Terraform provider.","section":"Terraform","url":"https://docs.danubedata.ro/terraform-resources","markdown_url":"https://docs.danubedata.ro/terraform-resources.md","breadcrumbs":[{"title":"Terraform","slug":null},{"title":"Resources","slug":"terraform-resources"}],"headings":[{"level":1,"title":"Terraform Resources","id":"terraform-resources"},{"level":2,"title":"danubedatavps","id":"danubedatavps"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Resource Profiles","id":"resource-profiles"},{"level":3,"title":"Available Images","id":"available-images"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatadatabase","id":"danubedatadatabase"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Resource Profiles","id":"resource-profiles"},{"level":3,"title":"Supported Versions","id":"supported-versions"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatacache","id":"danubedatacache"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Resource Profiles","id":"resource-profiles"},{"level":3,"title":"Cache Providers","id":"cache-providers"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatastoragebucket","id":"danubedatastoragebucket"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatastorageaccesskey","id":"danubedatastorageaccesskey"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatasshkey","id":"danubedatasshkey"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedataserverless","id":"danubedataserverless"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Resource Profiles","id":"resource-profiles"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatafirewall","id":"danubedatafirewall"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Rule Arguments","id":"rule-arguments"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatavpssnapshot","id":"danubedatavpssnapshot"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatadatabasesnapshot","id":"danubedatadatabasesnapshot"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatacachesnapshot","id":"danubedatacachesnapshot"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatadatabasereplica","id":"danubedatadatabasereplica"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedataparametergroup","id":"danubedataparametergroup"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatastaticsite","id":"danubedatastaticsite"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"danubedatastaticsitedomain","id":"danubedatastaticsitedomain"},{"level":3,"title":"Example Usage","id":"example-usage"},{"level":3,"title":"Argument Reference","id":"argument-reference"},{"level":3,"title":"Attribute Reference","id":"attribute-reference"},{"level":3,"title":"Import","id":"import"},{"level":2,"title":"Timeouts","id":"timeouts"},{"level":2,"title":"Next Steps","id":"next-steps"}],"format":"markdown","word_count":2568,"content":"# Terraform Resources\n\nThis page documents all resources available in the DanubeData Terraform provider.\n\n## danubedata_vps\n\nManages a Virtual Private Server (VPS) instance.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_ssh_key\" \"main\" {\n  name       = \"my-key\"\n  public_key = file(\"~/.ssh/id_ed25519.pub\")\n}\n\nresource \"danubedata_vps\" \"web\" {\n  name             = \"web-server\"\n  image            = \"ubuntu-24.04\"\n  datacenter       = \"fsn1\"\n  resource_profile = \"small_shared\"\n  auth_method      = \"ssh_key\"\n  ssh_key_id       = danubedata_ssh_key.main.id\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Server name. DNS-compatible, lowercase alphanumeric with hyphens. |\n| `image` | string | Yes | - | OS image (e.g., `ubuntu-24.04`, `debian-12`, `alma-9`). |\n| `datacenter` | string | Yes | - | Datacenter code (currently `fsn1`). |\n| `resource_profile` | string | No | `nano_shared` | Resource profile. See profiles below. |\n| `cpu_allocation_type` | string | No | `shared` | `shared` (4:1 overcommit) or `dedicated`. |\n| `auth_method` | string | Yes | - | `ssh_key` or `password`. |\n| `ssh_key_id` | string | Conditional | - | Required if `auth_method = \"ssh_key\"`. |\n| `password` | string | Conditional | - | Required if `auth_method = \"password\"`. Min 12 characters. |\n| `network_stack` | string | No | `dual_stack` | `ipv4_only`, `ipv6_only`, or `dual_stack`. |\n| `cpu_cores` | number | No | - | Override CPU cores. Requires VPS to be stopped. |\n| `memory_size_gb` | number | No | - | Override memory in GB. Requires VPS to be stopped. |\n| `storage_size_gb` | number | No | - | Override storage in GB. Requires VPS to be stopped. |\n| `custom_cloud_init` | string | No | - | Custom cloud-init configuration. |\n\n### Resource Profiles\n\n**Shared CPU:**\n- `nano_shared`: 2 vCPU, 2 GB RAM, 20 GB NVMe\n- `micro_shared`: 3 vCPU, 4 GB RAM, 40 GB NVMe\n- `small_shared`: 4 vCPU, 8 GB RAM, 80 GB NVMe\n- `medium_shared`: 8 vCPU, 16 GB RAM, 160 GB NVMe\n- `large_shared`: 16 vCPU, 32 GB RAM, 320 GB NVMe\n\n**Dedicated CPU:**\n- `nano`: 2 vCPU, 2 GB RAM, 40 GB NVMe\n- `micro`: 3 vCPU, 4 GB RAM, 80 GB NVMe\n- `small`: 4 vCPU, 8 GB RAM, 160 GB NVMe\n- `medium`: 8 vCPU, 16 GB RAM, 320 GB NVMe\n- `large`: 16 vCPU, 32 GB RAM, 640 GB NVMe\n\n### Available Images\n\n- `ubuntu-26.04`, `ubuntu-24.04`, `ubuntu-22.04`\n- `debian-13`, `debian-12`, `debian-11`\n- `alma-9`, `alma-8`\n- `rocky-9`, `rocky-8`\n- `fedora-42`, `fedora-41`\n- `alpine-3.22`, `alpine-3.21`, `alpine-3.20`\n- `windows-server-2025`\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | VPS instance ID. |\n| `status` | string | Current status (Running, Stopped, etc.). |\n| `public_ip` | string | Public IPv4 address. |\n| `private_ip` | string | Private IP address. |\n| `ipv6_address` | string | IPv6 address (if enabled). |\n| `monthly_cost` | number | Monthly cost in EUR. |\n| `monthly_cost_cents` | number | Monthly cost in cents. |\n| `deployed_at` | string | Deployment timestamp. |\n| `created_at` | string | Creation timestamp. |\n| `updated_at` | string | Last update timestamp. |\n\n### Import\n\n```bash\nterraform import danubedata_vps.web 12345\n```\n\n---\n\n## danubedata_database\n\nManages a managed database instance.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_database\" \"main\" {\n  name             = \"production-db\"\n  database_name    = \"myapp\"\n  engine           = \"postgresql\"\n  version          = \"16\"\n  resource_profile = \"medium\"\n  datacenter       = \"fsn1\"\n}\n\noutput \"connection_string\" {\n  value     = \"postgresql://${danubedata_database.main.username}@${danubedata_database.main.endpoint}:${danubedata_database.main.port}/${danubedata_database.main.database_name}\"\n  sensitive = true\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Instance name. DNS-compatible, lowercase alphanumeric. |\n| `engine` | string | Yes | - | Database engine: `mysql`, `postgresql`, or `mariadb`. |\n| `database_name` | string | No | - | Initial database name. Max 64 characters. |\n| `resource_profile` | string | Yes | - | Profile: `small`, `medium`, or `large`. |\n| `version` | string | No | - | Engine version (e.g., `16` for PostgreSQL). |\n| `datacenter` | string | Yes | - | Datacenter code. |\n| `parameter_group_id` | string | No | - | Custom parameter group ID. |\n\n### Resource Profiles\n\n| Profile | vCPU | Memory | Storage |\n|---------|------|--------|---------|\n| `small` | 1 | 2 GB | 25 GB |\n| `medium` | 2 | 4 GB | 50 GB |\n| `large` | 4 | 8 GB | 100 GB |\n\n### Supported Versions\n\n- **PostgreSQL**: 15, 16, 17, 18\n- **MySQL**: 8.0, 8.4, 9.0, 9.1\n- **MariaDB**: 10.11, 11.4, 11.6\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Database instance ID. |\n| `status` | string | Current status. |\n| `endpoint` | string | Connection hostname. |\n| `port` | number | Connection port. |\n| `username` | string | Admin username. |\n| `storage_size_gb` | number | Storage size in GB. |\n| `memory_size_mb` | number | Memory in MB. |\n| `cpu_cores` | number | Number of CPU cores. |\n| `monthly_cost` | number | Monthly cost in EUR. |\n\n### Import\n\n```bash\nterraform import danubedata_database.main 67890\n```\n\n---\n\n## danubedata_cache\n\nManages an in-memory cache instance.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_cache\" \"redis\" {\n  name             = \"app-cache\"\n  cache_provider   = \"redis\"\n  resource_profile = \"small\"\n  datacenter       = \"fsn1\"\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Instance name. Alphanumeric with hyphens. |\n| `cache_provider` | string | Yes | - | Provider: `redis`, `valkey`, or `dragonfly`. |\n| `resource_profile` | string | Yes | - | Profile: `micro`, `small`, `medium`, or `large`. |\n| `memory_size_mb` | number | No | - | Override memory size in MB. |\n| `cpu_cores` | number | No | - | Override CPU cores. |\n| `version` | string | No | - | Provider version. |\n| `datacenter` | string | Yes | - | Datacenter code. |\n| `parameter_group_id` | string | No | - | Custom parameter group ID. |\n\n### Resource Profiles\n\n| Profile | Memory | vCPU |\n|---------|--------|------|\n| `micro` | 256 MB | 0.5 |\n| `small` | 512 MB | 1 |\n| `medium` | 1 GB | 2 |\n| `large` | 2 GB | 4 |\n\n### Cache Providers\n\n- **Redis**: Industry-standard in-memory data store\n- **Valkey**: Redis-compatible, community-driven fork\n- **Dragonfly**: Multi-threaded, high-performance cache\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Cache instance ID. |\n| `status` | string | Current status. |\n| `endpoint` | string | Connection hostname. |\n| `port` | number | Connection port (usually 6379). |\n| `monthly_cost` | number | Monthly cost in EUR. |\n\n### Import\n\n```bash\nterraform import danubedata_cache.redis 11111\n```\n\n---\n\n## danubedata_storage_bucket\n\nManages an S3-compatible object storage bucket.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_storage_bucket\" \"assets\" {\n  name               = \"my-app-assets\"\n  display_name       = \"Application Assets\"\n  region             = \"fsn1\"\n  versioning_enabled = true\n  encryption_enabled = true\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Bucket name. S3-compatible (3-63 chars, lowercase). |\n| `display_name` | string | No | - | Human-readable display name. |\n| `region` | string | Yes | - | Region (currently `fsn1`). |\n| `public_access` | bool | No | `false` | Enable public read access. |\n| `versioning_enabled` | bool | No | `false` | Enable object versioning. |\n| `encryption_enabled` | bool | No | `true` | Enable server-side encryption. |\n| `encryption_type` | string | No | `sse-s3` | `none`, `sse-s3`, or `sse-kms`. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Bucket ID. |\n| `status` | string | Current status. |\n| `endpoint_url` | string | S3 endpoint URL. |\n| `minio_bucket_name` | string | Internal bucket name. |\n| `size_bytes` | number | Total size in bytes. |\n| `object_count` | number | Number of objects. |\n| `monthly_cost` | number | Monthly cost in EUR. |\n\n### Import\n\n```bash\nterraform import danubedata_storage_bucket.assets abc123\n```\n\n---\n\n## danubedata_storage_access_key\n\nManages S3 access keys for object storage.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_storage_access_key\" \"app\" {\n  name = \"app-storage-key\"\n}\n\noutput \"access_key_id\" {\n  value = danubedata_storage_access_key.app.access_key_id\n}\n\noutput \"secret_access_key\" {\n  value     = danubedata_storage_access_key.app.secret_access_key\n  sensitive = true\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Access key name (1-255 chars). |\n| `expires_at` | string | No | - | Expiration date (ISO 8601 format). |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Access key ID (internal). |\n| `access_key_id` | string | S3 access key ID. |\n| `secret_access_key` | string | S3 secret access key (sensitive). |\n| `status` | string | Current status. |\n\n### Import\n\n```bash\nterraform import danubedata_storage_access_key.app key123\n```\n\n---\n\n## danubedata_ssh_key\n\nManages SSH keys for VPS authentication.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_ssh_key\" \"deploy\" {\n  name       = \"deploy-key\"\n  public_key = file(\"~/.ssh/id_ed25519.pub\")\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Key name. |\n| `public_key` | string | Yes | - | OpenSSH format public key (ssh-rsa or ssh-ed25519). |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | SSH key ID. |\n| `fingerprint` | string | SHA256 fingerprint. |\n| `created_at` | string | Creation timestamp. |\n| `updated_at` | string | Last update timestamp. |\n\n### Import\n\n```bash\nterraform import danubedata_ssh_key.deploy 22222\n```\n\n---\n\n## danubedata_serverless\n\nManages Knative-based serverless containers.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_serverless\" \"api\" {\n  name             = \"my-api\"\n  deployment_type  = \"image\"\n  image_url        = \"ghcr.io/myorg/my-api:latest\"\n  resource_profile = \"small\"\n  port             = 8080\n  min_instances    = 0\n  max_instances    = 10\n\n  environment_variables = {\n    NODE_ENV = \"production\"\n    LOG_LEVEL = \"info\"\n  }\n}\n\noutput \"api_url\" {\n  value = danubedata_serverless.api.url\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Service name. |\n| `resource_profile` | string | No | `small` | Profile: `small`, `medium`, or `large`. |\n| `deployment_type` | string | Yes | - | `image` (Docker) or `git`. |\n| `image_url` | string | Conditional | - | Docker image URL. Required if `deployment_type = \"image\"`. |\n| `git_repository` | string | Conditional | - | Git repo URL. Required if `deployment_type = \"git\"`. |\n| `git_branch` | string | No | `main` | Git branch to deploy. |\n| `port` | number | No | `8080` | Container port (1-65535). |\n| `min_instances` | number | No | `0` | Minimum instances. 0 enables scale-to-zero. |\n| `max_instances` | number | No | `5` | Maximum instances (1-100). |\n| `environment_variables` | map | No | - | Environment variables for the container. |\n\n### Resource Profiles\n\n| Profile | vCPU | Memory |\n|---------|------|--------|\n| `small` | 0.5 | 512 MB |\n| `medium` | 1 | 1 GB |\n| `large` | 2 | 2 GB |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Serverless service ID. |\n| `status` | string | Current status. |\n| `url` | string | Public URL. |\n| `current_month_cost_cents` | number | Current month cost in cents. |\n\n### Import\n\n```bash\nterraform import danubedata_serverless.api 33333\n```\n\n---\n\n## danubedata_firewall\n\nManages firewall rules for network security.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_firewall\" \"web\" {\n  name           = \"web-firewall\"\n  description    = \"Firewall for web servers\"\n  default_action = \"drop\"\n\n  rules {\n    name             = \"allow-ssh\"\n    action           = \"allow\"\n    direction        = \"inbound\"\n    protocol         = \"tcp\"\n    port_range_start = 22\n    port_range_end   = 22\n    source_ips       = [\"0.0.0.0/0\"]\n    priority         = 100\n  }\n\n  rules {\n    name             = \"allow-http\"\n    action           = \"allow\"\n    direction        = \"inbound\"\n    protocol         = \"tcp\"\n    port_range_start = 80\n    port_range_end   = 80\n    source_ips       = [\"0.0.0.0/0\"]\n    priority         = 200\n  }\n\n  rules {\n    name             = \"allow-https\"\n    action           = \"allow\"\n    direction        = \"inbound\"\n    protocol         = \"tcp\"\n    port_range_start = 443\n    port_range_end   = 443\n    source_ips       = [\"0.0.0.0/0\"]\n    priority         = 300\n  }\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Firewall name. |\n| `description` | string | No | - | Description. |\n| `is_default` | bool | No | `false` | Mark as default firewall for team. |\n| `default_action` | string | No | `drop` | Default action: `drop` or `accept`. |\n| `rules` | list | No | - | List of firewall rules. |\n\n### Rule Arguments\n\n| Attribute | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `name` | string | Yes | Rule name. |\n| `action` | string | Yes | `allow` or `deny`. |\n| `direction` | string | Yes | `inbound` or `outbound`. |\n| `protocol` | string | Yes | `tcp`, `udp`, or `icmp`. |\n| `port_range_start` | number | No | Start port (1-65535). |\n| `port_range_end` | number | No | End port (1-65535). |\n| `source_ips` | list | No | List of source CIDR blocks. |\n| `priority` | number | Yes | Rule priority (lower = higher priority). |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Firewall ID. |\n| `status` | string | Current status. |\n\n### Import\n\n```bash\nterraform import danubedata_firewall.web 44444\n```\n\n---\n\n## danubedata_vps_snapshot\n\nManages point-in-time snapshots of VPS instances.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_vps_snapshot\" \"backup\" {\n  name            = \"pre-upgrade-backup\"\n  description     = \"Snapshot before major upgrade\"\n  vps_instance_id = danubedata_vps.web.id\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Snapshot name. |\n| `description` | string | No | - | Snapshot description. |\n| `vps_instance_id` | string | Yes | - | ID of the VPS instance to snapshot. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Snapshot ID. |\n| `status` | string | Current status. |\n| `size_gb` | number | Snapshot size in GB. |\n| `created_at` | string | Creation timestamp. |\n| `updated_at` | string | Last update timestamp. |\n\n### Import\n\n```bash\nterraform import danubedata_vps_snapshot.backup 55555\n```\n\n---\n\n## danubedata_database_snapshot\n\nManages point-in-time snapshots of managed databases.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_database_snapshot\" \"backup\" {\n  name                 = \"pre-migration\"\n  description          = \"Snapshot before schema migration\"\n  database_instance_id = danubedata_database.main.id\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Snapshot name. |\n| `description` | string | No | - | Snapshot description. |\n| `database_instance_id` | string | Yes | - | ID of the database instance to snapshot. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Snapshot ID. |\n| `status` | string | Current status (`pending`, `completed`, `failed`). |\n| `size_gb` | number | Snapshot size in GB. |\n| `created_at` | string | Creation timestamp. |\n| `updated_at` | string | Last update timestamp. |\n\n### Import\n\n```bash\nterraform import danubedata_database_snapshot.backup 66666\n```\n\n---\n\n## danubedata_cache_snapshot\n\nManages point-in-time snapshots of cache instances.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_cache_snapshot\" \"backup\" {\n  name              = \"nightly\"\n  description       = \"Nightly cache snapshot\"\n  cache_instance_id = danubedata_cache.sessions.id\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Snapshot name. |\n| `description` | string | No | - | Snapshot description. |\n| `cache_instance_id` | string | Yes | - | ID of the cache instance to snapshot. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Snapshot ID. |\n| `status` | string | Current status (`pending`, `completed`, `failed`). |\n| `size_mb` | number | Snapshot size in MB. |\n| `created_at` | string | Creation timestamp. |\n| `updated_at` | string | Last update timestamp. |\n\n### Import\n\n```bash\nterraform import danubedata_cache_snapshot.backup 77777\n```\n\n---\n\n## danubedata_database_replica\n\nAdds a read replica to a managed database instance.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_database_replica\" \"read\" {\n  database_instance_id = danubedata_database.main.id\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `database_instance_id` | string | Yes | - | ID of the parent database instance. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Replica ID. |\n| `replica_index` | number | 1-based index of this replica within the parent instance. |\n| `seconds_behind_master` | number | Replication lag in seconds. |\n| `is_replication_healthy` | bool | Whether replication is healthy. |\n\n### Import\n\n```bash\n# Format: {database_instance_id}:{replica_index}\nterraform import danubedata_database_replica.read 67890:1\n```\n\n---\n\n## danubedata_parameter_group\n\nManages a reusable parameter group for databases or caches.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_parameter_group\" \"redis_tuned\" {\n  name          = \"redis-high-throughput\"\n  type          = \"cache\"\n  provider_type = \"redis\"\n  description   = \"Higher I/O threading\"\n\n  parameters = {\n    \"io-threads\" = \"4\"\n  }\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `name` | string | Yes | - | Parameter group name. |\n| `type` | string | Yes | - | Group type: `cache`, `database`, or `queue`. |\n| `provider_type` | string | Yes | - | Provider, e.g. `redis`, `valkey`, `dragonfly`, `mysql`, `postgresql`, `mariadb`. |\n| `parameters` | map(string) | Yes | - | Key/value parameters. Numeric and boolean values are expressed as strings. |\n| `family` | string | No | - | Optional family label (e.g. `redis7.x`). |\n| `description` | string | No | - | Optional description. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Parameter group ID. |\n| `locked_parameters` | list(string) | Parameter keys that instances cannot override. |\n| `is_default` | bool | Whether this is the default group for the provider type. |\n| `is_active` | bool | Whether the group is active. |\n| `is_system` | bool | Whether this is a system-managed group (read-only). |\n\n### Import\n\n```bash\nterraform import danubedata_parameter_group.redis_tuned 88888\n```\n\n---\n\n## danubedata_static_site\n\nManages a static site.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_static_site\" \"marketing\" {\n  team_id = 42\n  name    = \"marketing-site\"\n}\n```\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `team_id` | number | Yes | - | ID of the team that owns the site. |\n| `name` | string | Yes | - | Name of the static site. |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Site ID. |\n| `slug` | string | URL slug for the site. |\n| `url` | string | Default URL of the deployed site. |\n| `output_directory` | string | Build output directory served as the site root. |\n| `status` | string | Current status of the site. |\n| `current_deployment_id` | number | ID of the currently-active deployment, if any. |\n\n### Import\n\n```bash\nterraform import danubedata_static_site.marketing 99999\n```\n\n---\n\n## danubedata_static_site_domain\n\nAttaches a custom domain to a static site.\n\n### Example Usage\n\n```hcl\nresource \"danubedata_static_site_domain\" \"www\" {\n  static_site_id = danubedata_static_site.marketing.id\n  domain         = \"www.example.com\"\n}\n```\n\nAfter apply, configure the returned `verification_record` (a CNAME) at your DNS provider.\n\n### Argument Reference\n\n| Attribute | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `static_site_id` | string | Yes | - | ID of the parent static site. |\n| `domain` | string | Yes | - | The custom domain (e.g. `www.example.com`). |\n\n### Attribute Reference\n\n| Attribute | Type | Description |\n|-----------|------|-------------|\n| `id` | string | Domain attachment ID. |\n| `type` | string | Domain type: `default` or `custom`. |\n| `status` | string | Status of the domain (`pending`, `active`, `failed`). |\n| `verification_record` | string | DNS CNAME record to configure for verification. Empty once verified. |\n| `verified_at` | string | Timestamp when the domain was verified, if any. |\n\n### Import\n\n```bash\n# Format: {static_site_id}:{domain}\nterraform import danubedata_static_site_domain.www abc123:www.example.com\n```\n\n---\n\n## Timeouts\n\nAll resources support configurable timeouts:\n\n```hcl\nresource \"danubedata_vps\" \"app\" {\n  # ...\n\n  timeouts {\n    create = \"10m\"\n    update = \"10m\"\n    delete = \"5m\"\n  }\n}\n```\n\n## Next Steps\n\n- [Terraform Data Sources](https://docs.danubedata.ro/terraform-data-sources) - Query existing resources\n- [Terraform Examples](https://docs.danubedata.ro/terraform-examples) - Real-world examples\n- [Terraform Overview](https://docs.danubedata.ro/terraform-overview) - Getting started guide\n","prev":{"title":"Overview","slug":"terraform-overview","url":"https://docs.danubedata.ro/terraform-overview","markdown_url":"https://docs.danubedata.ro/terraform-overview.md","json_url":"https://docs.danubedata.ro/terraform-overview.json"},"next":{"title":"Data Sources","slug":"terraform-data-sources","url":"https://docs.danubedata.ro/terraform-data-sources","markdown_url":"https://docs.danubedata.ro/terraform-data-sources.md","json_url":"https://docs.danubedata.ro/terraform-data-sources.json"},"index_url":"https://docs.danubedata.ro/index.json"}