An automated indexing system that generates comprehensive indexes for the HashiCorp Terraform AWS provider, enabling AI agents, IDEs, and development tools to better understand and work with Terraform provider code.
This repository automatically monitors the hashicorp/terraform-provider-aws repository for new releases and generates structured indexes containing:
- Terraform Resources (e.g.,
aws_s3_bucket,aws_ec2_instance) - Data Sources (e.g.,
aws_ami,aws_availability_zones) - Ephemeral Resources (e.g.,
aws_secretsmanager_secret_version) - Go Symbol Information (functions, types, methods)
- CRUD Method Mappings (Create, Read, Update, Delete operations)
The generated indexes are organized in a structured directory layout:
index/
βββ terraform-provider-aws-index.json # Master index with metadata
βββ resources/ # Individual resource mappings
β βββ aws_s3_bucket.json
β βββ aws_ec2_instance.json
β βββ aws_rds_instance.json
β βββ ... (2000+ resource files)
βββ datasources/ # Individual data source mappings
β βββ aws_ami.json
β βββ aws_availability_zones.json
β βββ aws_caller_identity.json
β βββ ... (400+ data source files)
βββ ephemeral/ # Individual ephemeral resource mappings
β βββ aws_secretsmanager_secret_version.json
β βββ aws_ssm_parameter.json
β βββ ... (ephemeral resource files)
βββ internal/ # Go symbol indexes (if enabled)
βββ func.NewSomething.goindex
βββ type.SomeType.goindex
βββ ... (Go function/type indexes)
Each resource/data source/ephemeral resource has its own JSON file containing:
{
"terraform_type": "aws_s3_bucket",
"struct_type": "",
"namespace": "github.com/hashicorp/terraform-provider-aws/internal/service/s3",
"registration_method": "resourceBucket",
"sdk_type": "legacy_pluginsdk",
"schema_index": "func.resourceBucket.goindex",
"create_index": "func.resourceBucketCreate.goindex",
"read_index": "func.resourceBucketRead.goindex",
"update_index": "func.resourceBucketUpdate.goindex",
"delete_index": "func.resourceBucketDelete.goindex",
"attribute_index": "func.resourceBucket.goindex"
}{
"terraform_type": "aws_ami",
"struct_type": "",
"namespace": "github.com/hashicorp/terraform-provider-aws/internal/service/ec2",
"registration_method": "dataSourceAMI",
"sdk_type": "legacy_pluginsdk",
"schema_index": "func.dataSourceAMI.goindex",
"read_index": "func.dataSourceAMIRead.goindex",
"attribute_index": "func.dataSourceAMI.goindex"
}{
"terraform_type": "aws_secretsmanager_secret_version",
"struct_type": "SecretVersionEphemeralResource",
"namespace": "github.com/hashicorp/terraform-provider-aws/internal/service/secretsmanager",
"registration_method": "EphemeralResources",
"sdk_type": "ephemeral",
"schema_index": "method.SecretVersionEphemeralResource.Schema.goindex",
"open_index": "method.SecretVersionEphemeralResource.Open.goindex",
"renew_index": "method.SecretVersionEphemeralResource.Renew.goindex",
"close_index": "method.SecretVersionEphemeralResource.Close.goindex"
}# Get information about aws_s3_bucket resource
curl https://raw.githubusercontent.com/lonegunmanb/terraform-provider-aws-index/main/index/resources/aws_s3_bucket.json# List all available resources
curl https://api.github.com/repos/lonegunmanb/terraform-provider-aws-index/contents/index/resources# Get CRUD method names for aws_ec2_instance
curl https://raw.githubusercontent.com/lonegunmanb/terraform-provider-aws-index/main/index/resources/aws_ec2_instance.json | jq '.create_index, .read_index, .update_index, .delete_index'- Latest Stable: Always tracks the latest stable release (from
v5.30.0) - Version History: Tagged releases match the upstream provider versions
- SDK Support: Handles both Legacy Plugin SDK, Modern Terraform Plugin Framework, and Ephemeral Resources
- Legacy Plugin SDK: Resources using
schema.Resourcestructs - Modern Framework: Resources using the newer Terraform Plugin Framework
- Ephemeral Resources: Temporary resources with Open/Renew/Close lifecycle
Rich progress bars with:
- π Real-time progress indicators
- π Completion percentages and item counts
- β±οΈ Elapsed time and ETA calculations
- β‘ Processing rates (items/second)
Based on the latest Terraform Provider AWS version:
- ποΈ Resources: ~2,000+ Terraform resources (e.g.,
aws_s3_bucket,aws_ec2_instance) - π Data Sources: ~400+ data sources (e.g.,
aws_ami,aws_availability_zones) - β‘ Ephemeral Resources: ~20+ ephemeral resources (e.g.,
aws_secretsmanager_secret_version) - π¦ Services: 200+ AWS service packages (e.g.,
s3,ec2,rds) - π§ SDK Types: Legacy Plugin SDK, Modern Framework, and Ephemeral support
This repository is automatically maintained, but contributions are welcome:
- Bug Reports: File issues for incorrect or missing index information
- Feature Requests: Suggest improvements to the indexing system
- Tool Integration: Share examples of how you're using these indexes
This project is licensed under the same terms as the HashiCorp Terraform Provider AWS (Mozilla Public License 2.0).
- HashiCorp Terraform Provider AWS - The source provider being indexed
- Terraform - Infrastructure as Code tool
- Gophon - Go symbol indexing tool (if used for additional Go indexes)
terraform-mcp-eva- An experimental MCP server that helps Terraform module developers to make their life easier.