
module "slz_esc_downloader_role" {
  source              = "../../../modules/iam/roles/ecs_task_role"
  enable_default_role = false
  name_prefix         = local.name_prefix
  name                = "slz_esc_downloader_role"
  common_tags = merge(
    local.common_tags,
    {
      project                  = "SLZ Ingestion",
      service                  = "Batch",
      plat_env_project_service = "${local.aggregated_tag}_SLZI_BTCH"
    }
  )
  policies_list = [
    module.slz_esc_downloader_role_merged_policy.policy.arn,
  ]
}

module "slz_esc_downloader_role_merged_policy" {
  source = "../../../modules/iam/policies/merged_policy"
  name   = "${local.name_prefix}-slz_downloader_role_merged_policy"
  source_policies = [
    module.iam_map.s3_env_rw.policy,
    module.iam_map.s3_sme_data_rw.policy,
    module.iam_map.sf_worker.policy,
    data.aws_iam_policy.secrets-services-rw.policy,
    data.aws_iam_policy.logging.policy,
    module.iam_map.sqs_producer.policy,
    module.iam_map.assume_isnt_role.policy,
    module.iam_map.s3_linkfire_ro.policy,
    data.aws_iam_policy.ddex_feed_ro_policy.policy,
    module.iam_map.s3_prod_orcd_ftp_ro.policy,
  ]
}

module "slz_downloader_job_def" {
  source          = "../../../modules/batch/job_definition"
  env_prefix      = local.env_prefix
  project_group   = local.project_group
  project         = "slz-downloader"
  job_role_arn    = module.slz_esc_downloader_role.role.arn
  image           = "${data.aws_ecr_repository.slz-downloader.repository_url}:${local.docker_image_env_tag[var.platform.prefix]}"
  vcpus           = 2
  memory          = 7500
  timeout_seconds = 25200
  retry_attempts  = 1
  env_vars        = [{ name = "AWS_REGION", value = var.aws_region_id }]
}

module "batch_run_config" {
  source                           = "../../modules/batch_run_config"
  env_prefix                       = local.env_prefix
  delphi-configs                   = data.aws_s3_bucket.delphi-configs.bucket
  sme-data-archive                 = data.aws_s3_bucket.sme-data-archive.bucket
  sme-data-decompressed            = data.aws_s3_bucket.sme-data-decompressed.bucket
  sme-data-corrupted               = data.aws_s3_bucket.sme-data-corrupted.bucket
  sme-data-archive-quarantine      = data.aws_s3_bucket.delphi-quarantine-sme-data-archive.bucket
  sme-data-decompressed-quarantine = data.aws_s3_bucket.delphi-quarantine-sme-data-decompressed.bucket
  batch_job_definition_arn         = module.slz_downloader_job_def.batch_job_definition.arn
  batch_job_queue_arn              = data.aws_batch_job_queue.slz_downloader_main.arn
  low_priority_batch_job_queue_arn = data.aws_batch_job_queue.slz_downloader_spotqueue.arn
}
