variable "name_prefix" {
  type        = string
  description = "The prefix name of the objects"
  default     = "dev-"
}

variable "common_tags" {
  type        = map(string)
  description = "Common tags to add for the objects"
  default = {
    Environment = "Development"
  }
}

variable "vpc_id" {
  type        = string
  description = "The VPC ID."
}

variable "projectgroup_whitelist" {
  type        = list(object({ cidr = string, description = string }))
  description = "List of CIDRs which will be whitelisted in addition to standard whitelist module list"
  default     = []
}

variable "vpn_masq_cidrs" {
  type        = list(string)
  description = "List of CIDR's under which VPN users will be masquaraded"
  default     = []
}

variable "alooma_proxy_enabled" {
  type        = bool
  description = "If enabled, creates security group for Alooma proxy access, and adds a rule to Aurora SG that enables access to Aurora from alooma host."
  default     = false
}

variable "alooma_hosts" {
  type        = list(object({ cidr = string, description = string }))
  description = "If enabled, creates security group for Alooma proxy access, and adds a rule to Aurora SG that enables access to Aurora from alooma host."
  default = [
    { cidr = "52.35.19.31/32", description = "Alooma host" },
    { cidr = "52.88.52.130/32", description = "Alooma host" },
    { cidr = "52.26.47.1/32", description = "Alooma host" },
    { cidr = "52.24.172.83/32", description = "Alooma host" }
  ]
}

variable "fivetran_hosts" {
  type        = list(object({ cidr = string, description = string }))
  description = "If enabled, creates security group for Fivetran access, and adds a rule to Aurora SG that enables access to Aurora from fivetran host."
  default = [
    { cidr = "35.234.176.144/29", description = "Fivetran host" },
    { cidr = "52.0.2.4/32", description = "Fivetran host" },
  ]
}

variable "external_access_mode" {
  type        = string
  description = "Allowed values: whitelist, vpn, mixed. Based on the value access to resource will be provided to whitelisted ip addresses, vpn ip addresses or both"
  default     = "whitelist"
}

variable "external_https_access" {
  type        = list(object({ cidr = string, description = string }))
  description = "List of external CIDRs which will be allowed by HTTPS."
  default     = []
}

variable "external_mysql_access" {
  type        = list(object({ cidr = string, description = string }))
  description = "List of external CIDRs which will be allowed by 3306 MySQL."
  default     = []
}

variable "managed_prefix_list_ids" {
  type        = list(string)
  description = "Lists of ids of managed prefix lists to provide access to"
  default     = []
}
