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

variable "region" {
  default     = "us-east-1"
  description = "aws resources region"
}

variable "service_name" {
  description = "Service name"
  default     = "lambda-vector"
}

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

variable "datadog_advanced_enabled" {
  description = "Enabled DataDog monitoring."
  default     = true
}

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

variable "lambda_concurrent_executions" {
  description = "Number of lambda concurent executions"
  default     = 10
}

variable "application_family" {
  type        = string
  description = "Name of application family"
  default     = "vector"
}

variable "team_name" {
  type        = string
  description = "Name of team that owns the service"
  default     = "content-delivery-asset-management"
}

variable "lambda_memory_size" {
  description = "Memory size for the lambda function"
  default     = "512"
}

variable "event_source_mapping_close_batch_queue_name" {
  description = "SQS queue name for lambda w/o ENV prefix."
  default     = "batch_to_close-queue"
}

variable "sqs_message_batch_size" {
  description = "Number of messages to send to lambda"
  default     = 1
}

variable "lambda_close_batch_name" {
  description = "Close batch lambda name"
  default     = "close-batch"
}

variable "lambda_find_batch_to_close_name" {
  description = "Find batch to close lambda name"
  default     = "find-batch-to-close"
}

variable "lambda_ready_deliveries_name" {
  description = "Ready deliveries lambda name"
  default     = "ready-deliveries"
}

variable "lambda_ready_deliveries_manager_name" {
  description = "Ready deliveries manager lambda name"
  default     = "ready-deliveries-manager"
}

variable "lambda_queue_tagger_name" {
  description = "SQS queue tagger lambda name"
  default     = "queue-tagger"
}

variable "ar_mysql_host" {
  default = "qa.db.qaorch.com"
}

variable "ar_mysql_port" {
  default = "3306"
}

variable "ar_mysql_database" {
  default = "art_relations"
}

variable "dd_mysql_host" {
  default = "qadddb.qaorch.com"
}

variable "dd_mysql_port" {
  default = "3306"
}

variable "dd_mysql_database" {
  default = "direct_delivery"
}

# This env var exists because, if this is deployed to dev, then
# the secretsmanager library will look for an api_key env var
variable "api_key" {
  description = "API key for the splitio"
  default     = ""
}

variable "datadog_secret_names" {
  type = list(string)
  default = [
    "DATADOG_APP_KEY",
    "DATADOG_API_KEY",
  ]
}

variable "mysql_dddb_secret_names" {
  type = list(string)
  default = [
    "DD_MYSQL_PASSWORD",
  ]
}

variable "mysql_ardb_secret_names" {
  type = list(string)
  default = [
    "AR_MYSQL_PASSWORD",
  ]
}

variable "lambda_ar_to_ddb_sync_name" {
  description = "ar-to-ddb-sync lambda name"
  default     = "ar-to-ddb-sync"
}

variable "orders_ddb_table" {
  description = "Orders dynamodb table name"
  default     = "vector-orders"
}

variable "orders_s3_bucket" {
  description = "Orders s3 bucket name"
  default     = "orcdbucket"
}

variable "order_encoder_id_list" {
  description = "Encoder ID list"
  default     = "17,18,19,23"
}

variable "ready_deliveries_secret_names" {
  type = list(string)
  default = [
    "PK_QA_V25DD",
    "PK_ID_RSA_451",
    "PK_ID_RSA",
    "PK_ID_DSA_YOUTUBE",
    "PK_ASPERA_TOKENAUTH_ID_RSA",
    "PK_ID_DSA",
  ]
}

variable "dd_mysql_user_throttler" {
  default = "qa-dd_user_rw"
}

variable "secrets_throttler" {
  description = "List of secrets manager secrets to create"
  type        = list(string)
  default = [
    "RO_DD_MYSQL_PASSWORD",
    "DD_MYSQL_PASSWORD"
  ]
}

variable "secrets_job_priority_rule_match" {
  description = "List of secrets manager secrets to create"
  type        = list(string)
  default = [
    "AR_MYSQL_USER",
    "AR_MYSQL_PASSWORD",
    "DD_MYSQL_USER",
    "DD_MYSQL_PASSWORD"
  ]
}

variable "secrets_close_batch" {
  type = list(string)
  default = [
    "PK_QA_V25DD",
    "PK_ID_RSA_451",
    "PK_ID_RSA",
    "PK_ID_DSA_YOUTUBE",
    "PK_ASPERA_TOKENAUTH_ID_RSA",
    "PK_ID_DSA",
    "DD_MYSQL_USER",
    "DD_MYSQL_PASSWORD",
    "AR_MYSQL_USER",
    "AR_MYSQL_PASSWORD"
  ]
}

variable "secrets_find_batch_to_close" {
  type = list(string)
  default = [
    "DD_MYSQL_USER",
    "DD_MYSQL_PASSWORD"
  ]
}

variable "dd_mysql_limit" {
  default = "5000"
}

variable "stores_with_disabled_algorithms" {
  description = "Stores ID to disable SFTP rsa-sha2-256, rsa-sha2-512 algorithms"
  default     = "569,453,575,838"
}

variable "vector_orders_dynamo_table_stream_name" {
  description = "Vector orders Dynamo table stream name"
  default     = "2017-09-12T19:14:41.670"
}

variable "secrets_save_to_dd_db" {
  type = list(string)
  default = [
    "DD_MYSQL_USER",
    "DD_MYSQL_PASSWORD"
  ]
}

variable "jwt_enabled_lambda_names" {
  type        = list(string)
  description = "List of lambdas that need to be enabled for JWT, excluding lambda-vector prefix"
  default = [
    "job-priority-rule-match",
  ]
}

variable "notification_endpoints" {
  default = "@slack-content-delivery-and-asset-mgmt-qa-alerts"
}
