terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.58"
    }
  }

  backend "s3" {
    bucket       = "autonomous-deployment-terraform-state"
    region       = "us-west-2"
    use_lockfile = true
  }
}

variable "env" {
  type = string
}

variable "dataplane_subscription_id" {
  type = string
}

variable "bucket_resource_group_location" {
  type    = string
  default = "eastus2"
}

data "terraform_remote_state" "seed" {
  backend = "s3"

  config = {
    bucket       = "autonomous-deployment-terraform-state"
    region       = "us-west-2"
    key          = "azure/account/seed/${var.env}.json"
  }
}

provider "azurerm" {
  features {}

  subscription_id = var.dataplane_subscription_id
  tenant_id       = data.terraform_remote_state.seed.outputs.controlplane_tenant_id
}

locals {
  bucket_resource_group_name = "${var.env}-premium-bucket"
}

resource "azurerm_resource_group" "premium_bucket" {
  name     = local.bucket_resource_group_name
  location = var.bucket_resource_group_location
}

output "env" {
  value = var.env
}

output "base_account" {
  value = data.terraform_remote_state.seed.outputs.base_account
}

output "controlplane_tenant_id" {
  value = data.terraform_remote_state.seed.outputs.controlplane_tenant_id
}

output "controlplane_subscription_id" {
  value = data.terraform_remote_state.seed.outputs.controlplane_subscription_id
}

output "controlplane_client_id" {
  value = data.terraform_remote_state.seed.outputs.controlplane_client_id
}

output "dataplane_subscription_id" {
  value = var.dataplane_subscription_id
}

output "bucket_resource_group_name" {
  value = azurerm_resource_group.premium_bucket.name
}
