# Required
variable "environment" {
  description = "Available values: dev, qa, prod."
}

variable "input_bucket_name" {
  description = "Bucket name for raw assets.(minus the environment prefix)"
  default     = "orcd-podcast-input-assets"
}

variable "output_bucket_name" {
  description = "Bucket for storing assets for megathone (minus the environment prefix)"
  default     = "orcd-podcast-output-assets"
}

variable "input_bucket_cors" {
  type = list(object({
    allowed_headers = list(string)
    allowed_methods = list(string)
    allowed_origins = list(string)
    expose_headers  = list(string)
    max_age_seconds = number
    }
  ))
  description = "List of CORS rules for input assets bucket"
  default     = []
}

variable "output_bucket_cors" {
  type = list(object({
    allowed_headers = list(string)
    allowed_methods = list(string)
    allowed_origins = list(string)
    expose_headers  = list(string)
    max_age_seconds = number
    }
  ))
  description = "List of CORS rules for output assets bucket"
  default     = []
}

variable "output_assets_domain" {
  description = "Domain name for output bucket assets"
}

variable "output_assets_cdn_certificate_arn" {
  description = "Certificate ARN for output assets cloudfront configuration"
}

variable "cdn_min_ttl" {
  default = 0
}

variable "cdn_default_ttl" {
  default = 86400
}

variable "cdn_max_ttl" {
  default = 31536000
}

variable "fargate_task_role" {
  description = "ARN for the Fargate environment task role"
}

variable "additional_roles" {
  type        = list(string)
  description = "User ARNs who are allowed to execute assumeRole required by upload-token"
  default     = []
}

variable "logging_target_bucket" {
  type        = list(string)
  default     = []
  description = "Target bucket for s3 logs"
}

variable "cloudfront_logs_bucket" {
  type    = string
  default = "prod-orcd-cloudfront-logs.s3.amazonaws.com"
}
