variable "environment" { description = "Target environment name." type = string } variable "management_endpoint" { description = "RabbitMQ Management API endpoint, for example http://rabbitmq.rabbitmq.svc.cluster.local:15672." type = string } variable "management_username" { description = "RabbitMQ admin username for Management API." type = string sensitive = true } variable "management_password" { description = "RabbitMQ admin password for Management API." type = string sensitive = true } variable "amqp_host" { description = "RabbitMQ AMQP host published to generated Kubernetes secrets." type = string default = "rabbitmq.rabbitmq.svc.cluster.local" } variable "amqp_port" { description = "RabbitMQ AMQP port published to generated Kubernetes secrets." type = number default = 5672 } variable "rabbitmq_policy" { description = "Platform policy for RabbitMQ declarations." type = object({ allow_create = optional(bool, true) allow_delete = optional(bool, false) }) default = {} } variable "vhosts" { description = "RabbitMQ vhosts declared in infrastructure.yaml." type = list(object({ name = string description = optional(string) tracing = optional(bool, false) })) default = [] } variable "users" { description = "RabbitMQ users declared in infrastructure.yaml." type = list(object({ name = string tags = optional(list(string), []) password_length = optional(number) password_special = optional(bool, false) })) default = [] } variable "permissions" { description = "RabbitMQ permissions declared in infrastructure.yaml." type = list(object({ vhost = string user = string configure = optional(string, "") write = optional(string, "") read = optional(string, "") })) default = [] } variable "topic_permissions" { description = "RabbitMQ topic permissions declared in infrastructure.yaml." type = list(object({ vhost = string user = string permissions = optional(list(object({ exchange = string write = optional(string, "") read = optional(string, "") })), []) })) default = [] } variable "exchanges" { description = "RabbitMQ exchanges declared in infrastructure.yaml." type = list(object({ name = string vhost = string type = optional(string, "topic") durable = optional(bool, true) auto_delete = optional(bool, false) arguments = optional(any, {}) })) default = [] } variable "queues" { description = "RabbitMQ queues declared in infrastructure.yaml." type = list(object({ name = string vhost = string durable = optional(bool, true) auto_delete = optional(bool, false) arguments = optional(any, {}) })) default = [] } variable "bindings" { description = "RabbitMQ bindings declared in infrastructure.yaml." type = list(object({ vhost = string source = string destination = string destination_type = string routing_key = optional(string, "") arguments = optional(any, {}) properties_key = optional(string) })) default = [] } variable "policies" { description = "RabbitMQ policies declared in infrastructure.yaml." type = list(object({ name = string vhost = string pattern = string apply_to = optional(string, "all") priority = optional(number, 0) definition = any })) default = [] } variable "unmanaged_output_users" { description = "Existing RabbitMQ users intentionally not managed, kept only for output compatibility." type = list(string) default = [] } variable "unmanaged_output_permissions" { description = "Existing RabbitMQ user/vhost pairs intentionally not managed, kept only for output compatibility." type = list(object({ vhost = string user = string })) default = [] } variable "default_user_password_length" { description = "Default generated RabbitMQ user password length." type = number default = 32 }