# Granting access to buckets from production account
module "aws_accounts_list" {
  source = "../../../modules/iam/aws_accounts_list"
}

locals {
  delphi_prod_root_arn = "arn:aws:iam::${module.aws_accounts_list.accounts.gdb-delphi-prod}:root"
  delphi_dev_root_arn  = "arn:aws:iam::${module.aws_accounts_list.accounts.gdb-delphi-dev}:root"
}

module "s3_ecommerce_transfer" {
  source             = "../../../modules/s3/private_bucket_with_logs_aes256_v2"
  bucket_name        = "${local.name_prefix}-ecommerce-transfer"
  logs_bucket_id     = data.aws_s3_bucket.logs.id
  logs_object_prefix = "${local.name_prefix}/ecommerce-transfer/"
  bucket_policy      = module.s3_bucket_policy_template_delphi_access.policy_document.json
  common_tags = merge(
    local.common_tags,
    {
      project                  = "Transfer",
      service                  = "S3",
      plat_env_project_service = "${local.aggregated_tag}_TSF_S3"
    }
  )
}

moved {
  from = module.bucket_policies
  to   = module.s3_bucket_policy_template_delphi_access
}

module "s3_bucket_policy_template_delphi_access" {
  source = "../../../modules/s3/bucket_policies/external_access_template"
  full_access_arns = [
    local.delphi_prod_root_arn,
    local.delphi_dev_root_arn,
  ]
}

module "s3_crm-ecommerce-data" {
  source             = "../../../modules/s3/private_bucket_with_logs_aes256_v2"
  bucket_name        = "${local.env_prefix}-crm-ecommerce-data"
  logs_bucket_id     = data.aws_s3_bucket.logs.id
  logs_object_prefix = "${local.name_prefix}/crm-ecommerce-data/"
  default_policy     = true
  common_tags = merge(
    local.common_tags,
    {
      project                  = "CRM",
      service                  = "S3",
      plat_env_project_service = "${local.aggregated_tag}_CRM_S3"
    }
  )
}

module "s3_crm-marketing-cloud-email" {
  source             = "../../../modules/s3/private_bucket_with_logs_aes256_v2"
  bucket_name        = "${local.env_prefix}-crm-marketing-cloud-email"
  logs_bucket_id     = data.aws_s3_bucket.logs.id
  logs_object_prefix = "${local.name_prefix}/crm-marketing-cloud-email/"
  default_policy     = true
  common_tags = merge(
    local.common_tags,
    {
      project                  = "CRM",
      service                  = "S3",
      plat_env_project_service = "${local.aggregated_tag}_CRM_S3"
    }
  )
}
