terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 4.58"
    }
    azuread = {
      source  = "hashicorp/azuread"
      version = "~> 3.0"
    }
    aws = {
      source  = "hashicorp/aws"
      version = "~> 6.0"
    }
    external = {
      source  = "hashicorp/external"
      version = "~> 2.3"
    }
  }

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

provider "aws" {
  profile = local.base_account
  region  = "us-west-2"
}

provider "aws" {
  profile = "default"
  region  = "us-west-2"
  alias   = "tf_state"
}

provider "aws" {
  alias   = "o11y_global"
  profile = local.o11y_outputs.account.value
  region  = element(split(":", local.o11y_outputs.sns_topic_arn.value), 3)
}

provider "azurerm" {
  use_cli         = true
  subscription_id = local.controlplane_subscription
  tenant_id       = local.controlplane_tenant_id
  client_id       = local.controlplane_client_id
  features {}
}

provider "azurerm" {
  alias           = "customer_o11y_deployment"
  use_cli         = true
  subscription_id = var.onboarding.customer_subscription_id
  tenant_id       = var.onboarding.customer_tenant_id
  client_id       = var.onboarding.o11y_deployment_multi_tenant_app_client_id
  features {}
}

provider "azurerm" {
  alias           = "jump_server"
  use_cli         = true
  subscription_id = local.jump_server_subscription
  tenant_id       = local.jump_server_tenant_id
  client_id       = local.controlplane_client_id
  features {}
}

provider "azuread" {
  use_oidc  = true
  tenant_id = local.controlplane_tenant_id
  client_id = local.controlplane_client_id
}

data "local_command" "git_rev_parse" {
  command   = "git"
  arguments = ["rev-parse", "HEAD"]
}

output "apply_commit" {
  value = chomp(data.local_command.git_rev_parse.stdout)
}
