# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket  = "dev-orcd-terraform-state"
    key     = "dev/kafka-infra/kafka-cluster/topics/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }

  required_providers {
    kafka = {
      source  = "mongey/kafka"
      version = ">= 0.2.10"
    }
  }
}

provider "kafka" {
  bootstrap_servers = var.bootstrap_servers
  tls_enabled       = true
}


resource "kafka_topic" "cdc_musicgraph_test_terraform_topic" {
  name               = "cdc.musicGraph.testTerraformTopic"
  replication_factor = 2
  partitions         = 1
  config = {
    "retention.ms"      = "604800000"
  }
}

resource "kafka_topic" "event_example_python_producer" {
  name               = "event.examplePythonProducer"
  replication_factor = 2
  partitions         = 1
}

resource "kafka_topic" "cdc_new_knr_accounts_topic" {
  name               = "cdc.newKNRAccountsTracking"
  replication_factor = 2
  partitions         = 1
  config = {
    "retention.ms"      = "604800000"
  }
}

resource "kafka_topic" "stream_new_knr_accounts_topic" {
  name               = "stream.newKNRAccountsTracking"
  replication_factor = 2
  partitions         = 1
  config = {
    "retention.ms"      = "604800000"
  }
}

resource "kafka_topic" "stream_asset_mezzanine_audio_flac" {
  name               = "stream.asset.mezzanine.audio.flac"
  replication_factor = 2
  partitions         = 3
  config = {
    "retention.ms" = "604800000"
  }
}

resource "kafka_topic" "cdc_musicgraph_has_subscription" {
  name               = "cdc.musicGraph.hasSubscription"
  replication_factor = 2
  partitions         = 1
  config = {
    "max.message.bytes" = "1048588"
  }
}

resource "kafka_topic" "cdc_musicgraph_has_auto_followed" {
  name               = "cdc.musicGraph.hasAutoFollowed"
  replication_factor = 2
  partitions         = 1
  config = {
    "max.message.bytes" = "1048588"
  }
}


resource "kafka_topic" "neo4j_source_pattern_pde_label" {
  name                = "neo4j.source.pattern.pdeLabel"
  replication_factor  = 2
  partitions          = 1
  config = {
    "max.message.bytes" = "15728640"
  }
}
