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

variable "application_family" {
  type        = string
  description = "Name of application family"
  default     = "kafka-data-highway"
}

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

variable "team_name" {
  type        = string
  description = "Name of the team that owns this infrastructure"
  default     = "kdh"
}

variable "service_name" {
  type        = string
  description = "The name of the service."
  default     = "triggered-send"
}

variable "snowflake_database" {
  type        = string
  description = "The name of the Snowflake database to create the S3 stage in."
  default     = "FANSIFTER_APP_REPORTING"
}

variable "snowflake_schema" {
  type        = string
  description = "The name of the Snowflake schema to create the S3 stage in."
  default     = "QA_CRM_FANS"
}

variable "triggered_sends_dir" {
  type        = string
  description = "The directory in the S3 bucket where triggered send exports will be stored."
  default     = "snowflake-export"
}

variable "doi_confirmations_dir" {
  type        = string
  description = "The directory in the S3 bucket where DOI confirmations uploaded."
  default     = "doi-confirmations"
}

variable "triggered_sends_lambda_name" {
  type        = string
  description = "The name of the triggered sends Lambda function."
  default     = "lambda-fan-triggered-sends"
}

variable "redis_port" {
  description = "Redis port for Marketing Cloud API Token Cache"
  type        = string
  default     = "6379"
}

variable "marketing_cloud_token_api_url" {
  description = "Marketing Cloud token API URL"
  type        = string
  default     = "https://mcggy093514wwm68wdpmqhdkjxy4.auth.marketingcloudapis.com/v2/token"
}

variable "kafka_cluster_name" {
  description = "Name of the Kafka cluster"
  type        = string
  default     = "managed-kafka-fansifter"
}

variable "kafka_security_protocol" {
  description = "Kafka security protocol"
  type        = string
  default     = "SSL"
}

variable "successful_triggered_sends_topic" {
  description = "Kafka topic for successful triggered sends"
  type        = string
  default     = "event.triggeredSendBatch"
}

variable "failed_triggered_sends_topic" {
  description = "Kafka topic for DLQ triggered sends"
  type        = string
  default     = "event.triggeredSendBatch.failed"
}

locals {
  iam_role_name      = "${var.environment}-${var.service_name}-snowflake-integration-role"
  kafka_cluster_name = "${var.environment}-${var.kafka_cluster_name}"
  route53_zone       = "${var.environment}-fansifter.theorchard.io"
}
