variable "aws_region" {
  description = "AWS region"
  default     = "us-east-1"
}

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

variable "service_name" {
  default = "gda-account-creation"
}

variable "lambda_function_names" {
  description = "List of lambda function names"
  type        = list(string)
  default = [
    "lambda-create-vendor",
    "lambda-create-artist",
    "lambda-create-contract",
    "lambda-create-master-contact",
    "lambda-create-subscription",
    "lambda-redeem-voucher",
    "lambda-send-org-invite-email",
    "lambda-send-success",
    "lambda-send-failure",
    "lambda-trigger-gda-account-creation",
  ]
}

variable "application_family" {
  description = "Application family of which this is a component. Used for tagging"
  default     = "user-platform"
}

variable "vpc_id" {
  description = "Default vpc id for Lambda functions"
  default     = "vpc-7f0e841a"
}

variable "vpc_subnet_ids" {
  type        = list(string)
  description = "VPC subnet IDs where the lambdas will execute"
  default     = ["subnet-cb4dbae0", "subnet-5366ef24"]
}

variable "logger_dsn" {
  description = "DSN for logging."
  default     = "udp://prod-fluentd-applications-udp.theorchard.io:5160"
}

variable "lambda_handler" {
  description = "Entry point for lambda invocation"
  default     = "src.app.handler"
}

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


variable "graphql_gateway_url" {
  description = "GraphQl gateway URL"
  default     = "https://prod-graphql-gateway.theorchard.io/graphql"
}


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

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

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

variable "kafka_brokers" {
  description = "comma separated cdc kafka brokers"
  default     = "b-1.prod-managed-kafka-cdc.40dsdw.c6.kafka.us-east-1.amazonaws.com:9094,b-2.prod-managed-kafka-cdc.40dsdw.c6.kafka.us-east-1.amazonaws.com:9094,b-3.prod-managed-kafka-cdc.40dsdw.c6.kafka.us-east-1.amazonaws.com:9094"
}

variable "kafka_topic" {
  description = "event kafka topic for gda dead_letter queue"
  default     = "event.gdaAccountCreation.deadLetterTopic"
}

variable "success_kafka_topic" {
  description = "event kafka topic for gda success queue"
  default     = "event.gdaAccountCreation.success"
}

variable "trigger_msk_cluster_name" {
  description = "MSK cluster name that will trigger the step function lambda"
  default     = "prod-managed-kafka-artist-diy"
}

variable "trigger_msk_cluster_uuid" {
  description = "MSK cluster uuid that will trigger the step function lambda"
  default     = "8ce499ad-b29b-4064-b7e1-1e3f1c5e59a0-6"
}

variable "trigger_msk_topic" {
  description = "MSK topic that triggers the step function lambda"
  default     = "event.gdaApproval"
}

variable "trigger_msk_deadletter_topic" {
  description = "Dead letter queue for gdaApproval triger failures"
  default     = "dlq.gdaApproval"
}

variable "monitor_dlq_topic_name" {
  description = "MSK topic name to monitor messages to in datadog"
  default     = "dlq.gdaAccountCreation.failures"
}

variable "notification_endpoints" {
  default = "@slack-accounts-team-alerts"
}

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

variable "datadog_notification_endpoints" {
  description = "DataDog notification endpoints"
  default     = "@slack-accounts-team-alerts"
}

variable "hash_key" {
  description = "Name of the primary key"
  default     = "correlation_id"
}

variable "lambda_gda_account_creation_retry_attempts" {
  description = "Default value for number of retries"
  default     = 4
}

variable "lambda_gda_account_creation_interval_seconds" {
  description = "Default value for interval retry attempts"
  default     = "120"
}
