terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}
variable "assumed_role_name" {
  type = string
}

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

variable "policy" {
  type = string # json encoded string
}

# controlplane assumes to this role
resource "aws_iam_role" "assumed_role" {
  name = var.assumed_role_name

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect = "Allow"
        Principal = {
          AWS = var.controlplane_role_arns
        }
        Action = "sts:AssumeRole"
      }
    ]
  })
}

resource "aws_iam_role_policy" "assumed_role_policy" {
  name = var.assumed_role_name
  role = aws_iam_role.assumed_role.id

  policy = var.policy
}

output "assumed_role_arn" {
  value = aws_iam_role.assumed_role.arn
}
