module "snowflake_salesforce_exporter_ec2_role" {
  source = "../../../modules/iam/roles/ec2_instance_role"

  name_prefix = local.name_prefix
  name        = "snowflake-to-salesforce"

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Salesforce",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_SF_EC2",
      ticket                   = "IM-812"
    }
  )

  policies_list = [
    module.logging_policy.policy.arn,
    module.kms_secrets_manager.secrets_services_ro_policy.arn,
    "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly",
  ]
}

module "snowflake_salesforce_exporter_ec2" {
  source = "../../../modules/ec2/ec2"

  name_prefix          = "${local.name_prefix}-snowflake-to-salesforce"
  instances_count      = 1
  instance_type        = "t3.large"
  use_public_ip        = true
  use_eip              = true
  ami                  = "ami-0123be2cbe5367d96" // Amazon Linux 2 AMI (HVM), SSD Volume Type
  key_name             = var.key_pair_name
  security_groups      = [module.main_sg_map.management_id, module.main_sg_map.web_debug_http_id]
  subnet_ids           = module.main_public_subnets.subnet_ids
  iam_instance_profile = module.snowflake_salesforce_exporter_ec2_role.profile.name
  root_volume_size     = 50
  root_volume_type     = "gp3"

  instance_tags = {
    os_platform     = "linux",
    os_distribution = "amazon",
    splunk          = "true",
  }

  common_tags = merge(
    local.common_tags,
    {
      project                  = "Salesforce",
      service                  = "EC2",
      plat_env_project_service = "${local.aggregated_tag}_SF_EC2",
      ticket                   = "IM-812"
    }
  )
}
