module "no_gsr_secrets" {
  source   = "git@github.com:theorchard/terraform-secrets-manager.git//?ref=1.5.1"
  for_each = toset(var.snowflake_creds_secret_names)

  environment        = var.environment
  application_family = var.application_family
  additional_tags    = var.additional_tags
  service_name       = local.no_gsr_service_name
  secret_name        = each.value
}

module "snowflake_sink_no_gsr_fargate_environment" {
  source = "git@github.com:theorchard/terraform-fargate.git//?ref=6.5.0"

  providers = {
    aws.dns = aws.networking
  }

  environment        = var.environment
  application_family = var.application_family
  additional_tags    = var.additional_tags

  service_name                          = local.no_gsr_service_name
  non_ecr_image                         = "086679231553.dkr.ecr.${var.aws_region}.amazonaws.com/${var.ecr_name}:latest"
  aws_region                            = var.aws_region
  desired_task_count                    = 1
  minimum_capacity                      = 1
  maximum_capacity                      = 2
  task_cpu                              = 2048
  task_memory                           = 4096
  container_port                        = 8083
  health_check_grace_period_seconds     = 180
  container_start_period_seconds        = 180
  blocking_waf_enabled                  = true
  health_check_path                     = "/connectors/${var.connector_name}"
  web_service_health_check_command      = "[[ $(curl -s http://localhost:8083/connectors/${var.connector_name}/status | jq -r '.tasks[].state,.connector.state' | sort | uniq) == 'RUNNING' ]] || exit 1"
  vpc_id                                = module.vpc_info.vpc_id
  https_listener_certificate_id         = split("/", data.aws_acm_certificate.theorchard_io.arn)[1]
  propagate_tags                        = true
  fargate_spot_capacity_provider_weight = 100
  task_placement_failure_alert_enabled  = true

  fargate_service_subnets = module.vpc_info.default_private_subnet_ids
  load_balancer_subnets   = module.vpc_info.default_private_subnet_ids
  datadog_custom_image    = "086679231553.dkr.ecr.${var.aws_region}.amazonaws.com/orchard-datadog-agent-jmx:latest"
  # datadog agent crashes due to OutOfMemoryError with JMX. So increase it from 256
  datadog_task_memory = 512
  datadog_agent_environment_variables = [
    {
      JMX_PORT = "9095"
    },
    {
      SERVICE_NAME = local.no_gsr_service_name
    },
    {
      DD_ENV = var.environment
    },
    {
      CONNECTOR_TYPE = "snowflake_sink"
    },
  ]
  environment_variables = [
    {
      Environment = var.environment
    },
    {
      CONNECTOR_NAME = var.connector_name
    },
    {
      CONNECT_GROUP_UNIQUE_IDENTIFIER = "${var.environment}-${local.no_gsr_service_name}"
    },
    {
      CONSUMER_PARTITION_ASSIGNMENT_STRATEGY = "org.apache.kafka.clients.consumer.RoundRobinAssignor"
    },
    {
      MAX_TASKS = 3
    },
    {
      BUFFER_COUNT_RECORDS = 10000
    },
    {
      BUFFER_SIZE_BYTES = 5000000
    },
    {
      BUFFER_FLUSH_TIME = 240
    },
    {
      CONNECT_BOOTSTRAP_SERVERS = var.connect_bootstrap_servers
    },
    {
      SNOWFLAKE_HOST = "delphi.us-east-1.snowflakecomputing.com:443"
    },
    {
      SNOWFLAKE_USER = "QA_KAFKA_CONNECT_SNOWFLAKE_SINK_MG_NO_GSR"
    },
    {
      SNOWFLAKE_DATABASE = "FACTS"
    },
    {
      SNOWFLAKE_SCHEMA = "QA"
    },
    {
      SERVICE_NAME = local.no_gsr_service_name
    },
    {
      KAFKA_TOPICS = join(",", [
        "cdc.musicGraphV5.acrid",
        "cdc.musicGraphV5.belongsTo",
        "cdc.musicGraphV5.companyBrand",
        "cdc.musicGraphV5.companyBrandBelongsToParentCompany",
        "cdc.musicGraphV5.companyBrandHasLabelVendor",
        "cdc.musicGraphV5.containsFingerprint",
        "cdc.musicGraphV5.deletedContainsFingerprint",
        "cdc.musicGraphV5.createdFrom",
        "cdc.musicGraphV5.deletedHasAccessTo",
        "cdc.musicGraphV5.deletedHasAccessToArtistInfo",
        "cdc.musicGraphV5.deletedHasAccessToLabelParticipant",
        "cdc.musicGraphV5.deletedHasAccessToVendor",
        "cdc.musicGraphV5.deletedHasAdminAccessTo",
        "cdc.musicGraphV5.deletedHasAdminAccessToSubaccount",
        "cdc.musicGraphV5.deletedHasAdminAccessToVendor",
        "cdc.musicGraphV5.deletedHasProfile",
        "cdc.musicGraphV5.fingerprintedAs",
        "cdc.musicGraphV5.fingerprintRule",
        "cdc.musicGraphV5.globalParticipant",
        "cdc.musicGraphV5.globalParticipantMergedToGlobalParticipant",
        "cdc.musicGraphV5.globalParticipantRepresentsLabelParticipant",
        "cdc.musicGraphV5.globalParticipantRepresentsPublicParticipant",
        "cdc.musicGraphV5.globalSoundRecordingRepresentsLabelSR",
        "cdc.musicGraphV5.globalSoundRecordingRepresentsPublicSR",
        "cdc.musicGraphV5.hasAccessTo",
        "cdc.musicGraphV5.hasAdminAccessTo",
        "cdc.musicGraphV5.hasAgreement",
        "cdc.musicGraphV5.hasAsset",
        "cdc.musicGraphV5.hasAutoFollowed",
        "cdc.musicGraphV5.hasComposition",
        "cdc.musicGraphV5.hasLabel",
        "cdc.musicGraphV5.hasLabelParticipant",
        "cdc.musicGraphV5.vendorHasLabelParticipant",
        "cdc.musicGraphV5.subaccountHasLabelParticipant",
        "cdc.musicGraphV5.hasLabelSoundRecordingParticipation",
        "cdc.musicGraphV5.onLabelSoundRecording",
        "cdc.musicGraphV5.withParticipationRole",
        "cdc.musicGraphV5.hasProfile",
        "cdc.musicGraphV5.hasSignedWriter",
        "cdc.musicGraphV5.hasSoundRecording",
        "cdc.musicGraphV5.hasSourceArtist",
        "cdc.musicGraphV5.hasSubscription",
        "cdc.musicGraphV5.identity",
        "cdc.musicGraphV5.includes",
        "cdc.musicGraphV5.inServiceTier",
        "cdc.musicGraphV5.isPlacementOf",
        "cdc.musicGraphV5.label",
        "cdc.musicGraphV5.labelParticipant",
        "cdc.musicGraphV5.labelSoundRecording",
        "cdc.musicGraphV5.labelSoundRecordingParticipation",
        "cdc.musicGraphV5.participationRole",
        "cdc.musicGraphV5.LPCreatedFromReleaseArtist",
        "cdc.musicGraphV5.LPParticipatedInOrchardProduct",
        "cdc.musicGraphV5.LPUsedToParticipateInOrchardProduct",
        "cdc.musicGraphV5.LPParticipatedInOrchardTrack",
        "cdc.musicGraphV5.LPUsedToParticipateInOrchardTrack",
        "cdc.musicGraphV5.mergedTo",
        "cdc.musicGraphV5.orchardAsset",
        "cdc.musicGraphV5.orchardProduct",
        "cdc.musicGraphV5.orchardSoundRecording",
        "cdc.musicGraphV5.orchardTrack",
        "cdc.musicGraphV5.orchardTrackIsPlacementOfLabelSR",
        "cdc.musicGraphV5.owns",
        "cdc.musicGraphV5.ownsProduct",
        "cdc.musicGraphV5.parentCompany",
        "cdc.musicGraphV5.participantIdentifier",
        "cdc.musicGraphV5.participatedIn",
        "cdc.musicGraphV5.PPParticipatedInPublicSoundRecording",
        "cdc.musicGraphV5.product",
        "cdc.musicGraphV5.productHasSourceArtistReleaseArtist",
        "cdc.musicGraphV5.productIncludesOrchardProduct",
        "cdc.musicGraphV5.productIncludesOrchardTrack",
        "cdc.musicGraphV5.profile",
        "cdc.musicGraphV5.profileDeletedHATSubaccount",
        "cdc.musicGraphV5.profileHasAccessToArtistInfo",
        "cdc.musicGraphV5.profileHasAccessToCollaborator",
        "cdc.musicGraphV5.profileHasAccessToLabelParticipant",
        "cdc.musicGraphV5.profileHasAccessToSubaccount",
        "cdc.musicGraphV5.profileHasAccessToVendor",
        "cdc.musicGraphV5.profileHasAdminAccessToSubaccount",
        "cdc.musicGraphV5.profileHasAdminAccessToVendor",
        "cdc.musicGraphV5.project",
        "cdc.musicGraphV5.projectBelongsToVendor",
        "cdc.musicGraphV5.publicParticipant",
        "cdc.musicGraphV5.publicProduct",
        "cdc.musicGraphV5.publicSoundRecording",
        "cdc.musicGraphV5.publicTrack",
        "cdc.musicGraphV5.publicTrackIsPlacementOfPublicSR",
        "cdc.musicGraphV5.publishingAgreement",
        "cdc.musicGraphV5.publishingComposition",
        "cdc.musicGraphV5.publishingCompositionAgreement",
        "cdc.musicGraphV5.publishingHasSoundRecording",
        "cdc.musicGraphV5.publishingPublisher",
        "cdc.musicGraphV5.publishingPublisherAgreement",
        "cdc.musicGraphV5.publishingSongWriter",
        "cdc.musicGraphV5.publishingSongwriterAgreement",
        "cdc.musicGraphV5.releaseArtist",
        "cdc.musicGraphV5.represents",
        "cdc.musicGraphV5.serviceTier",
        "cdc.musicGraphV5.subAccount",
        "cdc.musicGraphV5.track",
        "cdc.musicGraphV5.trackArtist",
        "cdc.musicGraphV5.trackWriter",
        "cdc.musicGraphV5.vendor",
        "cdc.musicGraphV5.vendorInServiceTier",
        "cdc.musicGraphV5.vendorOwnsSubaccount",
        "cdc.musicGraphV5.video",
      ])
    },
    {
      SNOWFLAKE_TOPIC_TABLE_MAP = join(",", [
        "cdc.musicGraphV5.acrid:CDC__MUSIC_GRAPH_V5__ACRID",
        "cdc.musicGraphV5.belongsTo:CDC__MUSIC_GRAPH_V5__BELONGS_TO",
        "cdc.musicGraphV5.companyBrand:CDC__MUSIC_GRAPH_V5__COMPANY_BRAND",
        "cdc.musicGraphV5.companyBrandBelongsToParentCompany:CDC__MUSIC_GRAPH_V5__COMPANY_BRAND_BELONGS_TO_PARENT_COMPANY",
        "cdc.musicGraphV5.companyBrandHasLabelVendor:CDC__MUSIC_GRAPH_V5__COMPANY_BRAND_HAS_LABEL_VENDOR",
        "cdc.musicGraphV5.containsFingerprint:CDC__MUSIC_GRAPH_V5__CONTAINS_FINGERPRINT",
        "cdc.musicGraphV5.deletedContainsFingerprint:CDC__MUSIC_GRAPH_V5__DELETED_CONTAINS_FINGERPRINT",
        "cdc.musicGraphV5.createdFrom:CDC__MUSIC_GRAPH_V5__CREATED_FROM",
        "cdc.musicGraphV5.deletedHasAccessTo:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ACCESS_TO",
        "cdc.musicGraphV5.deletedHasAccessToArtistInfo:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ACCESS_TO_ARTIST_INFO",
        "cdc.musicGraphV5.deletedHasAccessToLabelParticipant:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ACCESS_TO_LABEL_PARTICIPANT",
        "cdc.musicGraphV5.deletedHasAccessToVendor:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ACCESS_TO_VENDOR",
        "cdc.musicGraphV5.deletedHasAdminAccessTo:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ADMIN_ACCESS_TO",
        "cdc.musicGraphV5.deletedHasAdminAccessToSubaccount:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ADMIN_ACCESS_TO_SUBACCOUNT",
        "cdc.musicGraphV5.deletedHasAdminAccessToVendor:CDC__MUSIC_GRAPH_V5__DELETED_HAS_ADMIN_ACCESS_TO_VENDOR",
        "cdc.musicGraphV5.deletedHasProfile:CDC__MUSIC_GRAPH_V5__DELETED_HAS_PROFILE",
        "cdc.musicGraphV5.fingerprintedAs:CDC__MUSIC_GRAPH_V5__FINGERPRINTED_AS",
        "cdc.musicGraphV5.fingerprintRule:CDC__MUSIC_GRAPH_V5__FINGERPRINT_RULE",
        "cdc.musicGraphV5.globalParticipant:CDC__MUSIC_GRAPH_V5__GLOBAL_PARTICIPANT",
        "cdc.musicGraphV5.globalParticipantMergedToGlobalParticipant:CDC__MUSIC_GRAPH_V5__GLOBAL_PARTICIPANT_MERGED_TO_GLOBAL_PARTICIPANT",
        "cdc.musicGraphV5.globalParticipantRepresentsLabelParticipant:CDC__MUSIC_GRAPH_V5__GLOBAL_PARTICIPANT_REPRESENTS_LABEL_PARTICIPANT",
        "cdc.musicGraphV5.globalParticipantRepresentsPublicParticipant:CDC__MUSIC_GRAPH_V5__GLOBAL_PARTICIPANT_REPRESENTS_PUBLIC_PARTICIPANT",
        "cdc.musicGraphV5.globalSoundRecordingRepresentsLabelSR:CDC__MUSIC_GRAPH_V5__GLOBAL_SOUND_RECORDING_REPRESENTS_LABEL_SOUND_RECORDING",
        "cdc.musicGraphV5.globalSoundRecordingRepresentsPublicSR:CDC__MUSIC_GRAPH_V5__GLOBAL_SOUND_RECORDING_REPRESENTS_PUBLIC_SOUND_RECORDING",
        "cdc.musicGraphV5.hasAccessTo:CDC__MUSIC_GRAPH_V5__HAS_ACCESS_TO",
        "cdc.musicGraphV5.hasAdminAccessTo:CDC__MUSIC_GRAPH_V5__HAS_ADMIN_ACCESS_TO",
        "cdc.musicGraphV5.hasAgreement:CDC__MUSIC_GRAPH_V5__HAS_AGREEMENT",
        "cdc.musicGraphV5.hasAsset:CDC__MUSIC_GRAPH_V5__HAS_ASSET",
        "cdc.musicGraphV5.hasAutoFollowed:CDC__MUSIC_GRAPH_V5__HAS_AUTO_FOLLOWED",
        "cdc.musicGraphV5.hasComposition:CDC__MUSIC_GRAPH_V5__HAS_COMPOSITION",
        "cdc.musicGraphV5.hasLabel:CDC__MUSIC_GRAPH_V5__HAS_LABEL",
        "cdc.musicGraphV5.hasLabelParticipant:CDC__MUSIC_GRAPH_V5__HAS_LABEL_PARTICIPANT",
        "cdc.musicGraphV5.vendorHasLabelParticipant:CDC__MUSIC_GRAPH_V5__VENDOR_HAS_LABEL_PARTICIPANT",
        "cdc.musicGraphV5.subaccountHasLabelParticipant:CDC__MUSIC_GRAPH_V5__SUBACCOUNT_HAS_LABEL_PARTICIPANT",
        "cdc.musicGraphV5.hasLabelSoundRecordingParticipation:CDC__MUSIC_GRAPH_V5__HAS_LABEL_SOUND_RECORDING_PARTICIPATION",
        "cdc.musicGraphV5.onLabelSoundRecording:CDC__MUSIC_GRAPH_V5__ON_LABEL_SOUND_RECORDING",
        "cdc.musicGraphV5.withParticipationRole:CDC__MUSIC_GRAPH_V5__WITH_PARTICIPATION_ROLE",
        "cdc.musicGraphV5.hasProfile:CDC__MUSIC_GRAPH_V5__HAS_PROFILE",
        "cdc.musicGraphV5.hasSignedWriter:CDC__MUSIC_GRAPH_V5__HAS_SIGNED_WRITER",
        "cdc.musicGraphV5.hasSoundRecording:CDC__MUSIC_GRAPH_V5__HAS_SOUND_RECORDING",
        "cdc.musicGraphV5.hasSourceArtist:CDC__MUSIC_GRAPH_V5__HAS_SOURCE_ARTIST",
        "cdc.musicGraphV5.hasSubscription:CDC__MUSIC_GRAPH_V5__HAS_SUBSCRIPTION",
        "cdc.musicGraphV5.identity:CDC__MUSIC_GRAPH_V5__IDENTITY",
        "cdc.musicGraphV5.includes:CDC__MUSIC_GRAPH_V5__INCLUDES",
        "cdc.musicGraphV5.inServiceTier:CDC__MUSIC_GRAPH_V5__IN_SERVICE_TIER",
        "cdc.musicGraphV5.isPlacementOf:CDC__MUSIC_GRAPH_V5__IS_PLACEMENT_OF",
        "cdc.musicGraphV5.label:CDC__MUSIC_GRAPH_V5__LABEL",
        "cdc.musicGraphV5.labelParticipant:CDC__MUSIC_GRAPH_V5__LABEL_PARTICIPANT",
        "cdc.musicGraphV5.labelSoundRecording:CDC__MUSIC_GRAPH_V5__LABEL_SOUND_RECORDING",
        "cdc.musicGraphV5.labelSoundRecordingParticipation:CDC__MUSIC_GRAPH_V5__LABEL_SOUND_RECORDING_PARTICIPATION",
        "cdc.musicGraphV5.participationRole:CDC__MUSIC_GRAPH_V5__PARTICIPATION_ROLE",
        "cdc.musicGraphV5.LPCreatedFromReleaseArtist:CDC__MUSIC_GRAPH_V5__LABEL_PARTICIPANT_CREATED_FROM_RELEASE_ARTIST",
        "cdc.musicGraphV5.LPParticipatedInOrchardProduct:CDC__MUSIC_GRAPH_V5__LABEL_PARTICIPANT_PARTICIPATED_IN_ORCHARD_PRODUCT",
        "cdc.musicGraphV5.LPUsedToParticipateInOrchardProduct:CDC__MUSIC_GRAPH_V5__LABEL_PARTICIPANT_USED_TO_PARTICIPATE_IN_ORCHARD_PRODUCT",
        "cdc.musicGraphV5.LPParticipatedInOrchardTrack:CDC__MUSIC_GRAPH_V5__LABEL_PARTICIPANT_PARTICIPATED_IN_ORCHARD_TRACK",
        "cdc.musicGraphV5.LPUsedToParticipateInOrchardTrack:CDC__MUSIC_GRAPH_V5__LABEL_PARTICIPANT_USED_TO_PARTICIPATE_IN_ORCHARD_TRACK",
        "cdc.musicGraphV5.mergedTo:CDC__MUSIC_GRAPH_V5__MERGED_TO",
        "cdc.musicGraphV5.orchardAsset:CDC__MUSIC_GRAPH_V5__ORCHARD_ASSET",
        "cdc.musicGraphV5.orchardProduct:CDC__MUSIC_GRAPH_V5__ORCHARD_PRODUCT",
        "cdc.musicGraphV5.orchardSoundRecording:CDC__MUSIC_GRAPH_V5__ORCHARD_SOUND_RECORDING",
        "cdc.musicGraphV5.orchardTrack:CDC__MUSIC_GRAPH_V5__ORCHARD_TRACK",
        "cdc.musicGraphV5.orchardTrackIsPlacementOfLabelSR:CDC__MUSIC_GRAPH_V5__ORCHARD_TRACK_IS_PLACEMENT_OF_LABEL_SOUND_RECORDING",
        "cdc.musicGraphV5.owns:CDC__MUSIC_GRAPH_V5__OWNS",
        "cdc.musicGraphV5.ownsProduct:CDC__MUSIC_GRAPH_V5__OWNS_PRODUCT",
        "cdc.musicGraphV5.parentCompany:CDC__MUSIC_GRAPH_V5__PARENT_COMPANY",
        "cdc.musicGraphV5.participantIdentifier:CDC__MUSIC_GRAPH_V5__PARTICIPANT_IDENTIFIER",
        "cdc.musicGraphV5.participatedIn:CDC__MUSIC_GRAPH_V5__PARTICIPATED_IN",
        "cdc.musicGraphV5.PPParticipatedInPublicSoundRecording:CDC__MUSIC_GRAPH_V5__PUBLIC_PARTICIPANT_PARTICIPATED_IN_PUBLIC_SOUND_RECORDING",
        "cdc.musicGraphV5.product:CDC__MUSIC_GRAPH_V5__PRODUCT",
        "cdc.musicGraphV5.productHasSourceArtistReleaseArtist:CDC__MUSIC_GRAPH_V5__PRODUCT_HAS_SOURCE_ARTIST_RELEASE_ARTIST",
        "cdc.musicGraphV5.productIncludesOrchardProduct:CDC__MUSIC_GRAPH_V5__PRODUCT_INCLUDES_ORCHARD_PRODUCT",
        "cdc.musicGraphV5.productIncludesOrchardTrack:CDC__MUSIC_GRAPH_V5__PRODUCT_INCLUDES_ORCHARD_TRACK",
        "cdc.musicGraphV5.profile:CDC__MUSIC_GRAPH_V5__PROFILE",
        "cdc.musicGraphV5.profileDeletedHATSubaccount:CDC__MUSIC_GRAPH_V5__PROFILE_DELETED_H_A_T_SUBACCOUNT",
        "cdc.musicGraphV5.profileHasAccessToArtistInfo:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ACCESS_TO_ARTIST_INFO",
        "cdc.musicGraphV5.profileHasAccessToCollaborator:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ACCESS_TO_COLLABORATOR",
        "cdc.musicGraphV5.profileHasAccessToLabelParticipant:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ACCESS_TO_LABEL_PARTICIPANT",
        "cdc.musicGraphV5.profileHasAccessToSubaccount:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ACCESS_TO_SUBACCOUNT",
        "cdc.musicGraphV5.profileHasAccessToVendor:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ACCESS_TO_VENDOR",
        "cdc.musicGraphV5.profileHasAdminAccessToSubaccount:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ADMIN_ACCESS_TO_SUBACCOUNT",
        "cdc.musicGraphV5.profileHasAdminAccessToVendor:CDC__MUSIC_GRAPH_V5__PROFILE_HAS_ADMIN_ACCESS_TO_VENDOR",
        "cdc.musicGraphV5.project:CDC__MUSIC_GRAPH_V5__PROJECT",
        "cdc.musicGraphV5.projectBelongsToVendor:CDC__MUSIC_GRAPH_V5__PROJECT_BELONGS_TO_VENDOR",
        "cdc.musicGraphV5.publicParticipant:CDC__MUSIC_GRAPH_V5__PUBLIC_PARTICIPANT",
        "cdc.musicGraphV5.publicProduct:CDC__MUSIC_GRAPH_V5__PUBLIC_PRODUCT",
        "cdc.musicGraphV5.publicSoundRecording:CDC__MUSIC_GRAPH_V5__PUBLIC_SOUND_RECORDING",
        "cdc.musicGraphV5.publicTrack:CDC__MUSIC_GRAPH_V5__PUBLIC_TRACK",
        "cdc.musicGraphV5.publicTrackIsPlacementOfPublicSR:CDC__MUSIC_GRAPH_V5__PUBLIC_TRACK_IS_PLACEMENT_OF_PUBLIC_SOUND_RECORDING",
        "cdc.musicGraphV5.publishingAgreement:CDC__MUSIC_GRAPH_V5__PUBLISHING_AGREEMENT",
        "cdc.musicGraphV5.publishingComposition:CDC__MUSIC_GRAPH_V5__PUBLISHING_COMPOSITION",
        "cdc.musicGraphV5.publishingCompositionAgreement:CDC__MUSIC_GRAPH_V5__PUBLISHING_COMPOSITION_AGREEMENT",
        "cdc.musicGraphV5.publishingHasSoundRecording:CDC__MUSIC_GRAPH_V5__PUBLISHING_HAS_SOUND_RECORDING",
        "cdc.musicGraphV5.publishingPublisher:CDC__MUSIC_GRAPH_V5__PUBLISHING_PUBLISHER",
        "cdc.musicGraphV5.publishingPublisherAgreement:CDC__MUSIC_GRAPH_V5__PUBLISHING_PUBLISHER_AGREEMENT",
        "cdc.musicGraphV5.publishingSongWriter:CDC__MUSIC_GRAPH_V5__PUBLISHING_SONG_WRITER",
        "cdc.musicGraphV5.publishingSongwriterAgreement:CDC__MUSIC_GRAPH_V5__PUBLISHING_SONGWRITER_AGREEMENT",
        "cdc.musicGraphV5.releaseArtist:CDC__MUSIC_GRAPH_V5__RELEASE_ARTIST",
        "cdc.musicGraphV5.represents:CDC__MUSIC_GRAPH_V5__REPRESENTS",
        "cdc.musicGraphV5.serviceTier:CDC__MUSIC_GRAPH_V5__SERVICE_TIER",
        "cdc.musicGraphV5.subAccount:CDC__MUSIC_GRAPH_V5__SUB_ACCOUNT",
        "cdc.musicGraphV5.track:CDC__MUSIC_GRAPH_V5__TRACK",
        "cdc.musicGraphV5.trackArtist:CDC__MUSIC_GRAPH_V5__TRACK_ARTIST",
        "cdc.musicGraphV5.trackWriter:CDC__MUSIC_GRAPH_V5__TRACK_WRITER",
        "cdc.musicGraphV5.vendor:CDC__MUSIC_GRAPH_V5__VENDOR",
        "cdc.musicGraphV5.vendorInServiceTier:CDC__MUSIC_GRAPH_V5__VENDOR_IN_SERVICE_TIER",
        "cdc.musicGraphV5.vendorOwnsSubaccount:CDC__MUSIC_GRAPH_V5__VENDOR_OWNS_SUBACCOUNT",
        "cdc.musicGraphV5.video:CDC__MUSIC_GRAPH_V5__VIDEO",
      ])
    },
    {
      DLQ_TOPIC_NAME = "dlq.musicGraphV5.noGSR"
    },
  ]
}

# This rule will allow kafka-connect tasks to communicate with each other in distributed mode
resource "aws_security_group_rule" "allow_intra_cluster_communication_no_gsr_sink" {
  from_port         = 8083
  to_port           = 8083
  protocol          = "tcp"
  security_group_id = module.snowflake_sink_no_gsr_fargate_environment.fargate_security_group_id
  self              = true
  type              = "ingress"
}


module "fargate_service_dashboard_no_gsr" {
  source = "git@github.com:theorchard/terraform-datadog.git//modules/kafka_connector?ref=6.15.2"

  environment        = var.environment
  application_family = var.application_family
  additional_tags    = var.additional_tags
  environment_type   = "fargate"
  service_name       = local.no_gsr_service_name
  connector_type     = "default_sink"

  notification_endpoints            = "@slack-kafka-data-highway-alerts"
  escalation_notification_endpoints = "@slack-data-alerts-qa"
  monitor_kafka_topics = [
    "cdc.musicGraphV5.acrid",
    "cdc.musicGraphV5.belongsTo",
    "cdc.musicGraphV5.companyBrand",
    "cdc.musicGraphV5.companyBrandBelongsToParentCompany",
    "cdc.musicGraphV5.companyBrandHasLabelVendor",
    "cdc.musicGraphV5.containsFingerprint",
    "cdc.musicGraphV5.deletedContainsFingerprint",
    "cdc.musicGraphV5.createdFrom",
    "cdc.musicGraphV5.deletedHasAccessTo",
    "cdc.musicGraphV5.deletedHasAccessToArtistInfo",
    "cdc.musicGraphV5.deletedHasAccessToLabelParticipant",
    "cdc.musicGraphV5.deletedHasAccessToVendor",
    "cdc.musicGraphV5.deletedHasAdminAccessTo",
    "cdc.musicGraphV5.deletedHasAdminAccessToSubaccount",
    "cdc.musicGraphV5.deletedHasAdminAccessToVendor",
    "cdc.musicGraphV5.deletedHasProfile",
    "cdc.musicGraphV5.fingerprintedAs",
    "cdc.musicGraphV5.fingerprintRule",
    "cdc.musicGraphV5.globalParticipant",
    "cdc.musicGraphV5.globalParticipantMergedToGlobalParticipant",
    "cdc.musicGraphV5.globalParticipantRepresentsLabelParticipant",
    "cdc.musicGraphV5.globalParticipantRepresentsPublicParticipant",
    "cdc.musicGraphV5.globalSoundRecordingRepresentsLabelSR",
    "cdc.musicGraphV5.globalSoundRecordingRepresentsPublicSR",
    "cdc.musicGraphV5.hasAccessTo",
    "cdc.musicGraphV5.hasAdminAccessTo",
    "cdc.musicGraphV5.hasAgreement",
    "cdc.musicGraphV5.hasAsset",
    "cdc.musicGraphV5.hasAutoFollowed",
    "cdc.musicGraphV5.hasComposition",
    "cdc.musicGraphV5.hasLabel",
    "cdc.musicGraphV5.hasLabelParticipant",
    "cdc.musicGraphV5.vendorHasLabelParticipant",
    "cdc.musicGraphV5.subaccountHasLabelParticipant",
    "cdc.musicGraphV5.hasLabelSoundRecordingParticipation",
    "cdc.musicGraphV5.onLabelSoundRecording",
    "cdc.musicGraphV5.withParticipationRole",
    "cdc.musicGraphV5.hasProfile",
    "cdc.musicGraphV5.hasSignedWriter",
    "cdc.musicGraphV5.hasSoundRecording",
    "cdc.musicGraphV5.hasSourceArtist",
    "cdc.musicGraphV5.hasSubscription",
    "cdc.musicGraphV5.identity",
    "cdc.musicGraphV5.includes",
    "cdc.musicGraphV5.inServiceTier",
    "cdc.musicGraphV5.isPlacementOf",
    "cdc.musicGraphV5.label",
    "cdc.musicGraphV5.labelParticipant",
    "cdc.musicGraphV5.labelSoundRecording",
    "cdc.musicGraphV5.labelSoundRecordingParticipation",
    "cdc.musicGraphV5.participationRole",
    "cdc.musicGraphV5.LPCreatedFromReleaseArtist",
    "cdc.musicGraphV5.LPParticipatedInOrchardProduct",
    "cdc.musicGraphV5.LPUsedToParticipateInOrchardProduct",
    "cdc.musicGraphV5.LPParticipatedInOrchardTrack",
    "cdc.musicGraphV5.LPUsedToParticipateInOrchardTrack",
    "cdc.musicGraphV5.mergedTo",
    "cdc.musicGraphV5.orchardAsset",
    "cdc.musicGraphV5.orchardProduct",
    "cdc.musicGraphV5.orchardSoundRecording",
    "cdc.musicGraphV5.orchardTrack",
    "cdc.musicGraphV5.orchardTrackIsPlacementOfLabelSR",
    "cdc.musicGraphV5.owns",
    "cdc.musicGraphV5.ownsProduct",
    "cdc.musicGraphV5.parentCompany",
    "cdc.musicGraphV5.participantIdentifier",
    "cdc.musicGraphV5.participatedIn",
    "cdc.musicGraphV5.PPParticipatedInPublicSoundRecording",
    "cdc.musicGraphV5.product",
    "cdc.musicGraphV5.productHasSourceArtistReleaseArtist",
    "cdc.musicGraphV5.productIncludesOrchardProduct",
    "cdc.musicGraphV5.productIncludesOrchardTrack",
    "cdc.musicGraphV5.profile",
    "cdc.musicGraphV5.profileDeletedHATSubaccount",
    "cdc.musicGraphV5.profileHasAccessToArtistInfo",
    "cdc.musicGraphV5.profileHasAccessToCollaborator",
    "cdc.musicGraphV5.profileHasAccessToLabelParticipant",
    "cdc.musicGraphV5.profileHasAccessToSubaccount",
    "cdc.musicGraphV5.profileHasAccessToVendor",
    "cdc.musicGraphV5.profileHasAdminAccessToSubaccount",
    "cdc.musicGraphV5.profileHasAdminAccessToVendor",
    "cdc.musicGraphV5.project",
    "cdc.musicGraphV5.projectBelongsToVendor",
    "cdc.musicGraphV5.publicParticipant",
    "cdc.musicGraphV5.publicProduct",
    "cdc.musicGraphV5.publicSoundRecording",
    "cdc.musicGraphV5.publicTrack",
    "cdc.musicGraphV5.publicTrackIsPlacementOfPublicSR",
    "cdc.musicGraphV5.publishingAgreement",
    "cdc.musicGraphV5.publishingComposition",
    "cdc.musicGraphV5.publishingCompositionAgreement",
    "cdc.musicGraphV5.publishingHasSoundRecording",
    "cdc.musicGraphV5.publishingPublisher",
    "cdc.musicGraphV5.publishingPublisherAgreement",
    "cdc.musicGraphV5.publishingSongWriter",
    "cdc.musicGraphV5.publishingSongwriterAgreement",
    "cdc.musicGraphV5.releaseArtist",
    "cdc.musicGraphV5.represents",
    "cdc.musicGraphV5.serviceTier",
    "cdc.musicGraphV5.subAccount",
    "cdc.musicGraphV5.track",
    "cdc.musicGraphV5.trackArtist",
    "cdc.musicGraphV5.trackWriter",
    "cdc.musicGraphV5.vendor",
    "cdc.musicGraphV5.vendorInServiceTier",
    "cdc.musicGraphV5.vendorOwnsSubaccount",
    "cdc.musicGraphV5.video",
    "dlq.musicGraphV5.noGSR",
  ]
  dlq_topic_name = "dlq.musicGraphV5.noGSR"

  healthy_tasks_monitor_enabled   = true
  service_cpu_monitor_enabled     = true
  error_monitor_enabled           = true
  healthy_tasks_evaluation_window = "last_1h"
  service_cpu_time_window         = "last_1h"
  # Alert on the number of times the metric shows unhealthy tasks within the last hour
  healthy_tasks_critical_number = 5
  error_monitor_critical_number_errors = 20
}
