frostmoln_volume (Resource)
Manages a block storage volume in the Frostmoln platform.
Authoritative scope — who owns what on this resource, declared in internal/scopedecl and machine-checked against the schema.
Enacted and reconciled — every configurable attribute not listed below: the platform applies it, and a refresh reads the truth back.
Create-immutable — encrypted, volume_type: the platform has no in-place migration for it — re-typing, re-zoning or re-encrypting a volume means a new volume.
Create-immutable — snapshot_id: a volume's origin is fixed at create.
Create-immutable — zone: the platform pins the zone at create; there is no in-place migration between zones.
Observed, not enacted — tags_all: keys set outside Terraform — in the portal, by the fm CLI, or stamped by the platform — appear only here and are kept on every apply, never removed.
Example Usage
resource "frostmoln_volume" "data" {
name = "app-data-volume"
description = "Persistent data volume for application"
size_gb = 100
volume_type = "ssd"
zone = "falkenberg"
tags = {
purpose = "data"
}
}Schema
Required
name(String) The name of the volume.size_gb(Number) The size of the volume in gigabytes. Can be increased after creation (resize).
Optional
description(String) A human-readable description of the volume.encrypted(Boolean) Whether the volume is encrypted. Volume encryption is not available yet — setting this to true is rejected at apply time.snapshot_id(String) The snapshot ID to create the volume from.tags(Map of String) Key-value tags for the volume. Merged with the provider'sdefault_tagson every write (a key set here wins). Holds only the keys this configuration sets; the full set is intags_all.timeouts(Block, Optional) (see below for nested schema)volume_type(String) The volume tier key (e.g. "ssd"). The set of selectable tiers is server-defined and may change without a provider release — read it from the frostmoln_volume_tiers data source (only tiers with status "offered" are accepted; a non-offered tier is rejected by the API). Defaults to the platform default tier when omitted.zone(String) The availability zone for the volume.
Read-Only
attached_to(String) The instance ID the volume is attached to, if any.created_at(String) The timestamp when the volume was created.device_path(String) The device path on the instance, if attached.id(String) The unique identifier of the volume.iops(Number) The provisioned IOPS of the volume.status(String) The current status of the volume.tags_all(Map of String) Every tag the platform holds on this resource: the provider'sdefault_tags, this resource's owntags(which win on a shared key), and any key set outside Terraform — in the portal, by the fm CLI, or stamped by the platform. Keys set outside Terraform appear only here and are kept on every apply, never removed.throughput(Number) The throughput of the volume in MB/s.
Nested Schema for timeouts
Optional:
create(String) How long the provider waits for the create operation to converge before giving up (e.g. "45m", "2h").delete(String) How long the provider waits for the delete to complete before giving up (e.g. "30m").update(String) How long the provider waits for an update (resize, in-place change) to converge before giving up (e.g. "30m").