variable "name" {
  description = "IAM role name"
  type        = string
}

variable "description" {
  description = "IAM role description"
  type        = string
  default     = ""
}

variable "path" {
  description = "IAM role path"
  type        = string
  default     = "/"
}

variable "assume_role_policy" {
  description = "JSON trust policy document for the role"
  type        = string
}

variable "max_session_duration" {
  description = "Maximum session duration in seconds (3600–43200)"
  type        = number
  default     = 3600
}

variable "force_detach_policies" {
  description = "Force-detach policies when destroying the role"
  type        = bool
  default     = false
}

variable "permissions_boundary" {
  description = "ARN of the permissions boundary policy (optional)"
  type        = string
  default     = null
}

variable "managed_policy_arns" {
  description = "List of managed policy ARNs to attach"
  type        = list(string)
  default     = []
}

variable "inline_policies" {
  description = "Map of inline policy name to JSON policy document"
  type        = map(string)
  default     = {}
}

variable "instance_profile" {
  description = "Create an EC2 instance profile for this role"
  type        = bool
  default     = false
}

variable "instance_profile_name" {
  description = "Name for the instance profile (defaults to role name)"
  type        = string
  default     = null
}

variable "tags" {
  description = "Resource tags to apply to all resources"
  type        = map(string)
  default     = {}
}
