resource "aws_db_parameter_group" "amp_assets_rds_dev_pg16" {
  name        = "amp-assets-rds-dev-pg16"
  family      = "postgres16"
  description = "Parameter group for Postgres 16 for amp-assets"

  parameter {
    name         = "autovacuum_naptime"
    value        = "30"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "cron.database_name"
    value        = "assets"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "cron.log_min_messages"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "cron.max_running_jobs"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_lock_waits"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_duration_statement"
    value        = "300000"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_messages"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_rotation_age"
    value        = "1440"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_rotation_size"
    value        = "0"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_statement"
    value        = "ddl"
    apply_method = "pending-reboot"
  }

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

  parameter {
    name         = "max_prepared_transactions"
    value        = "2500"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "orafce.timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.force_autovacuum_logging_level"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.log_retention_period"
    value        = "10080"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.logical_replication"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "search_path"
    value        = "\"$user\", public,assets"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "shared_preload_libraries"
    value        = "pg_stat_statements,pg_cron"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "track_activity_query_size"
    value        = "102400"
    apply_method = "pending-reboot"
  }

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_db_parameter_group" "amp_assets_rds_stage_pg16" {
  name        = "amp-assets-rds-stage-pg16"
  family      = "postgres16"
  description = "Parameter group for Postgres 16 for amp-assets stage"

  parameter {
    name         = "autovacuum_naptime"
    value        = "30"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_lock_waits"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_duration_statement"
    value        = "300000"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_messages"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_rotation_age"
    value        = "1440"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_statement"
    value        = "ddl"
    apply_method = "pending-reboot"
  }

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

  parameter {
    name         = "max_prepared_transactions"
    value        = "2500"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "orafce.timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "random_page_cost"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.force_autovacuum_logging_level"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.log_retention_period"
    value        = "10080"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "search_path"
    value        = "\"$user\",public,assets"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "track_activity_query_size"
    value        = "102400"
    apply_method = "pending-reboot"
  }

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_db_parameter_group" "amp_assets_rds_dev_pg18" {
  name        = "amp-assets-rds-dev-pg18"
  family      = "postgres18"
  description = "Parameter group for Postgres 18 for amp-assets dev"

  parameter {
    name         = "autovacuum_naptime"
    value        = "30"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "cron.database_name"
    value        = "assets"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "cron.log_min_messages"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "cron.max_running_jobs"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_lock_waits"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_duration_statement"
    value        = "300000"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_messages"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_rotation_age"
    value        = "1440"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_rotation_size"
    value        = "0"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_statement"
    value        = "ddl"
    apply_method = "pending-reboot"
  }

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

  parameter {
    name         = "max_prepared_transactions"
    value        = "2500"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "orafce.timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.force_autovacuum_logging_level"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.log_retention_period"
    value        = "10080"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.logical_replication"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "search_path"
    value        = "\"$user\", public,assets"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "shared_preload_libraries"
    value        = "pg_stat_statements,pg_cron"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "track_activity_query_size"
    value        = "102400"
    apply_method = "pending-reboot"
  }

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_db_parameter_group" "amp_assets_rds_stage_pg18" {
  name        = "amp-assets-rds-stage-pg18"
  family      = "postgres18"
  description = "Parameter group for Postgres 18 for amp-assets stage"

  parameter {
    name         = "autovacuum_naptime"
    value        = "30"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_lock_waits"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_duration_statement"
    value        = "300000"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_min_messages"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_rotation_age"
    value        = "1440"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "log_statement"
    value        = "ddl"
    apply_method = "pending-reboot"
  }

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

  parameter {
    name         = "max_prepared_transactions"
    value        = "2500"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "orafce.timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "random_page_cost"
    value        = "1"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.force_autovacuum_logging_level"
    value        = "info"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "rds.log_retention_period"
    value        = "10080"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "search_path"
    value        = "\"$user\",public,assets"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "timezone"
    value        = "US/Eastern"
    apply_method = "pending-reboot"
  }

  parameter {
    name         = "track_activity_query_size"
    value        = "102400"
    apply_method = "pending-reboot"
  }

  lifecycle {
    create_before_destroy = true
  }
}