resource "aws_rds_cluster_parameter_group" "db_parameter_group" {
  name        = "${var.environment}-${var.service_name}-aurora-mysql57"
  description = "${var.environment}-${var.service_name}-aurora-mysql57"
  family      = "aurora-mysql5.7"

  parameter {
    name  = "aurora_load_from_s3_role"
    value = aws_iam_role.upload_role.arn
  }

  parameter {
    name         = "binlog_format"
    value        = "ROW"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "max_connections"
    value        = "3000"
    apply_method = "pending-reboot"
  }
}

resource "aws_rds_cluster_parameter_group" "db_parameter_group_mysql8" {
  name        = "${var.environment}-${var.service_name}-aurora-mysql80"
  description = "${var.environment}-${var.service_name}-aurora-mysql80"
  family      = "aurora-mysql8.0"

  parameter {
    name  = "aws_default_s3_role"
    value = aws_iam_role.upload_role.arn
  }

  parameter {
    name         = "activate_all_roles_on_login"
    value        = "1"
    apply_method = "immediate"
  }

  parameter {
    name         = "binlog_format"
    value        = "ROW"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "max_connections"
    value        = "3000"
    apply_method = "pending-reboot"
  }
  parameter {
    apply_method = "immediate"
    name         = "time_zone"
    value        = "US/Eastern"
  }
  parameter {
    name         = "max_heap_table_size"
    value        = "4294967296"
    apply_method = "immediate"
  }
  parameter {
    name         = "tmp_table_size"
    value        = "4294967296"
    apply_method = "immediate"
  }
  parameter {
    name         = "server_audit_logging"
    value        = "1"
    apply_method = "immediate"
  }
  parameter {
    name         = "server_audit_events"
    value        = "QUERY_DCL,QUERY_DDL"
    apply_method = "immediate"
  }
  parameter {
    name         = "server_audit_excl_users"
    value        = "rdsadmin,rdsproxyadmin"
    apply_method = "immediate"
  }
  parameter {
    name         = "log_bin_trust_function_creators"
    value        = "1"
    apply_method = "immediate"
  }
}
