module "data_and_analytics_crm_team_role" {
  source               = "../../../modules/iam/roles/cross_account_role"
  name                 = "data_and_analytics_crm_team_role"
  common_tags          = local.common_tags
  require_mfa          = true
  max_session_duration = 43200
  principal_list = formatlist("arn:aws:iam::%s:root", [
    module.aws_accounts_list.accounts["gdb-infra-dev"],
    "437795906767",
  ])
  policies_list = [
    module.iam_map.s3_partnermails_ro.arn,
    module.iam_policy_s3_incoming_rw.policy.arn,
    module.iam_map.s3_appreciationengine_ro.arn,
  ]
}

# DCRM-87
resource "aws_iam_user" "dcrm_87" {
  name = "${local.env_prefix}_dcrm_87"
}

resource "aws_iam_user_policy_attachment" "dcrm_87_s3" {
  user       = aws_iam_user.dcrm_87.name
  policy_arn = module.iam_policy_s3_incoming_rw.policy.arn
}

module "iam_policy_s3_incoming_rw" {
  source              = "../../../modules/iam/policies/s3/bucket_custom_paths"
  name                = "s3_incoming_rw"
  name_prefix         = local.name_prefix
  enable_list_buckets = true
  enable_write_mode   = true
  bucket_access_maps = [
    { bucketName = "dev-delphi-incoming", paths = ["appreciationengine/smf_mapping"] },
    { bucketName = "qa-delphi-incoming", paths = ["appreciationengine/smf_mapping"] },
    { bucketName = "stage-delphi-incoming", paths = ["appreciationengine/smf_mapping"] },
    { bucketName = "${local.name_prefix}-incoming", paths = ["appreciationengine/smf_mapping"] },
    { bucketName = "dev-delphi-incoming", paths = ["appreciationengine/smf_mcr"] },
    { bucketName = "qa-delphi-incoming", paths = ["appreciationengine/smf_mcr"] },
    { bucketName = "stage-delphi-incoming", paths = ["appreciationengine/smf_mcr"] },
    { bucketName = "${local.name_prefix}-incoming", paths = ["appreciationengine/smf_mcr"] },
    { bucketName = "dev-delphi-incoming", paths = ["appreciationengine/ae_processed_delete_requests"] },
    { bucketName = "qa-delphi-incoming", paths = ["appreciationengine/ae_processed_delete_requests"] },
    { bucketName = "stage-delphi-incoming", paths = ["appreciationengine/ae_processed_delete_requests"] },
    { bucketName = "${local.name_prefix}-incoming", paths = ["appreciationengine/ae_processed_delete_requests"] },
  ]
}
