module "util_task_role" {
  source              = "../../../modules/iam/roles/ecs_task_role"
  enable_default_role = false
  name_prefix         = local.name_prefix
  name                = "util_task_role"
  common_tags = merge(
    local.common_tags,
    {
      project                  = "Utility",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_UTIL_ECS"
    }
  )
  policies_list = [
    module.iam_map.s3_env_rw.arn,
    module.iam_map.s3_sme_data_rw.arn,
    module.iam_map.sqs_producer.arn,
    data.aws_iam_policy.secrets-services-ro.arn,
    data.aws_iam_policy.logging.arn,
    module.iam_map.db_rw.arn,
  ]
}

module "migration_tool_task" {
  # Standard parameters which could be included into the template
  source             = "../../../modules/ecs/tasks/fargate"
  env_prefix         = local.env_prefix
  project_group      = local.project_group
  task_family        = "${local.name_prefix}-migration_tool"
  project            = "migration_tool"
  task_exec_role_arn = data.aws_iam_role.standard_exec.arn
  task_role_arn      = module.util_task_role.role.arn
  cpu                = 2048
  memory             = 8192
  image              = "${data.aws_ecr_repository.migration_tool.repository_url}:${local.docker_image_env_tag[var.platform.prefix]}"

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Utility",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_UTIL_ECS"
    }
  )

  #dd_api_key_secret  = "arn:aws:secretsmanager:us-east-1:${local.account_id}:secret:${lower(var.platform.name)}/${lower(var.platform.prefix)}/common/DD_API_KEY"
  #dd_docker_image    = "${data.aws_ecr_repository.datadog_agent.repository_url}:latest"
  #dd_log_group_name  = aws_cloudwatch_log_group.datadog-agent.name
}

module "s3_cleanup_task" {
  # Standard parameters which could be included into the template
  source             = "../../../modules/ecs/tasks/fargate"
  env_prefix         = local.env_prefix
  project_group      = local.project_group
  task_family        = "${local.name_prefix}-s3_cleanup"
  project            = "s3_cleanup"
  task_exec_role_arn = data.aws_iam_role.standard_exec.arn
  task_role_arn      = module.util_task_role.role.arn
  cpu                = 1024
  memory             = 4096
  image              = "${data.aws_ecr_repository.s3_cleanup.repository_url}:${local.docker_image_env_tag[var.platform.prefix]}"

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Utility",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_UTIL_ECS"
    }
  )

  #dd_api_key_secret  = "arn:aws:secretsmanager:us-east-1:${local.account_id}:secret:${lower(var.platform.name)}/${lower(var.platform.prefix)}/common/DD_API_KEY"
  #dd_docker_image    = "${data.aws_ecr_repository.datadog_agent.repository_url}:latest"
  #dd_log_group_name  = aws_cloudwatch_log_group.datadog-agent.name
}

data "aws_ecr_repository" "s3-parquet-transformer" {
  name = "delphi/s3-parquet-transformer"
}

module "s3_parquet_transformer_job_def" {
  source          = "../../../modules/batch/job_definition"
  env_prefix      = local.env_prefix
  project_group   = local.project_group
  project         = "s3_parquet_transformer"
  job_role_arn    = module.bulk_decompress_task_role.role.arn
  image           = "${data.aws_ecr_repository.s3-parquet-transformer.repository_url}:${local.docker_image_env_tag[var.platform.prefix]}"
  vcpus           = 2
  memory          = 7500
  timeout_seconds = 5400
  retry_attempts  = 1
  env_vars        = [{ name = "AWS_DEFAULT_REGION", value = var.aws_region_id }]
}

data "aws_ecr_repository" "apps-etl-prefill" {
  name = "delphi/apps-etl-prefill"
}

module "apps_etl_prefill_job_def" {
  source          = "../../../modules/batch/job_definition"
  env_prefix      = local.env_prefix
  project_group   = local.project_group
  project         = "apps_etl_prefill"
  job_role_arn    = module.bulk_decompress_task_role.role.arn
  image           = "${data.aws_ecr_repository.apps-etl-prefill.repository_url}:${local.docker_image_env_tag[var.platform.prefix]}"
  vcpus           = 2
  memory          = 7500
  timeout_seconds = 5400
  retry_attempts  = 1
  env_vars        = [{ name = "AWS_DEFAULT_REGION", value = var.aws_region_id }]
}

module "generate_events_task" {
  # Standard parameters which could be included into the template
  source             = "../../../modules/ecs/tasks/fargate"
  env_prefix         = local.env_prefix
  project_group      = local.project_group
  task_family        = "${local.name_prefix}-generate_events"
  project            = "generate_events"
  task_exec_role_arn = data.aws_iam_role.standard_exec.arn
  task_role_arn      = module.util_task_role.role.arn
  cpu                = 2048
  memory             = 8192
  image              = "475275892927.dkr.ecr.us-east-1.amazonaws.com/delphi/generate-events:develop"
  common_tags = merge(
    local.common_tags,
    {
      project                  = "Utility",
      service                  = "ECS",
      plat_env_project_service = "${local.aggregated_tag}_UTIL_ECS"
    }
  )
}
