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

variable "application_family" {
  description = "Application family"
  default     = "accounting"
}

variable "bucket_name" {
  description = "bucket name used in application"
  default     = "orcdbucket"
}

variable "ddb_write_max_attempts" {
  description = "Maximum write attempts to dynamo db"
  default     = 10
}

variable "email_sender" {
  description = "Email address of sender for internal attachments lambda"
  default     = "donotreply@theorchard.com"
}

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

variable "error_attachment_email_recipient" {
  description = "Email recipient for error attachment notifications"
  default     = "statementattachments@theorchard.com"
}

variable "ignore_all_events" {
  description = "set this value to ignore messages sent to internal attachments lambda."
  default     = ""
}

variable "lambda_custom_reports_name" {
  description = "Name of the lambda used for generating custom reports"
  default     = "lambda-moneyhub-custom-reports"
}

variable "sqs_custom_reports_name" {
  description = "Name of the SQS queue used for generating custom reports"
  default     = "sqs-moneyhub-custom-reports"
}

variable "sns_internal_attachments_success_name" {
  description = "Name of the SQS queue used for successful internal statement attachments uploads"
  default     = "qa_statement_attachments_success"
}

variable "sns_internal_attachments_error_name" {
  description = "Name of the SQS queue used for successful internal statement attachments uploads"
  default     = "qa_statement_attachments_error"
}

variable "lambda_generate_attachments_name" {
  description = "Name of the lambda used for generating attachments"
  default     = "lambda-moneyhub-generate-attachments"
}

variable "lambda_internal_attachments_name" {
  description = "Name of the lambda used for generating attachments"
  default     = "lambda-moneyhub-internal-attachments"
}

variable "sqs_generate_attachments_name" {
  description = "Name of the SQS queue used for generating attachments"
  default     = "sqs-moneyhub-generate-attachments"
}

variable "lambda_timeout" {
  description = "Execution timeout of the lambda function"
  default     = 900
}

variable "ows_service_profile_id" {
  description = "ID of the profile used when making requests to ows services"
  default     = "87918"
}

variable "ows_profile_roles" {
  description = "Profile role of the lambda used in orchard-roles header"
  default     = "administrator"
}

variable "ows_service_profile_type" {
  description = "Type of the profile used when making requests to ows services"
  default     = "AbacusProfile"
}

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

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     = "QA"
}

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

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

variable "snowflake_user" {
  description = "User used to log in to Snowflake"
  default     = "LAMBDA_ROYALTY_ACCOUNTING"
}

variable "snowflake_private_key" {
  description = "Private key used by snowflake_user"
  default     = "SNOWFLAKE_PRIVATE_KEY"
}

variable "snowflake_key_passphrase" {
  description = "Passphrase used to decrypt the snowflake_private_key"
  default     = "SNOWFLAKE_KEY_PASSPHRASE"
}

variable "lambda_function_provisioned_concurrent_executions" {
  description = "Number of provisioned concurrent executions for lambda function. Puts lambda function to warm state, but may lead to high cost usage."
  default     = 1
}

variable "lambda_function_provisioned_concurrency_alias" {
  description = "Alias to provisioned version."
  default     = "provisioned"
}
