terraform {
  required_providers {
    alicloud = {
      source  = "aliyun/alicloud"
      version = ">= 1.268"
    }
  }
}

variable "env" {
  type = string
}

variable "logical_region_name" {
  type = string
}

variable "controlplane_role_arns" {
  type = list(string)
}

variable "auto_deploy_owner_tag" {
  type = string
}

module "dataplane-manager" {
  source = "../../ram_modules/dataplane"

  assumed_role_name      = "${var.env}-${var.logical_region_name}-dataplane-manager-assumed"
  controlplane_role_arns = var.controlplane_role_arns
  system_policies = [
    "AliyunOSSFullAccess",
    "AliyunECSFullAccess",
    "AliyunSLBFullAccess",
    "AliyunCSFullAccess",
    "AliyunPrivateLinkFullAccess",
    "AliyunNLBFullAccess",
    "AliyunVPCFullAccess",
    "AliyunCommonBandwidthPackageFullAccess",
    "AliyunPvtzFullAccess"
  ]
  auto_deploy_owner_tag = var.auto_deploy_owner_tag
}

data "alicloud_ram_roles" "dbaas_dev" {
  name_regex = "dbaas-dev"
}

locals {
  dbaas_dev_roles = [for r in data.alicloud_ram_roles.dbaas_dev.roles : r if r.name == "dbaas-dev"]
}

output "role_id" {
  value = module.dataplane-manager.assumed_role_id
}

output "role_name" {
  value = module.dataplane-manager.assumed_role_name
}

output "role_arn" {
  value = module.dataplane-manager.assumed_role_arn
}

output "dbaas_dev_role_id" {
  value = length(local.dbaas_dev_roles) > 0 ? local.dbaas_dev_roles[0].id : null
}

output "dbaas_dev_role_name" {
  value = length(local.dbaas_dev_roles) > 0 ? local.dbaas_dev_roles[0].name : null
}

output "dbaas_dev_role_arn" {
  value = length(local.dbaas_dev_roles) > 0 ? local.dbaas_dev_roles[0].arn : null
}