terraform {
  backend "s3" {
    bucket  = "qa-business-solutions-terraform-state"
    key     = "qa/fivetran/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

data "fivetran_group" "group" {
  id = "occupied_lifeless"
}

data "aws_rds_cluster" "youtube_audit_rds" {
  cluster_identifier = "${var.environment}-${var.service_name}"
}

resource "fivetran_connector" "qa_youtube_audit_connector" {
  group_id = data.fivetran_group.group.id
  service  = "aurora"

  destination_schema {
    prefix = "${var.environment}_youtube_audit"
  }

  config {
    host        = data.aws_rds_cluster.youtube_audit_rds.endpoint
    port        = data.aws_rds_cluster.youtube_audit_rds.port
    user        = "fivetran"
    database    = "youtube_audit"
    tunnel_host = "fivetran.qa-business-solutions.theorchard.io"
    tunnel_port = "2222"
    tunnel_user = "fivetran"
  }
}

resource "fivetran_connector_schedule" "qa_youtube_audit_connector_schedule" {
  connector_id   = fivetran_connector.qa_youtube_audit_connector.id
  sync_frequency = 360
}

resource "fivetran_connector_schema_config" "main" {
  connector_id           = fivetran_connector.qa_youtube_audit_connector.id
  schema_change_handling = "ALLOW_COLUMNS"
  schemas = {
    youtube_audit = {
      enabled = true
      tables = { for table in var.youtube_audit_tables_to_sync_to_snowflake : table => {
        enabled = true
      } }
    }
  }
}
