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

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

variable "service_name" {
  default = "abacus-managed-airflow"
}

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

variable "bucket_name" {
  description = "Bucket to contain airflow code"
  default     = "abacus-managed-airflow"
}

variable "abacus_airflow_bucket_name" {
  description = "Bucket to contain airflow code 2.9.2"
  default     = "abacus-airflow"
}

variable "airflow_environment_name" {
  default = "abacus-prod-managed-airflow-environment"
}

variable "vpc_id" {
  default = "vpc-7f0e841a"
}

variable "https_listener_allow_cidr_blocks" {
  description = "CIDR blocks from which to allow HTTPS"
  type        = list(string)
  # This list depends on ows-abacus-event's subnets
  default = [
    "192.168.31.0/24",
    "192.168.32.0/24",
    "192.168.33.0/24",
    "192.168.40.0/22",
    "10.30.0.0/22",
    "10.40.0.0/22",
  ]
}

variable "https_listener_port" {
  default = 443
}

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

variable "airflow_version" {
  default = "2.2.2"
}

variable "environment_class" {
  default = "mw1.medium"
}

variable "s3_adjustments_bucket_name" {
  default = "prod-abacus-adjustments"
}

variable "s3_payments_bucket_name" {
  default = "prod-abacus-payments"
}

variable "s3_sales_bucket_name" {
  default = "prod-royalties-sales-files"
}

variable "s3_static_data_bucket_name" {
  default = "prod-abacus-static-data"
}

variable "extract_sales_dag_execution_role" {
  default = "arn:aws:iam::375914681009:role/prod-ecs-abacus-airflow-run-role"
}


variable "secrets_backend" {
  default = "airflow.contrib.secrets.aws_secrets_manager.SecretsManagerBackend"
}

variable "ar_mysql_db_host" {
  default     = "ar-db.theorchard.com"
  description = "PROD art_relations host"
}

variable "ar_mysql_db_user" {
  default     = "abacus-airflow"
  description = "PROD art_relations service user"
}

variable "ar_mysql_connection_name" {
  default     = "ART_RELATIONS_CONNECTION_URI"
  description = "Connection string for connecting to PROD art_relations"
}

variable "snowflake_connection_name" {
  default     = "SNOWFLAKE_CONNECTION_URI"
  description = "Connection string for connecting to snowflake ROYALTY_ACCOUNTING.PROD"
}

variable "snowflake_user" {
  description = "Snowflake service user"
  default     = "QA_OWS_ROYALTIES_WORKFLOW"
}

variable "snowflake_account" {
  description = "Snowflake account"
  default     = "delphi.us-east-1"
}

variable "snowflake_database" {
  description = "Snowflake database"
  default     = "ROYALTY_ACCOUNTING"
}

variable "snowflake_schema" {
  description = "Snowflake schema"
  default     = "PROD"
}

variable "snowflake_warehouse" {
  description = "Snowflake warehouse"
  default     = "PROD_ABACUS_WH"
}

variable "snowflake_role" {
  description = "Snowflake role"
  default     = "ROYALTYACCOUNTING_DB_PROD_SCHEMA_READWRITE"
}

variable "snowflake_royalty_schema" {
  description = "Replicated mysql database schema"
  default     = "PROD_ROYALTY_ACCOUNTING_ROYALTY_ACCOUNTING"
}

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

locals {
  secrets_prefix = "${var.environment}/${var.service_name}"
}
