terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
  backend "s3" {}
}
variable "account" {
  type = string
}
variable "env" {
  type = string
}
variable "logical_region_name" {
  type = string
}
variable "dm_controlplane_role_arns" {
  type = list(string)
}
variable "import_controlplane_role_arns" {
  type = list(string)
}

provider "aws" {
  region  = "us-west-2"
  profile = var.account
}

module "dm" {
  source = "../../modules/dataplane"

  assumed_role_name = "${var.env}-${var.logical_region_name}-dm-controller-assumed-role"
  controlplane_role_arns = var.dm_controlplane_role_arns
  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect: "Allow",
        Action: [
            "ec2:*",
            "ebs:*",
            "eks:*",
            "elasticloadbalancing:*",
            "autoscaling:*",
            "iam:*",
            "kms:*",
            "route53:*",
            "s3:*",
            "lambda:*",
            "tag:*",
        ],
        Resource: "*"
      }
    ]
  })
}

module "import" {
  source = "../../modules/dataplane"

  assumed_role_name = "${var.env}-${var.logical_region_name}-import-controller-assumed-role"
  controlplane_role_arns = var.import_controlplane_role_arns
  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect: "Allow",
        Action: [
            "ec2:*",
            "ebs:*",
            "eks:*",
            "elasticloadbalancing:*",
            "autoscaling:*",
            "iam:*",
            "kms:*",
            "route53:*",
            "s3:*",
            "lambda:*",
            "tag:*",
        ],
        Resource: "*"
      }
    ]
  })
}


output "dm_controller_assumed_role_arn" {
  value = module.dm.assumed_role_arn
}

output "import_controller_assumed_role_arn" {
  value = module.import.assumed_role_arn
}