Skip to content

frostmoln_messaging_instance (Resource) ​

Manages a managed messaging (LavinMQ) instance 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 — type: the type is chosen at create — one type's instance does not become another's in place.

Create-immutable — subnet_id, version, vpc_id: the platform has no in-place migration for it — a change re-creates the instance.

Observed, not enacted — private_ip: platform-assigned from the subnet at create. 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 ​

terraform
resource "frostmoln_messaging_instance" "broker" {
  name      = "my-broker"
  type      = "lavinmq"
  version   = "2.3"
  flavor_id = "mq.gp1.small"
  vpc_id    = frostmoln_vpc.main.id
  subnet_id = frostmoln_subnet.private.id

  persistence_mode = "persistent"

  # Resource tags: your own metadata for search and filtering. Merged with
  # the provider's default_tags; changing them updates in place.
  tags = {
    env = "prod"
  }
}

Schema ​

Required ​

  • flavor_id (String) The flavor/size for the messaging instance (e.g. "mq.gp1.small", "mq.gp1.medium").
  • name (String) The name of the messaging instance.
  • subnet_id (String) The subnet ID where the messaging instance will be deployed.
  • vpc_id (String) The VPC ID where the messaging instance will be deployed.

Optional ​

  • persistence_mode (String) The persistence mode for the messaging instance ("none" or "persistent"). Defaults to "persistent".
  • tags (Map of String) Resource tags on the instance: your own key/value metadata for search and filtering (?tag=key=value in the API, --tag in the fm CLI), stored by the platform only and never applied to the broker. Changing them updates the instance in place and does not restart or reconfigure it. 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 beginning frostmoln_ or frostmoln- (any case) are reserved. Merged with the provider's default_tags on every write (a key set here wins). Holds only the keys this configuration sets; the full set is in tags_all.
  • timeouts (Block, Optional) (see below for nested schema)
  • type (String) The messaging type. Only "lavinmq" is currently supported. Defaults to "lavinmq".
  • version (String) The version (e.g. "2.3"). Defaults to the recommended version when omitted.

Read-Only ​

  • amqps_port (Number) The AMQPS (TLS) port number the messaging instance is listening on.
  • created_at (String) The timestamp when the instance was created.
  • id (String) The unique identifier of the messaging instance.
  • management_port (Number) The HTTP management/API port number the messaging instance is listening on.
  • port (Number) The AMQP port number the messaging instance is listening on.
  • private_ip (String) The private IP address of the messaging instance.
  • status (String) The current status of the messaging instance.
  • tags_all (Map of String) Every tag the platform holds on this resource: the provider's default_tags, this resource's own tags (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.
  • updated_at (String) The timestamp when the instance was last updated.

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").