resource "aws_redshift_cluster" "delivery-archive-prod-01" {
  #checkov:skip=CKV_AWS_64: Ensure all data stored in the Redshift cluster is securely encrypted at rest
  #checkov:skip=CKV_AWS_142: Ensure that Redshift cluster is encrypted by KMS
  #checkov:skip=CKV_AWS_71: Ensure Redshift Cluster logging is enabled
  #checkov:skip=CKV_AWS_321: Ensure Redshift clusters use enhanced VPC routing
  allow_version_upgrade                = true
  apply_immediately                    = false
  automated_snapshot_retention_period  = 7
  availability_zone                    = "eu-central-1a"
  availability_zone_relocation_enabled = false
  cluster_identifier                   = "delivery-archive-prod-01"
  cluster_parameter_group_name         = "delivery-archive-prod-config-01"
  cluster_public_key                   = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZJ18Z4FtJ211eXsSsl4zqXu8qjQj40cKR67hbdCtPwqP2NKZa6tguIHEd4mdmzO7BhopjDpX/JbPmbIOx6Va0XoQciWS1S7ewDFJXdp7XZeYDYkhTn/jO5kPkoQbcnnFsS6fKWnVldaq7UtzIHJR3ZCEbUE4q05+ZfFmMKIMQYV0MReF407DzReUAQxjXPH8VVoqi1PPzn8Pq1axnUKTPTikiEXy/kOK6iMHfhJJRTVeTbL3gXaB4hTlaV1opxhuz6zvOzHjutx4wYpgAPD55QsM8j8f5SC07TMUDAZCCOeFqHMludbHumzKd4sUAwvY9c0TVk8ySrP1D7HsOBIVb Amazon-Redshift\n"
  cluster_revision_number              = "323213"
  cluster_subnet_group_name            = "delp2-sng"
  cluster_type                         = "multi-node"
  cluster_version                      = "1.0"
  database_name                        = "delivery_archive"
  encrypted                            = false
  endpoint                             = "delivery-archive-prod-01.cvbhhg5npkkm.eu-central-1.redshift.amazonaws.com:5439"
  enhanced_vpc_routing                 = false
  iam_roles                            = ["arn:aws:iam::023180329437:role/RedshiftCopy"]
  maintenance_track_name               = "current"
  manual_snapshot_retention_period     = -1 # sensitive
  master_username                      = "master_rds"
  multi_az                             = false
  node_type                            = "ra3.large"
  number_of_nodes                      = 3
  port                                 = 5439
  preferred_maintenance_window         = "sun:06:00-sun:06:30"
  publicly_accessible                  = false
  skip_final_snapshot                  = true
  tags = {
    Business-Unit = "Delivery-Services"
    Environment   = "Prod"
    Owner         = "Robert Dewilder"
    Project-Code  = "SME-2000-0306B"
    Project-Name  = "Delivery-Prod"
  }
  tags_all = {
    Business-Unit = "Delivery-Services"
    Environment   = "Prod"
    Owner         = "Robert Dewilder"
    Project-Code  = "SME-2000-0306B"
    Project-Name  = "Delivery-Prod"
  }
  vpc_security_group_ids = ["sg-02f4402aed322f58b"]
}

resource "aws_redshift_parameter_group" "delivery-archive-prod-config-01" {
  description = "Delivery Prod Config"
  family      = "redshift-1.0"
  name        = "delivery-archive-prod-config-01"
  tags        = {}
  tags_all    = {}
  parameter {
    name  = "require_ssl"
    value = "true"
  }
  parameter {
    name  = "search_path"
    value = "$user,delivery_archive,public"
  }
  parameter {
    name  = "wlm_json_configuration"
    value = "[{\"query_concurrency\":10,\"memory_percent_to_use\":70,\"query_group\":[\"ds_dw_users\"],\"query_group_wild_card\":0,\"user_group\":[\"ds_dw_users\"],\"user_group_wild_card\":0,\"rules\":[{\"rule_name\":\"ds_dw_log_nested_loop\",\"predicate\":[{\"metric_name\":\"nested_loop_join_row_count\",\"operator\":\">\",\"value\":100}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_high_rows_select\",\"predicate\":[{\"metric_name\":\"return_row_count\",\"operator\":\">\",\"value\":1000000}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_high_rows_join\",\"predicate\":[{\"metric_name\":\"join_row_count\",\"operator\":\">\",\"value\":1000000000}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_high_memory\",\"predicate\":[{\"metric_name\":\"query_temp_blocks_to_disk\",\"operator\":\">\",\"value\":100000}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_high_execution\",\"predicate\":[{\"metric_name\":\"segment_execution_time\",\"operator\":\">\",\"value\":120},{\"metric_name\":\"io_skew\",\"operator\":\">\",\"value\":2}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_high_cpu\",\"predicate\":[{\"metric_name\":\"query_cpu_usage_percent\",\"operator\":\">\",\"value\":50}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_qury_cpu_time\",\"predicate\":[{\"metric_name\":\"query_cpu_time\",\"operator\":\">\",\"value\":60}],\"action\":\"log\"},{\"rule_name\":\"ds_dw_log_qury_time\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":60}],\"action\":\"log\"}]},{\"query_concurrency\":5,\"query_group\":[],\"query_group_wild_card\":0,\"user_group\":[],\"user_group_wild_card\":0,\"rules\":[{\"rule_name\":\"log_nested_loop\",\"predicate\":[{\"metric_name\":\"nested_loop_join_row_count\",\"operator\":\">\",\"value\":100}],\"action\":\"log\"},{\"rule_name\":\"log_high_rows_select\",\"predicate\":[{\"metric_name\":\"return_row_count\",\"operator\":\">\",\"value\":1000000}],\"action\":\"log\"},{\"rule_name\":\"log_high_rows_join\",\"predicate\":[{\"metric_name\":\"join_row_count\",\"operator\":\">\",\"value\":1000000000}],\"action\":\"log\"},{\"rule_name\":\"log_high_memory\",\"predicate\":[{\"metric_name\":\"query_temp_blocks_to_disk\",\"operator\":\">\",\"value\":100000}],\"action\":\"log\"},{\"rule_name\":\"log_high_execution\",\"predicate\":[{\"metric_name\":\"segment_execution_time\",\"operator\":\">\",\"value\":120},{\"metric_name\":\"io_skew\",\"operator\":\">\",\"value\":2}],\"action\":\"log\"},{\"rule_name\":\"log_high_cpu\",\"predicate\":[{\"metric_name\":\"query_cpu_usage_percent\",\"operator\":\">\",\"value\":50}],\"action\":\"log\"},{\"rule_name\":\"log_qury_cpu_time\",\"predicate\":[{\"metric_name\":\"query_cpu_time\",\"operator\":\">\",\"value\":60}],\"action\":\"log\"},{\"rule_name\":\"log_qury_time\",\"predicate\":[{\"metric_name\":\"query_execution_time\",\"operator\":\">\",\"value\":60}],\"action\":\"log\"}]},{\"short_query_queue\":true}]"
  }
}

resource "aws_redshift_subnet_group" "delp2-sng" {
  description = "delp2-sng"
  name        = "delp2-sng"
  subnet_ids  = ["subnet-c88ab9a0", "subnet-db4f30a1"]
  tags        = {}
  tags_all    = {}
}

