Convert Terraform Provider Configuration to JSON

Convert Terraform provider blocks with regions, credentials, aliases, and feature flags from HCL to JSON format.

Modules

Detailed Explanation

Terraform Provider Configuration

Provider blocks configure the cloud provider plugins that Terraform uses to manage infrastructure. Multi-region and multi-account setups use provider aliases.

HCL Provider Configuration

terraform {
  required_version = ">= 1.5"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    random = {
      source  = "hashicorp/random"
      version = "~> 3.5"
    }
  }

  backend "s3" {
    bucket = "my-terraform-state"
    key    = "prod/terraform.tfstate"
    region = "us-east-1"
  }
}

provider "aws" {
  region = "us-east-1"

  default_tags {
    tags = {
      ManagedBy = "terraform"
    }
  }
}

provider "aws" {
  region = "eu-west-1"
}

JSON Structure

The terraform block contains required_version, required_providers, and backend as nested structures. Provider blocks are keyed by provider name:

{
  "terraform": {
    "required_version": ">= 1.5",
    "required_providers": {
      "aws": {
        "source": "hashicorp/aws",
        "version": "~> 5.0"
      }
    },
    "backend": {
      "s3": {
        "bucket": "my-terraform-state",
        "key": "prod/terraform.tfstate",
        "region": "us-east-1"
      }
    }
  },
  "provider": {
    "aws": {
      "region": "us-east-1"
    }
  }
}

Provider Aliases

Multiple provider configurations for the same provider use aliases. In HCL:

provider "aws" {
  alias  = "eu"
  region = "eu-west-1"
}

Version Constraints

The ~> 5.0 version constraint means "any 5.x version". Other operators include >=, <=, !=, and exact version pins.

Use Case

Setting up multi-region or multi-account AWS deployments, configuring Terraform state backends, or generating provider configurations from infrastructure catalogs.

Try It — HCL ↔ JSON Converter

Open full tool