variable "stage" {
  type = string
}

variable "aws_region" {
  type = string
}

variable "aws_vpc_id" {
  type = string
}

variable "aws_subnets" {
  type = object({
    a = string
    b = string
    c = string
  })
}

variable "aws_access_key" {
  type = string
}

variable "aws_secret_key" {
  type = string
}

variable "execution_role_arn" {
  type = string
}

variable "datadog_api_key" {
  type = string
}

variable "datadog_site" {
  type = string
}

variable "lb_backend_security_group_name" {
  type = string
}


variable "http_target_group_arn" {
  type = string
}

variable "ws_target_group_arn" {
  type = string
}

variable "repository_url" {
  type = string
}

variable "public_bucket_name" {
  type = string
}

variable "db_address" {
  type = string
}

variable "db_port" {
  type = number
}

variable "postgres_username" {
  type = string
}

variable "postgres_password" {
  type      = string
  sensitive = true
}

variable "postgres_database" {
  type = string
}

variable "main_cache_replication_group_id" {
  type = string
}

variable "redis_db" {
  type = number
}

variable "stripe" {
  type = object({
    api_key        = string
    webhook_secret = string
  })
}

variable "from_email" {
  type = string
}

variable "domain" {
  type = string
}

variable "firebase" {
  type = string
}

variable "reviews_cron_schedule" {
  type = string
}

variable "reservation_seeder_cron_schedule" {
  type = string
}

variable "google" {
  type = object({
    maps_api_key = string,
    action_center = object({
      partner_id = string
      service_account = object({
        client_email = string
        private_key  = string
      }),
      booking_server = object({
        username = string
        password = string
      }),
      feeds = object({
        sftp_key = string
        url      = string
        port     = string
        usernames = object({
          merchants    = string
          services     = string
          availability = string
        })
        upload_schedule = string
      })
    })
  })
}
