module entitlement_management_service {
  source = "git::ssh://git@bitbucket.org/netfoundry/nf-mop-tf.git//modules/aws/ecs_fargate_service"
  service_name          = local.service_name
  container_count       = var.container_count[terraform.workspace]
  task_definition = data.template_file.task_definition.rendered
  task_role_arn = aws_iam_role.entitlement_management_task_role.arn
  registry_arn = aws_service_discovery_service.entitlement_management_service.arn
  ecs_cluster_id = data.terraform_remote_state.mop_core.outputs.ecs_cluster_id

  cpu = "512"
  memory = "1024"
  execution_role_arn = aws_iam_role.entitlement_management_task_role.arn
  security_groups = [
    aws_security_group.entitlement_management_service_sg.id,
    aws_security_group.entitlement_management_service_mysql.id,
    data.terraform_remote_state.mop_core.outputs.sg_alb_id

  ]
  subnets = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids
  log_retention = 30
}


# data "aws_caller_identity" "current" {}

data template_file "task_definition" {
  template = file("${path.module}/templates/task-definition.json")

  vars = {
    // @TODO - remove hard-coded ECR repo
    image_url             = "745435643501.dkr.ecr.us-east-1.amazonaws.com/entitlement-management:${data.aws_ssm_parameter.container_image.value}"
    # image_url = "netfoundry/entitlement-management:${data.aws_ssm_parameter.container_image.value}"
    container_name        = local.service_name
    container_port        = local.container_port
    log_group_region      = local.region
    log_group_name = module.entitlement_management_service.cwlog_group_name
    spring_profiles_active = local.deploy_env_name
    aws_default_region        = local.region
    mysql_pass            = data.aws_secretsmanager_secret.entitlement_management_service_mysql_pass.arn
    deploy_env = local.deploy_env_name
    docker_hub_secret_arn = data.terraform_remote_state.mop_core.outputs.dockerhub_secret_arn

    rds_username  = data.terraform_remote_state.mop_core.outputs.mop_common_db_entitlement_management_username
    rds_hostname  = data.terraform_remote_state.mop_core.outputs.mop_common_db_address
    auth0_client_id = auth0_client.client.client_id
    auth0_client_secret_arn = aws_ssm_parameter.auth_client_secret.arn
    deploy_environment = local.deploy_env_name
    es_url = var.es_host_map[terraform.workspace]
    es_username = "console_api"
    es_password_arn = data.aws_secretsmanager_secret.es_password.arn
    redis_cluster_address = data.terraform_remote_state.mop_core.outputs.redis_address
  }
}

data aws_secretsmanager_secret es_password {
  name = "io-netfoundry-elasticsearch-client-password"
}
