terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/fivetran/fansifter-pg-reporting/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

resource "fivetran_group" "fansifter_pg_reporting" {
  name = "FANSIFTER_PG_REPORTING"
}

data "aws_rds_cluster" "qa_ows_dmp" {
  cluster_identifier = "qa-ows-dmp"
}

resource "fivetran_connector" "qa_ows_dmp_connector" {
  group_id = fivetran_group.fansifter_pg_reporting.id
  service  = "aurora_postgres"

  destination_schema {
    prefix = "qa_ows_dmp"
  }

  config {
    host             = data.aws_rds_cluster.qa_ows_dmp.endpoint
    port             = data.aws_rds_cluster.qa_ows_dmp.port
    user             = "fivetran"
    database         = "ows_dmp"
    tunnel_host      = "fivetran.theorchard.io"
    tunnel_port      = "2222"
    tunnel_user      = "fivetran"
    update_method    = "WAL_PGOUTPUT"
    replication_slot = "fivetran_pgoutput_slot"
    publication_name = "fivetran_pub"
  }
}

resource "fivetran_connector_schedule" "qa_ows_dmp_connector_schedule" {
  connector_id   = fivetran_connector.qa_ows_dmp_connector.id
  sync_frequency = 15
}

data "aws_rds_cluster" "prod_ows_dmp" {
  cluster_identifier = "prod-ows-dmp"
}

resource "fivetran_connector" "prod_ows_dmp_connector" {
  group_id = fivetran_group.fansifter_pg_reporting.id
  service  = "aurora_postgres"

  destination_schema {
    prefix = "prod_ows_dmp"
  }

  config {
    host             = data.aws_rds_cluster.prod_ows_dmp.endpoint
    port             = data.aws_rds_cluster.prod_ows_dmp.port
    user             = "fivetran"
    database         = "ows_dmp"
    tunnel_host      = "fivetran.theorchard.io"
    tunnel_port      = "2222"
    tunnel_user      = "fivetran"
    update_method    = "WAL_PGOUTPUT"
    replication_slot = "fivetran_pgoutput_slot"
    publication_name = "fivetran_pub"
  }
}

resource "fivetran_connector_schedule" "prod_ows_dmp_connector_schedule" {
  connector_id      = fivetran_connector.prod_ows_dmp_connector.id
  sync_frequency    = 15
  pause_after_trial = false
}
