resource "aws_rds_cluster_parameter_group" "direct_delivery_mysql57_cluster_parameter_group" {
  name        = "${var.service_name}-cluster-parameter-group"
  family      = "aurora-mysql5.7"
  description = "direct-delivery-cluster-parameter-group"

  parameter {
    apply_method = "immediate"
    name         = "character_set_client"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_connection"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_database"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_filesystem"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_results"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_server"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "collation_connection"
    value        = "utf8mb4_general_ci"
  }
  parameter {
    apply_method = "immediate"
    name         = "collation_server"
    value        = "utf8mb4_general_ci"
  }
  parameter {
    apply_method = "pending-reboot"
    name         = "binlog_format"
    value        = "ROW"
  }
  parameter {
    apply_method = "pending-reboot"
    name         = "explicit_defaults_for_timestamp"
    value        = "0"
  }
  parameter {
    apply_method = "pending-reboot"
    name         = "slave_type_conversions"
    value        = "ALL_NON_LOSSY"
  }
}

resource "aws_rds_cluster_parameter_group" "direct_delivery_mysql8_cluster_parameter_group" {
  name        = "${var.service_name}-mysql8-cluster-parameter-group"
  family      = "aurora-mysql8.0"
  description = "direct-delivery-cluster-parameter-group"

  parameter {
    apply_method = "immediate"
    name         = "character_set_client"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_connection"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_database"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_filesystem"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_results"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "character_set_server"
    value        = "utf8mb4"
  }
  parameter {
    apply_method = "immediate"
    name         = "collation_connection"
    value        = "utf8mb4_general_ci"
  }
  parameter {
    apply_method = "immediate"
    name         = "collation_server"
    value        = "utf8mb4_general_ci"
  }
  parameter {
    apply_method = "pending-reboot"
    name         = "binlog_format"
    value        = "ROW" # default value is OFF
  }
  parameter {
    apply_method = "pending-reboot"
    name         = "explicit_defaults_for_timestamp"
    value        = "0" # default value is 1
  }
  parameter {
    apply_method = "pending-reboot"
    name         = "replica_type_conversions"
    value        = "ALL_NON_LOSSY"
  }
}

resource "aws_db_parameter_group" "direct_delivery_mysql57_parameter_group" {
  name        = "${var.service_name}-parameter-group"
  family      = "aurora-mysql5.7"
  description = "direct-delivery-parameter-group"
}

resource "aws_db_parameter_group" "direct_delivery_mysql8_parameter_group" {
  name   = "${var.service_name}-mysql8-parameter-group"
  family = "aurora-mysql8.0"
}
