resource "aws_db_instance" "grps-use1-openobserve-db" {
  # checkov:skip=CKV_AWS_157:Ensure that RDS instances have Multi-AZ enabled
  # checkov:skip=CKV_AWS_161:Ensure RDS database has IAM authentication enabled
  # checkov:skip=CKV_AWS_293:Ensure that AWS database instances have deletion protection enabled
  # checkov:skip=CKV2_AWS_30:Ensure AWS RDS database instance is not publicly accessible
  identifier     = "grps-use1-openobserve-db"
  engine         = "postgres"
  engine_version = "18.3"
  instance_class = "db.t3.medium"

  allocated_storage     = 100
  max_allocated_storage = 500
  storage_type          = "gp3"
  storage_encrypted     = true
  kms_key_id            = "arn:aws:kms:us-east-1:230315258045:key/efa04e80-b138-435d-aece-85e6f9cb9bce"

  db_name  = "openobserve"
  username = "openobserve_admin"

  manage_master_user_password   = true
  master_user_secret_kms_key_id = "arn:aws:kms:us-east-1:230315258045:key/efa04e80-b138-435d-aece-85e6f9cb9bce"

  db_subnet_group_name   = aws_db_subnet_group.grpsnv-d3-rds-sng.name
  vpc_security_group_ids = [aws_security_group.grps-use-1-openobserve-rds-sg.id]
  publicly_accessible    = false

  backup_retention_period = 7
  backup_window           = "07:59-08:29"
  maintenance_window      = "sun:05:00-sun:06:00"

  enabled_cloudwatch_logs_exports = ["postgresql", "upgrade"]

  performance_insights_enabled          = true
  performance_insights_kms_key_id       = "arn:aws:kms:us-east-1:230315258045:key/efa04e80-b138-435d-aece-85e6f9cb9bce"
  performance_insights_retention_period = 7

  monitoring_interval = 60
  monitoring_role_arn = "arn:aws:iam::230315258045:role/rds-monitoring-role"

  auto_minor_version_upgrade = true
  deletion_protection        = false
  skip_final_snapshot        = true
  copy_tags_to_snapshot      = true

  tags = {
    "Name"          = "sme-grps-use1-dev-openobserve"
    "Business-Unit" = "GRPS"
    "Environment"   = "Dev"
    "Owner"         = "Richard Mayer"
    "Project-Code"  = "2000-0497G"
    "Project-name"  = "GRPS"
    "Purpose"       = "OpenObserve Database"
    "CLOPS_FW"      = "NO"
  }
}