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

variable "vpc_security_group_ids" {
  type        = list(string)
  description = "Security group IDs for the VPC where the lambdas will execute"
}

variable "vpc_subnet_ids" {
  type        = list(string)
  description = "VPC subnet IDs where the lambdas will execute"
}

variable "elastic_transcoder_pipeline_id" {
  description = "Elastic Transcoder pipeline ID"
}

variable "image_previews_bucket" {
  description = "Bucket for storing image thumbnails (includes the environment prefix)"
}

variable "output_assets_bucket" {
  description = "Bucket for storing output assets"
}

variable "lambda_default_timeout" {
  description = "Default value for timeout"
  default     = "300"
}

variable "iam_policy_file_location" {
  default = "../modules/lambdas/policies"
}

variable "sns_general_topic_name" {
  description = "Name of the SNS topic for general status notifications"
}

variable "sns_encoding_status_topic_name" {
  description = "Name of the SNS topic for encoding status notifications"
}

# Custom memory size for image encoding, which is needed because that lambda's memory usage
# can exceed the default limit of 128 MB. Variables for other lambdas can be added as needed.
variable "image_encoding_lambda_memory_size" {
  description = "Memory size for the image encoding lambda function"
  default     = "3008"
}

variable "image_validation_lambda_memory_size" {
  description = "Memory size for the image validation lambda function"
  default     = "512"
}

variable "audio_validation_lambda_memory_size" {
  description = "Memory size for the audio validation lambda function"
  default     = "512"
}

variable "audio_waveform_lambda_memory_size" {
  description = "Memory size for the audio waveform lambda function"
  default     = "512"
}

variable "audio_waveform_lambda_execution_time" {
  description = "Execution time for the audio waveform lambda function"
  default     = "900"
}

variable "lambda_concurrent_executions" {
  description = "Number of reserved concurrent executions for lambda function"
  default     = 5
}

variable "sentry_dsn_acknowledge" {
  description = "Sentry pool for the acknowledge lambda"
}

variable "sentry_dsn_encoding_route" {
  description = "Sentry pool for the encoding route lambda"
}

variable "sentry_dsn_audio_validation" {
  description = "Sentry pool for the _audio validation lambda"
}

variable "sentry_dsn_image_validation" {
  description = "Sentry pool for the image validation lambda"
}

variable "sentry_dsn_image_encoding" {
  description = "Sentry pool for the image encoding lambda"
}

variable "sentry_dsn_general_status" {
  description = "Sentry pool for the general status lambda"
}

variable "sentry_dsn_audio_waveform" {
  description = "Sentry pool for the audio waveform lambda"
}

variable "sentry_dsn_final_status" {
  description = "Sentry pool for the final status lambda"
}

variable "sentry_dsn_error_reporting" {
  description = "Sentry pool for the error reporting lambda"
}

variable "datadog_enabled" {
  description = "Whether or not to attach datadog secretsmanager IAM policy"
  default     = true
}

