frostmoln_postgres_backup (Resource)
Manages a backup of a managed PostgreSQL instance. Every attribute except tags (and timeouts) is fixed at creation; changing one replaces the backup.
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 — instance_id, name, type: a backup is a point-in-time artefact of its instance; changing one is a different backup.
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_postgres_backup" "pre_upgrade" {
instance_id = frostmoln_postgres_instance.main.id
name = "pre-upgrade"
type = "full"
# Resource tags: your own metadata for search and filtering. Merged with
# the provider's default_tags; changing them updates in place.
tags = {
env = "prod"
}
}
# Only "full" backups are yours to create. The platform also takes `base`
# backups of its own on instances with point-in-time recovery; they appear in
# the backup list, cannot be deleted, and are not managed here — a
# point-in-time restore uses `restore_from` on frostmoln_postgres_instance.Schema
Required
instance_id(String) The ID of the PostgreSQL instance to back up.name(String) The name of the backup.
Optional
tags(Map of String) Resource tags on the backup: your own key/value metadata for search and filtering, stored by the platform only. A backup's tags are its own, never copied from the instance. Changing them updates the backup in place. At most 32 keys including the tenant's default tags, which the platform merges in at create; a key is 1-64 bytes matching^[a-zA-Z0-9]([a-zA-Z0-9._:/-]*[a-zA-Z0-9])?$, a value at most 256 bytes; keys beginningfrostmoln_orfrostmoln-(any case) are reserved. 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)type(String) The type of backup. Only "full" is supported (every backup you create is a full dump). Defaults to "full".The platform also takes
basebackups of its own on instances with point-in-time recovery, and those appear in the backup list. They are not managed here: importing or reading one is refused with an explanation, they cannot be deleted, and a point-in-time restore usesrestore_fromonfrostmoln_postgres_instancerather than a backup id.
Read-Only
completed_at(String) The timestamp when the backup completed.id(String) The unique identifier of the backup.size_bytes(Number) The size of the backup in bytes.started_at(String) The timestamp when the backup started.status(String) The current status of the backup.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.
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").