Skip to content

lonegunmanb/terraform-provider-aws-index

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Terraform Provider AWS Index

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.

🎯 Purpose

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)

πŸ“ Index File Organization

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)

Index File Structure

Each resource/data source/ephemeral resource has its own JSON file containing:

Resource Example (resources/aws_s3_bucket.json)

{
  "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"
}

Data Source Example (datasources/aws_ami.json)

{
  "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"
}

Ephemeral Resource Example (ephemeral/aws_secretsmanager_secret_version.json)

{
  "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"
}

πŸš€ Usage Examples

For AI Agents and Language Models

1. Finding Resource Implementation Details

# Get information about aws_s3_bucket resource
curl https://raw.githubusercontent.com/lonegunmanb/terraform-provider-aws-index/main/index/resources/aws_s3_bucket.json

2. Discovering Available Resources

# List all available resources
curl https://api.github.com/repos/lonegunmanb/terraform-provider-aws-index/contents/index/resources

3. Finding CRUD Methods for Development

# 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'

Supported Provider Versions

  • 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

πŸ› οΈ Technical Architecture

Multi-SDK Support

  • Legacy Plugin SDK: Resources using schema.Resource structs
  • Modern Framework: Resources using the newer Terraform Plugin Framework
  • Ephemeral Resources: Temporary resources with Open/Renew/Close lifecycle

Progress Tracking

Rich progress bars with:

  • πŸ”„ Real-time progress indicators
  • πŸ“Š Completion percentages and item counts
  • ⏱️ Elapsed time and ETA calculations
  • ⚑ Processing rates (items/second)

πŸ“Š Statistics

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

🀝 Contributing

This repository is automatically maintained, but contributions are welcome:

  1. Bug Reports: File issues for incorrect or missing index information
  2. Feature Requests: Suggest improvements to the indexing system
  3. Tool Integration: Share examples of how you're using these indexes

πŸ“„ License

This project is licensed under the same terms as the HashiCorp Terraform Provider AWS (Mozilla Public License 2.0).

πŸ”— Related Projects

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages