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

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

variable "db_host" {
  default = "qa-royalty-accounting-db.theorchard.io"
}

variable "db_name" {
  default = "royalty_accounting"
}

variable "db_user" {
  default = "ows-royalties"
}

variable "service_name" {
  default = "ows-royalties"
}

variable "s3_sales_bucket" {
  default = "qa-royalties-sales-files"
}

variable "s3_abacus_adjustments_bucket" {
  default = "qa-abacus-adjustments"
}

variable "s3_abacus_quarantine_bucket" {
    default = "abacus-quarantine"
    description = "S3 bucket for files that failed AV scan."
}

variable "application_family" {
  default     = "accounting"
  description = "Application family to which abacus belongs"
}

variable "team_name" {
  description = "Datadog team name"
  default     = "abacus"
}

variable "secrets_manager_secret_names" {
  description = "List of secrets manager secrets to create"
  type        = list(string)
  default = [
    "MYSQL_DB_PASS",
    "SNOWFLAKE_KEY_PASSPHRASE",
    "SNOWFLAKE_PRIVATE_KEY"
  ]
}

variable "existing_policies_to_attach" {
  description = "List of existing IAM policies to be attached to Fargate service."
  type        = list(string)
  default = [
    "Elasticsearch-qa-ows-royalties-log-RW",
    "SecretsManager-qa-royalty_accounting-policy",
    "S3-qa-royalties-sales-files-RW",
    "S3-qa-abacus-adjustments-usage-policy",
  ]
}

variable "kafka_bootstrap_servers" {
  description = "Comma separated list of kafka bootstrap servers"
  default     = "b-2.qa-managed-kafka-cdc-d.2kgc64.c6.kafka.us-east-1.amazonaws.com:9094,b-1.qa-managed-kafka-cdc-d.2kgc64.c6.kafka.us-east-1.amazonaws.com:9094,b-3.qa-managed-kafka-cdc-d.2kgc64.c6.kafka.us-east-1.amazonaws.com:9094"
  type        = string
}

variable "schema_registry_url" {
  description  = "Kafka event schema registry server url"
  default      = "https://qa-schema-registry.theorchard.io"
  type         = string
}

variable "snowflake_account" {
  description = "Snowflake account"
  default     = "orchard"
  type         = string
}

variable "snowflake_role" {
  description = "Snowflake role"
  default     = "ROYALTYACCOUNTING_DB_QA_SCHEMA_READ"
  type         = string
}

variable "snowflake_warehouse" {
  description = "Snowflake warehouse"
  default     = "QA_OWS_WAREHOUSE"
  type         = string
}

variable "snowflake_database" {
  description = "Snowflake database"
  default     = "ORCHARD_APP_REPORTING_V2"
  type         = string
}

variable "snowflake_schema" {
  description = "Snowflake schema"
  default     = "QA_ROYALTY_ACCOUNTING_ROYALTY_ACCOUNTING"
  type         = string
}

variable "snowflake_user" {
  description = "Snowflake user"
  default     = "QA_OWS_ROYALTIES_SERVICE_USER"
  type         = string
}

locals {
  airflow_arn = "arn:aws:airflow:${var.aws_region}:${data.aws_caller_identity.current.account_id}:environment/qa-abacus-airflow"
  downstream_lambda_functions = [
    "lambda-abacus-adjustment-file-import",
    "lambda-abacus-adjustment-file-initialize",
    "lambda-abacus-adjustment-file-validation",
    "lambda-abacus-adjustments-apply",
  ]
}
