# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "qa-permissions-platform-terraform-state"
    key     = "qa/kafka-pp/topics/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

provider "aws" {
  region = "us-east-1"
}

data "aws_msk_cluster" "kafka_pp" {
  cluster_name = "qa-kafka-pp"
}

provider "kafka" {
  bootstrap_servers = split(",", data.aws_msk_cluster.kafka_pp.bootstrap_brokers_tls)
  tls_enabled       = true
}


resource "kafka_topic" "cdc_pp_identity" {
  name               = "cdc.ppIdentity"
  replication_factor = var.kafka_default_replication_factor
  partitions         = 1
  config = {
    "retention.ms"        = var.time_unlimited
    "min.insync.replicas" = "2"
  }
}

# SME Label
resource "kafka_topic" "cdc_musicgraph_smelabel" {
  name               = "cdc.musicGraph.smeLabel"
  replication_factor = var.kafka_default_replication_factor
  partitions         = 1
  config = {
    "cleanup.policy"        = "compact",
    "delete.retention.ms"   = var.time_one_month
    "min.compaction.lag.ms" = var.time_two_weeks
    "max.compaction.lag.ms" = var.time_one_month
    "min.insync.replicas"   = "2"
  }
}

resource "kafka_topic" "cdc_musicgraph_smelabel_dlq" {
  name               = "dlq.musicGraph.smeLabel"
  replication_factor = var.kafka_default_replication_factor
  partitions         = var.kafka_default_partitions
  config = {
    "retention.ms"        = var.time_one_week
    "min.insync.replicas" = "2"
  }
}
