[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-hashicorp-terraform-search-import":3,"mdc-v5bxbf-key":40,"related-org-hashicorp-terraform-search-import":2449,"related-repo-hashicorp-terraform-search-import":2609},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":35,"sourceUrl":38,"mdContent":39},"terraform-search-import","import existing cloud resources into Terraform","Discover existing cloud resources using Terraform Search queries and bulk import them into Terraform management. Use when bringing unmanaged infrastructure under Terraform control, auditing cloud resources, or migrating to IaC.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"hashicorp","HashiCorp","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fhashicorp.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Audit","audit","tag",{"name":17,"slug":18,"type":15},"Migration","migration",{"name":20,"slug":21,"type":15},"Terraform","terraform",{"name":23,"slug":24,"type":15},"Cloud","cloud",{"name":26,"slug":27,"type":15},"Infrastructure as Code","infrastructure-as-code",728,"https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fagent-skills","2026-04-06T18:25:15.617118",null,104,[34],"doormat-managed",{"repoUrl":29,"stars":28,"forks":32,"topics":36,"description":37},[34],"A collection of Agent skills and Claude Code plugins for HashiCorp products.","https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fterraform\u002Fcode-generation\u002Fskills\u002Fterraform-search-import","---\nname: terraform-search-import\ndescription: Discover existing cloud resources using Terraform Search queries and bulk import them into Terraform management. Use when bringing unmanaged infrastructure under Terraform control, auditing cloud resources, or migrating to IaC.\nmetadata:\n  copyright: Copyright IBM Corp. 2026\n  version: \"0.1.0\"\ncompatibility: Requires Terraform >= 1.14 and providers with list resource support (always use latest provider version)\n---\n\n# Terraform Search and Bulk Import\n\nDiscover existing cloud resources using declarative queries and generate configuration for bulk import into Terraform state.\n\n**References:**\n- [Terraform Search - list block](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Flanguage\u002Fblock\u002Ftfquery\u002Flist)\n- [Bulk Import](https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Flanguage\u002Fimport\u002Fbulk)\n\n## When to Use\n\n- Bringing unmanaged resources under Terraform control\n- Auditing existing cloud infrastructure\n- Migrating from manual provisioning to IaC\n- Discovering resources across multiple regions\u002Faccounts\n\n## IMPORTANT: Check Provider Support First\n\n**BEFORE starting, you MUST verify the target resource type is supported:**\n\n```bash\n# Check what list resources are available\n.\u002Fscripts\u002Flist_resources.sh aws      # Specific provider\n.\u002Fscripts\u002Flist_resources.sh          # All configured providers\n```\n\n## Decision Tree\n\n1. **Identify target resource type** (e.g., aws_s3_bucket, aws_instance)\n2. **Check if supported**: Run `.\u002Fscripts\u002Flist_resources.sh \u003Cprovider>`\n3. **Choose workflow**:\n   - ** If supported**: Check for terraform version available.\n   - ** If terraform version is above 1.14.0** Use Terraform Search workflow (below)\n   - ** If not supported or terraform version is below 1.14.0 **: Use Manual Discovery workflow (see [references\u002FMANUAL-IMPORT.md](references\u002FMANUAL-IMPORT.md))\n\n   **Note**: The list of supported resources is rapidly expanding. Always verify current support before using manual import.\n\n## Prerequisites\n\nBefore writing queries, verify the provider supports list resources for your target resource type.\n\n### Discover Available List Resources\n\nRun the helper script to extract supported list resources from your provider:\n\n```bash\n# From a directory with provider configuration (runs terraform init if needed)\n.\u002Fscripts\u002Flist_resources.sh aws      # Specific provider\n.\u002Fscripts\u002Flist_resources.sh          # All configured providers\n```\n\nOr manually query the provider schema:\n\n```bash\nterraform providers schema -json | jq '.provider_schemas | to_entries | map({key: (.key | split(\"\u002F\")[-1]), value: (.value.list_resource_schemas \u002F\u002F {} | keys)})'\n```\n\nTerraform Search requires an initialized working directory. Ensure you have a configuration with the required provider before running queries:\n\n```hcl\n# terraform.tf\nterraform {\n  required_providers {\n    aws = {\n      source  = \"hashicorp\u002Faws\"\n      version = \"~> 6.0\"\n    }\n  }\n}\n```\n\nRun `terraform init` to download the provider, then proceed with queries.\n\n## Terraform Search Workflow (Supported Resources Only)\n\n1. Create `.tfquery.hcl` files with `list` blocks defining search queries\n2. Run `terraform query` to discover matching resources\n3. Generate configuration with `-generate-config-out=\u003Cfile>`\n4. Review and refine generated `resource` and `import` blocks\n5. Run `terraform plan` and `terraform apply` to import\n\n## Query File Structure\n\nQuery files use `.tfquery.hcl` extension and support:\n- `provider` blocks for authentication\n- `list` blocks for resource discovery\n- `variable` and `locals` blocks for parameterization\n\n```hcl\n# discovery.tfquery.hcl\nprovider \"aws\" {\n  region = \"us-west-2\"\n}\n\nlist \"aws_instance\" \"all\" {\n  provider = aws\n}\n```\n\n## List Block Syntax\n\n```hcl\nlist \"\u003Clist_type>\" \"\u003Csymbolic_name>\" {\n  provider = \u003Cprovider_reference>  # Required\n\n  # Optional: filter configuration (provider-specific)\n  # The `config` block schema is provider-specific. Discover available options using `terraform providers schema -json | jq '.provider_schemas.\"registry.terraform.io\u002Fhashicorp\u002F\u003Cprovider>\".list_resource_schemas.\"\u003Cresource_type>\"'`\n\n  config {\n    filter {\n      name   = \"\u003Cfilter_name>\"\n      values = [\"\u003Cvalue1>\", \"\u003Cvalue2>\"]\n    }\n    region = \"\u003Cregion>\"  # AWS-specific\n  }\n  # Optional: limit results\n  limit = 100\n}\n```\n\n## Supported List Resources\n\nProvider support for list resources varies by version. **Always check what's available for your specific provider version using the discovery script.**\n\n## Query Examples\n\n### Basic Discovery\n\n```hcl\n# Find all EC2 instances in configured region\nlist \"aws_instance\" \"all\" {\n  provider = aws\n}\n```\n\n### Filtered Discovery\n\n```hcl\n# Find instances by tag\nlist \"aws_instance\" \"production\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"tag:Environment\"\n      values = [\"production\"]\n    }\n  }\n}\n\n# Find instances by type\nlist \"aws_instance\" \"large\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"instance-type\"\n      values = [\"t3.large\", \"t3.xlarge\"]\n    }\n  }\n}\n```\n\n### Multi-Region Discovery\n\n```hcl\nprovider \"aws\" {\n  region = \"us-west-2\"\n}\n\nlocals {\n  regions = [\"us-west-2\", \"us-east-1\", \"eu-west-1\"]\n}\n\nlist \"aws_instance\" \"all_regions\" {\n  for_each = toset(local.regions)\n  provider = aws\n\n  config {\n    region = each.value\n  }\n}\n```\n\n### Parameterized Queries\n\n```hcl\nvariable \"target_environment\" {\n  type    = string\n  default = \"staging\"\n}\n\nlist \"aws_instance\" \"by_env\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"tag:Environment\"\n      values = [var.target_environment]\n    }\n  }\n}\n```\n\n## Running Queries\n\n```bash\n# Execute queries and display results\nterraform query\n\n# Generate configuration file\nterraform query -generate-config-out=imported.tf\n\n# Pass variables\nterraform query -var='target_environment=production'\n```\n\n## Query Output Format\n\n```\nlist.aws_instance.all   account_id=123456789012,id=i-0abc123,region=us-west-2   web-server\n```\n\nColumns: `\u003Cquery_address>   \u003Cidentity_attributes>   \u003Cname_tag>`\n\n## Generated Configuration\n\nThe `-generate-config-out` flag creates:\n\n```hcl\n# __generated__ by Terraform\nresource \"aws_instance\" \"all_0\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  # ... all attributes\n}\n\nimport {\n  to       = aws_instance.all_0\n  provider = aws\n  identity = {\n    account_id = \"123456789012\"\n    id         = \"i-0abc123\"\n    region     = \"us-west-2\"\n  }\n}\n```\n\n## Post-Generation Cleanup\n\nGenerated configuration includes all attributes. Clean up by:\n\n1. Remove computed\u002Fread-only attributes\n2. Replace hardcoded values with variables\n3. Add proper resource naming\n4. Organize into appropriate files\n\n```hcl\n# Before: generated\nresource \"aws_instance\" \"all_0\" {\n  ami                    = \"ami-0c55b159cbfafe1f0\"\n  instance_type          = \"t2.micro\"\n  arn                    = \"arn:aws:ec2:...\"  # Remove - computed\n  id                     = \"i-0abc123\"        # Remove - computed\n  # ... many more attributes\n}\n\n# After: cleaned\nresource \"aws_instance\" \"web_server\" {\n  ami           = var.ami_id\n  instance_type = var.instance_type\n  subnet_id     = var.subnet_id\n\n  tags = {\n    Name        = \"web-server\"\n    Environment = var.environment\n  }\n}\n```\n\n## Import by Identity\n\nGenerated imports use identity-based import (Terraform 1.12+):\n\n```hcl\nimport {\n  to       = aws_instance.web\n  provider = aws\n  identity = {\n    account_id = \"123456789012\"\n    id         = \"i-0abc123\"\n    region     = \"us-west-2\"\n  }\n}\n```\n\n## Best Practices\n\n### Query Design\n- Start broad, then add filters to narrow results\n- Use `limit` to prevent overwhelming output\n- Test queries before generating configuration\n\n### Configuration Management\n- Review all generated code before applying\n- Remove unnecessary default values\n- Use consistent naming conventions\n- Add proper variable abstraction\n\n## Troubleshooting\n\n| Issue | Solution |\n|-------|----------|\n| \"No list resources found\" | Check provider version supports list resources |\n| Query returns empty | Verify region and filter values |\n| Generated config has errors | Remove computed attributes, fix deprecated arguments |\n| Import fails | Ensure resource not already in state |\n\n## Complete Example\n\n```hcl\n# main.tf - Initialize provider\nterraform {\n  required_version = \">= 1.14\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp\u002Faws\"\n      version = \"~> 6.0\"  # Always use latest version\n    }\n  }\n}\n\n# discovery.tfquery.hcl - Define queries\nprovider \"aws\" {\n  region = \"us-west-2\"\n}\n\nlist \"aws_instance\" \"team_instances\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"tag:Owner\"\n      values = [\"platform\"]\n    }\n    filter {\n      name   = \"instance-state-name\"\n      values = [\"running\"]\n    }\n  }\n\n  limit = 50\n}\n```\n\n```bash\n# Execute workflow\nterraform init\nterraform query\nterraform query -generate-config-out=generated.tf\n# Review and clean generated.tf\nterraform plan\nterraform apply\n```\n",{"data":41,"body":46},{"name":4,"description":6,"metadata":42,"compatibility":45},{"copyright":43,"version":44},"Copyright IBM Corp. 2026","0.1.0","Requires Terraform >= 1.14 and providers with list resource support (always use latest provider version)",{"type":47,"children":48},"root",[49,58,64,73,100,107,130,136,144,202,208,284,290,295,302,307,348,353,408,413,500,513,519,606,612,624,666,736,742,879,885,895,901,907,943,949,1132,1138,1262,1268,1385,1391,1495,1501,1511,1522,1528,1541,1671,1677,1682,1705,1866,1872,1877,1948,1954,1960,1986,1992,2015,2021,2101,2107,2357,2443],{"type":50,"tag":51,"props":52,"children":54},"element","h1",{"id":53},"terraform-search-and-bulk-import",[55],{"type":56,"value":57},"text","Terraform Search and Bulk Import",{"type":50,"tag":59,"props":60,"children":61},"p",{},[62],{"type":56,"value":63},"Discover existing cloud resources using declarative queries and generate configuration for bulk import into Terraform state.",{"type":50,"tag":59,"props":65,"children":66},{},[67],{"type":50,"tag":68,"props":69,"children":70},"strong",{},[71],{"type":56,"value":72},"References:",{"type":50,"tag":74,"props":75,"children":76},"ul",{},[77,90],{"type":50,"tag":78,"props":79,"children":80},"li",{},[81],{"type":50,"tag":82,"props":83,"children":87},"a",{"href":84,"rel":85},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Flanguage\u002Fblock\u002Ftfquery\u002Flist",[86],"nofollow",[88],{"type":56,"value":89},"Terraform Search - list block",{"type":50,"tag":78,"props":91,"children":92},{},[93],{"type":50,"tag":82,"props":94,"children":97},{"href":95,"rel":96},"https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Flanguage\u002Fimport\u002Fbulk",[86],[98],{"type":56,"value":99},"Bulk Import",{"type":50,"tag":101,"props":102,"children":104},"h2",{"id":103},"when-to-use",[105],{"type":56,"value":106},"When to Use",{"type":50,"tag":74,"props":108,"children":109},{},[110,115,120,125],{"type":50,"tag":78,"props":111,"children":112},{},[113],{"type":56,"value":114},"Bringing unmanaged resources under Terraform control",{"type":50,"tag":78,"props":116,"children":117},{},[118],{"type":56,"value":119},"Auditing existing cloud infrastructure",{"type":50,"tag":78,"props":121,"children":122},{},[123],{"type":56,"value":124},"Migrating from manual provisioning to IaC",{"type":50,"tag":78,"props":126,"children":127},{},[128],{"type":56,"value":129},"Discovering resources across multiple regions\u002Faccounts",{"type":50,"tag":101,"props":131,"children":133},{"id":132},"important-check-provider-support-first",[134],{"type":56,"value":135},"IMPORTANT: Check Provider Support First",{"type":50,"tag":59,"props":137,"children":138},{},[139],{"type":50,"tag":68,"props":140,"children":141},{},[142],{"type":56,"value":143},"BEFORE starting, you MUST verify the target resource type is supported:",{"type":50,"tag":145,"props":146,"children":151},"pre",{"className":147,"code":148,"language":149,"meta":150,"style":150},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Check what list resources are available\n.\u002Fscripts\u002Flist_resources.sh aws      # Specific provider\n.\u002Fscripts\u002Flist_resources.sh          # All configured providers\n","bash","",[152],{"type":50,"tag":153,"props":154,"children":155},"code",{"__ignoreMap":150},[156,168,189],{"type":50,"tag":157,"props":158,"children":161},"span",{"class":159,"line":160},"line",1,[162],{"type":50,"tag":157,"props":163,"children":165},{"style":164},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[166],{"type":56,"value":167},"# Check what list resources are available\n",{"type":50,"tag":157,"props":169,"children":171},{"class":159,"line":170},2,[172,178,184],{"type":50,"tag":157,"props":173,"children":175},{"style":174},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[176],{"type":56,"value":177},".\u002Fscripts\u002Flist_resources.sh",{"type":50,"tag":157,"props":179,"children":181},{"style":180},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[182],{"type":56,"value":183}," aws",{"type":50,"tag":157,"props":185,"children":186},{"style":164},[187],{"type":56,"value":188},"      # Specific provider\n",{"type":50,"tag":157,"props":190,"children":192},{"class":159,"line":191},3,[193,197],{"type":50,"tag":157,"props":194,"children":195},{"style":174},[196],{"type":56,"value":177},{"type":50,"tag":157,"props":198,"children":199},{"style":164},[200],{"type":56,"value":201},"          # All configured providers\n",{"type":50,"tag":101,"props":203,"children":205},{"id":204},"decision-tree",[206],{"type":56,"value":207},"Decision Tree",{"type":50,"tag":209,"props":210,"children":211},"ol",{},[212,222,238],{"type":50,"tag":78,"props":213,"children":214},{},[215,220],{"type":50,"tag":68,"props":216,"children":217},{},[218],{"type":56,"value":219},"Identify target resource type",{"type":56,"value":221}," (e.g., aws_s3_bucket, aws_instance)",{"type":50,"tag":78,"props":223,"children":224},{},[225,230,232],{"type":50,"tag":68,"props":226,"children":227},{},[228],{"type":56,"value":229},"Check if supported",{"type":56,"value":231},": Run ",{"type":50,"tag":153,"props":233,"children":235},{"className":234},[],[236],{"type":56,"value":237},".\u002Fscripts\u002Flist_resources.sh \u003Cprovider>",{"type":50,"tag":78,"props":239,"children":240},{},[241,246,248,273,277,282],{"type":50,"tag":68,"props":242,"children":243},{},[244],{"type":56,"value":245},"Choose workflow",{"type":56,"value":247},":",{"type":50,"tag":74,"props":249,"children":250},{},[251,256,261],{"type":50,"tag":78,"props":252,"children":253},{},[254],{"type":56,"value":255},"** If supported**: Check for terraform version available.",{"type":50,"tag":78,"props":257,"children":258},{},[259],{"type":56,"value":260},"** If terraform version is above 1.14.0** Use Terraform Search workflow (below)",{"type":50,"tag":78,"props":262,"children":263},{},[264,266,271],{"type":56,"value":265},"** If not supported or terraform version is below 1.14.0 **: Use Manual Discovery workflow (see ",{"type":50,"tag":82,"props":267,"children":269},{"href":268},"references\u002FMANUAL-IMPORT.md",[270],{"type":56,"value":268},{"type":56,"value":272},")",{"type":50,"tag":274,"props":275,"children":276},"br",{},[],{"type":50,"tag":68,"props":278,"children":279},{},[280],{"type":56,"value":281},"Note",{"type":56,"value":283},": The list of supported resources is rapidly expanding. Always verify current support before using manual import.",{"type":50,"tag":101,"props":285,"children":287},{"id":286},"prerequisites",[288],{"type":56,"value":289},"Prerequisites",{"type":50,"tag":59,"props":291,"children":292},{},[293],{"type":56,"value":294},"Before writing queries, verify the provider supports list resources for your target resource type.",{"type":50,"tag":296,"props":297,"children":299},"h3",{"id":298},"discover-available-list-resources",[300],{"type":56,"value":301},"Discover Available List Resources",{"type":50,"tag":59,"props":303,"children":304},{},[305],{"type":56,"value":306},"Run the helper script to extract supported list resources from your provider:",{"type":50,"tag":145,"props":308,"children":310},{"className":147,"code":309,"language":149,"meta":150,"style":150},"# From a directory with provider configuration (runs terraform init if needed)\n.\u002Fscripts\u002Flist_resources.sh aws      # Specific provider\n.\u002Fscripts\u002Flist_resources.sh          # All configured providers\n",[311],{"type":50,"tag":153,"props":312,"children":313},{"__ignoreMap":150},[314,322,337],{"type":50,"tag":157,"props":315,"children":316},{"class":159,"line":160},[317],{"type":50,"tag":157,"props":318,"children":319},{"style":164},[320],{"type":56,"value":321},"# From a directory with provider configuration (runs terraform init if needed)\n",{"type":50,"tag":157,"props":323,"children":324},{"class":159,"line":170},[325,329,333],{"type":50,"tag":157,"props":326,"children":327},{"style":174},[328],{"type":56,"value":177},{"type":50,"tag":157,"props":330,"children":331},{"style":180},[332],{"type":56,"value":183},{"type":50,"tag":157,"props":334,"children":335},{"style":164},[336],{"type":56,"value":188},{"type":50,"tag":157,"props":338,"children":339},{"class":159,"line":191},[340,344],{"type":50,"tag":157,"props":341,"children":342},{"style":174},[343],{"type":56,"value":177},{"type":50,"tag":157,"props":345,"children":346},{"style":164},[347],{"type":56,"value":201},{"type":50,"tag":59,"props":349,"children":350},{},[351],{"type":56,"value":352},"Or manually query the provider schema:",{"type":50,"tag":145,"props":354,"children":356},{"className":147,"code":355,"language":149,"meta":150,"style":150},"terraform providers schema -json | jq '.provider_schemas | to_entries | map({key: (.key | split(\"\u002F\")[-1]), value: (.value.list_resource_schemas \u002F\u002F {} | keys)})'\n",[357],{"type":50,"tag":153,"props":358,"children":359},{"__ignoreMap":150},[360],{"type":50,"tag":157,"props":361,"children":362},{"class":159,"line":160},[363,367,372,377,382,388,393,398,403],{"type":50,"tag":157,"props":364,"children":365},{"style":174},[366],{"type":56,"value":21},{"type":50,"tag":157,"props":368,"children":369},{"style":180},[370],{"type":56,"value":371}," providers",{"type":50,"tag":157,"props":373,"children":374},{"style":180},[375],{"type":56,"value":376}," schema",{"type":50,"tag":157,"props":378,"children":379},{"style":180},[380],{"type":56,"value":381}," -json",{"type":50,"tag":157,"props":383,"children":385},{"style":384},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[386],{"type":56,"value":387}," |",{"type":50,"tag":157,"props":389,"children":390},{"style":174},[391],{"type":56,"value":392}," jq",{"type":50,"tag":157,"props":394,"children":395},{"style":384},[396],{"type":56,"value":397}," '",{"type":50,"tag":157,"props":399,"children":400},{"style":180},[401],{"type":56,"value":402},".provider_schemas | to_entries | map({key: (.key | split(\"\u002F\")[-1]), value: (.value.list_resource_schemas \u002F\u002F {} | keys)})",{"type":50,"tag":157,"props":404,"children":405},{"style":384},[406],{"type":56,"value":407},"'\n",{"type":50,"tag":59,"props":409,"children":410},{},[411],{"type":56,"value":412},"Terraform Search requires an initialized working directory. Ensure you have a configuration with the required provider before running queries:",{"type":50,"tag":145,"props":414,"children":418},{"className":415,"code":416,"language":417,"meta":150,"style":150},"language-hcl shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# terraform.tf\nterraform {\n  required_providers {\n    aws = {\n      source  = \"hashicorp\u002Faws\"\n      version = \"~> 6.0\"\n    }\n  }\n}\n","hcl",[419],{"type":50,"tag":153,"props":420,"children":421},{"__ignoreMap":150},[422,430,438,446,455,464,473,482,491],{"type":50,"tag":157,"props":423,"children":424},{"class":159,"line":160},[425],{"type":50,"tag":157,"props":426,"children":427},{},[428],{"type":56,"value":429},"# terraform.tf\n",{"type":50,"tag":157,"props":431,"children":432},{"class":159,"line":170},[433],{"type":50,"tag":157,"props":434,"children":435},{},[436],{"type":56,"value":437},"terraform {\n",{"type":50,"tag":157,"props":439,"children":440},{"class":159,"line":191},[441],{"type":50,"tag":157,"props":442,"children":443},{},[444],{"type":56,"value":445},"  required_providers {\n",{"type":50,"tag":157,"props":447,"children":449},{"class":159,"line":448},4,[450],{"type":50,"tag":157,"props":451,"children":452},{},[453],{"type":56,"value":454},"    aws = {\n",{"type":50,"tag":157,"props":456,"children":458},{"class":159,"line":457},5,[459],{"type":50,"tag":157,"props":460,"children":461},{},[462],{"type":56,"value":463},"      source  = \"hashicorp\u002Faws\"\n",{"type":50,"tag":157,"props":465,"children":467},{"class":159,"line":466},6,[468],{"type":50,"tag":157,"props":469,"children":470},{},[471],{"type":56,"value":472},"      version = \"~> 6.0\"\n",{"type":50,"tag":157,"props":474,"children":476},{"class":159,"line":475},7,[477],{"type":50,"tag":157,"props":478,"children":479},{},[480],{"type":56,"value":481},"    }\n",{"type":50,"tag":157,"props":483,"children":485},{"class":159,"line":484},8,[486],{"type":50,"tag":157,"props":487,"children":488},{},[489],{"type":56,"value":490},"  }\n",{"type":50,"tag":157,"props":492,"children":494},{"class":159,"line":493},9,[495],{"type":50,"tag":157,"props":496,"children":497},{},[498],{"type":56,"value":499},"}\n",{"type":50,"tag":59,"props":501,"children":502},{},[503,505,511],{"type":56,"value":504},"Run ",{"type":50,"tag":153,"props":506,"children":508},{"className":507},[],[509],{"type":56,"value":510},"terraform init",{"type":56,"value":512}," to download the provider, then proceed with queries.",{"type":50,"tag":101,"props":514,"children":516},{"id":515},"terraform-search-workflow-supported-resources-only",[517],{"type":56,"value":518},"Terraform Search Workflow (Supported Resources Only)",{"type":50,"tag":209,"props":520,"children":521},{},[522,543,555,566,587],{"type":50,"tag":78,"props":523,"children":524},{},[525,527,533,535,541],{"type":56,"value":526},"Create ",{"type":50,"tag":153,"props":528,"children":530},{"className":529},[],[531],{"type":56,"value":532},".tfquery.hcl",{"type":56,"value":534}," files with ",{"type":50,"tag":153,"props":536,"children":538},{"className":537},[],[539],{"type":56,"value":540},"list",{"type":56,"value":542}," blocks defining search queries",{"type":50,"tag":78,"props":544,"children":545},{},[546,547,553],{"type":56,"value":504},{"type":50,"tag":153,"props":548,"children":550},{"className":549},[],[551],{"type":56,"value":552},"terraform query",{"type":56,"value":554}," to discover matching resources",{"type":50,"tag":78,"props":556,"children":557},{},[558,560],{"type":56,"value":559},"Generate configuration with ",{"type":50,"tag":153,"props":561,"children":563},{"className":562},[],[564],{"type":56,"value":565},"-generate-config-out=\u003Cfile>",{"type":50,"tag":78,"props":567,"children":568},{},[569,571,577,579,585],{"type":56,"value":570},"Review and refine generated ",{"type":50,"tag":153,"props":572,"children":574},{"className":573},[],[575],{"type":56,"value":576},"resource",{"type":56,"value":578}," and ",{"type":50,"tag":153,"props":580,"children":582},{"className":581},[],[583],{"type":56,"value":584},"import",{"type":56,"value":586}," blocks",{"type":50,"tag":78,"props":588,"children":589},{},[590,591,597,598,604],{"type":56,"value":504},{"type":50,"tag":153,"props":592,"children":594},{"className":593},[],[595],{"type":56,"value":596},"terraform plan",{"type":56,"value":578},{"type":50,"tag":153,"props":599,"children":601},{"className":600},[],[602],{"type":56,"value":603},"terraform apply",{"type":56,"value":605}," to import",{"type":50,"tag":101,"props":607,"children":609},{"id":608},"query-file-structure",[610],{"type":56,"value":611},"Query File Structure",{"type":50,"tag":59,"props":613,"children":614},{},[615,617,622],{"type":56,"value":616},"Query files use ",{"type":50,"tag":153,"props":618,"children":620},{"className":619},[],[621],{"type":56,"value":532},{"type":56,"value":623}," extension and support:",{"type":50,"tag":74,"props":625,"children":626},{},[627,638,648],{"type":50,"tag":78,"props":628,"children":629},{},[630,636],{"type":50,"tag":153,"props":631,"children":633},{"className":632},[],[634],{"type":56,"value":635},"provider",{"type":56,"value":637}," blocks for authentication",{"type":50,"tag":78,"props":639,"children":640},{},[641,646],{"type":50,"tag":153,"props":642,"children":644},{"className":643},[],[645],{"type":56,"value":540},{"type":56,"value":647}," blocks for resource discovery",{"type":50,"tag":78,"props":649,"children":650},{},[651,657,658,664],{"type":50,"tag":153,"props":652,"children":654},{"className":653},[],[655],{"type":56,"value":656},"variable",{"type":56,"value":578},{"type":50,"tag":153,"props":659,"children":661},{"className":660},[],[662],{"type":56,"value":663},"locals",{"type":56,"value":665}," blocks for parameterization",{"type":50,"tag":145,"props":667,"children":669},{"className":415,"code":668,"language":417,"meta":150,"style":150},"# discovery.tfquery.hcl\nprovider \"aws\" {\n  region = \"us-west-2\"\n}\n\nlist \"aws_instance\" \"all\" {\n  provider = aws\n}\n",[670],{"type":50,"tag":153,"props":671,"children":672},{"__ignoreMap":150},[673,681,689,697,704,713,721,729],{"type":50,"tag":157,"props":674,"children":675},{"class":159,"line":160},[676],{"type":50,"tag":157,"props":677,"children":678},{},[679],{"type":56,"value":680},"# discovery.tfquery.hcl\n",{"type":50,"tag":157,"props":682,"children":683},{"class":159,"line":170},[684],{"type":50,"tag":157,"props":685,"children":686},{},[687],{"type":56,"value":688},"provider \"aws\" {\n",{"type":50,"tag":157,"props":690,"children":691},{"class":159,"line":191},[692],{"type":50,"tag":157,"props":693,"children":694},{},[695],{"type":56,"value":696},"  region = \"us-west-2\"\n",{"type":50,"tag":157,"props":698,"children":699},{"class":159,"line":448},[700],{"type":50,"tag":157,"props":701,"children":702},{},[703],{"type":56,"value":499},{"type":50,"tag":157,"props":705,"children":706},{"class":159,"line":457},[707],{"type":50,"tag":157,"props":708,"children":710},{"emptyLinePlaceholder":709},true,[711],{"type":56,"value":712},"\n",{"type":50,"tag":157,"props":714,"children":715},{"class":159,"line":466},[716],{"type":50,"tag":157,"props":717,"children":718},{},[719],{"type":56,"value":720},"list \"aws_instance\" \"all\" {\n",{"type":50,"tag":157,"props":722,"children":723},{"class":159,"line":475},[724],{"type":50,"tag":157,"props":725,"children":726},{},[727],{"type":56,"value":728},"  provider = aws\n",{"type":50,"tag":157,"props":730,"children":731},{"class":159,"line":484},[732],{"type":50,"tag":157,"props":733,"children":734},{},[735],{"type":56,"value":499},{"type":50,"tag":101,"props":737,"children":739},{"id":738},"list-block-syntax",[740],{"type":56,"value":741},"List Block Syntax",{"type":50,"tag":145,"props":743,"children":745},{"className":415,"code":744,"language":417,"meta":150,"style":150},"list \"\u003Clist_type>\" \"\u003Csymbolic_name>\" {\n  provider = \u003Cprovider_reference>  # Required\n\n  # Optional: filter configuration (provider-specific)\n  # The `config` block schema is provider-specific. Discover available options using `terraform providers schema -json | jq '.provider_schemas.\"registry.terraform.io\u002Fhashicorp\u002F\u003Cprovider>\".list_resource_schemas.\"\u003Cresource_type>\"'`\n\n  config {\n    filter {\n      name   = \"\u003Cfilter_name>\"\n      values = [\"\u003Cvalue1>\", \"\u003Cvalue2>\"]\n    }\n    region = \"\u003Cregion>\"  # AWS-specific\n  }\n  # Optional: limit results\n  limit = 100\n}\n",[746],{"type":50,"tag":153,"props":747,"children":748},{"__ignoreMap":150},[749,757,765,772,780,788,795,803,811,819,828,836,845,853,862,871],{"type":50,"tag":157,"props":750,"children":751},{"class":159,"line":160},[752],{"type":50,"tag":157,"props":753,"children":754},{},[755],{"type":56,"value":756},"list \"\u003Clist_type>\" \"\u003Csymbolic_name>\" {\n",{"type":50,"tag":157,"props":758,"children":759},{"class":159,"line":170},[760],{"type":50,"tag":157,"props":761,"children":762},{},[763],{"type":56,"value":764},"  provider = \u003Cprovider_reference>  # Required\n",{"type":50,"tag":157,"props":766,"children":767},{"class":159,"line":191},[768],{"type":50,"tag":157,"props":769,"children":770},{"emptyLinePlaceholder":709},[771],{"type":56,"value":712},{"type":50,"tag":157,"props":773,"children":774},{"class":159,"line":448},[775],{"type":50,"tag":157,"props":776,"children":777},{},[778],{"type":56,"value":779},"  # Optional: filter configuration (provider-specific)\n",{"type":50,"tag":157,"props":781,"children":782},{"class":159,"line":457},[783],{"type":50,"tag":157,"props":784,"children":785},{},[786],{"type":56,"value":787},"  # The `config` block schema is provider-specific. Discover available options using `terraform providers schema -json | jq '.provider_schemas.\"registry.terraform.io\u002Fhashicorp\u002F\u003Cprovider>\".list_resource_schemas.\"\u003Cresource_type>\"'`\n",{"type":50,"tag":157,"props":789,"children":790},{"class":159,"line":466},[791],{"type":50,"tag":157,"props":792,"children":793},{"emptyLinePlaceholder":709},[794],{"type":56,"value":712},{"type":50,"tag":157,"props":796,"children":797},{"class":159,"line":475},[798],{"type":50,"tag":157,"props":799,"children":800},{},[801],{"type":56,"value":802},"  config {\n",{"type":50,"tag":157,"props":804,"children":805},{"class":159,"line":484},[806],{"type":50,"tag":157,"props":807,"children":808},{},[809],{"type":56,"value":810},"    filter {\n",{"type":50,"tag":157,"props":812,"children":813},{"class":159,"line":493},[814],{"type":50,"tag":157,"props":815,"children":816},{},[817],{"type":56,"value":818},"      name   = \"\u003Cfilter_name>\"\n",{"type":50,"tag":157,"props":820,"children":822},{"class":159,"line":821},10,[823],{"type":50,"tag":157,"props":824,"children":825},{},[826],{"type":56,"value":827},"      values = [\"\u003Cvalue1>\", \"\u003Cvalue2>\"]\n",{"type":50,"tag":157,"props":829,"children":831},{"class":159,"line":830},11,[832],{"type":50,"tag":157,"props":833,"children":834},{},[835],{"type":56,"value":481},{"type":50,"tag":157,"props":837,"children":839},{"class":159,"line":838},12,[840],{"type":50,"tag":157,"props":841,"children":842},{},[843],{"type":56,"value":844},"    region = \"\u003Cregion>\"  # AWS-specific\n",{"type":50,"tag":157,"props":846,"children":848},{"class":159,"line":847},13,[849],{"type":50,"tag":157,"props":850,"children":851},{},[852],{"type":56,"value":490},{"type":50,"tag":157,"props":854,"children":856},{"class":159,"line":855},14,[857],{"type":50,"tag":157,"props":858,"children":859},{},[860],{"type":56,"value":861},"  # Optional: limit results\n",{"type":50,"tag":157,"props":863,"children":865},{"class":159,"line":864},15,[866],{"type":50,"tag":157,"props":867,"children":868},{},[869],{"type":56,"value":870},"  limit = 100\n",{"type":50,"tag":157,"props":872,"children":874},{"class":159,"line":873},16,[875],{"type":50,"tag":157,"props":876,"children":877},{},[878],{"type":56,"value":499},{"type":50,"tag":101,"props":880,"children":882},{"id":881},"supported-list-resources",[883],{"type":56,"value":884},"Supported List Resources",{"type":50,"tag":59,"props":886,"children":887},{},[888,890],{"type":56,"value":889},"Provider support for list resources varies by version. ",{"type":50,"tag":68,"props":891,"children":892},{},[893],{"type":56,"value":894},"Always check what's available for your specific provider version using the discovery script.",{"type":50,"tag":101,"props":896,"children":898},{"id":897},"query-examples",[899],{"type":56,"value":900},"Query Examples",{"type":50,"tag":296,"props":902,"children":904},{"id":903},"basic-discovery",[905],{"type":56,"value":906},"Basic Discovery",{"type":50,"tag":145,"props":908,"children":910},{"className":415,"code":909,"language":417,"meta":150,"style":150},"# Find all EC2 instances in configured region\nlist \"aws_instance\" \"all\" {\n  provider = aws\n}\n",[911],{"type":50,"tag":153,"props":912,"children":913},{"__ignoreMap":150},[914,922,929,936],{"type":50,"tag":157,"props":915,"children":916},{"class":159,"line":160},[917],{"type":50,"tag":157,"props":918,"children":919},{},[920],{"type":56,"value":921},"# Find all EC2 instances in configured region\n",{"type":50,"tag":157,"props":923,"children":924},{"class":159,"line":170},[925],{"type":50,"tag":157,"props":926,"children":927},{},[928],{"type":56,"value":720},{"type":50,"tag":157,"props":930,"children":931},{"class":159,"line":191},[932],{"type":50,"tag":157,"props":933,"children":934},{},[935],{"type":56,"value":728},{"type":50,"tag":157,"props":937,"children":938},{"class":159,"line":448},[939],{"type":50,"tag":157,"props":940,"children":941},{},[942],{"type":56,"value":499},{"type":50,"tag":296,"props":944,"children":946},{"id":945},"filtered-discovery",[947],{"type":56,"value":948},"Filtered Discovery",{"type":50,"tag":145,"props":950,"children":952},{"className":415,"code":951,"language":417,"meta":150,"style":150},"# Find instances by tag\nlist \"aws_instance\" \"production\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"tag:Environment\"\n      values = [\"production\"]\n    }\n  }\n}\n\n# Find instances by type\nlist \"aws_instance\" \"large\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"instance-type\"\n      values = [\"t3.large\", \"t3.xlarge\"]\n    }\n  }\n}\n",[953],{"type":50,"tag":153,"props":954,"children":955},{"__ignoreMap":150},[956,964,972,979,986,993,1000,1008,1016,1023,1030,1037,1044,1052,1060,1067,1074,1082,1090,1099,1108,1116,1124],{"type":50,"tag":157,"props":957,"children":958},{"class":159,"line":160},[959],{"type":50,"tag":157,"props":960,"children":961},{},[962],{"type":56,"value":963},"# Find instances by tag\n",{"type":50,"tag":157,"props":965,"children":966},{"class":159,"line":170},[967],{"type":50,"tag":157,"props":968,"children":969},{},[970],{"type":56,"value":971},"list \"aws_instance\" \"production\" {\n",{"type":50,"tag":157,"props":973,"children":974},{"class":159,"line":191},[975],{"type":50,"tag":157,"props":976,"children":977},{},[978],{"type":56,"value":728},{"type":50,"tag":157,"props":980,"children":981},{"class":159,"line":448},[982],{"type":50,"tag":157,"props":983,"children":984},{"emptyLinePlaceholder":709},[985],{"type":56,"value":712},{"type":50,"tag":157,"props":987,"children":988},{"class":159,"line":457},[989],{"type":50,"tag":157,"props":990,"children":991},{},[992],{"type":56,"value":802},{"type":50,"tag":157,"props":994,"children":995},{"class":159,"line":466},[996],{"type":50,"tag":157,"props":997,"children":998},{},[999],{"type":56,"value":810},{"type":50,"tag":157,"props":1001,"children":1002},{"class":159,"line":475},[1003],{"type":50,"tag":157,"props":1004,"children":1005},{},[1006],{"type":56,"value":1007},"      name   = \"tag:Environment\"\n",{"type":50,"tag":157,"props":1009,"children":1010},{"class":159,"line":484},[1011],{"type":50,"tag":157,"props":1012,"children":1013},{},[1014],{"type":56,"value":1015},"      values = [\"production\"]\n",{"type":50,"tag":157,"props":1017,"children":1018},{"class":159,"line":493},[1019],{"type":50,"tag":157,"props":1020,"children":1021},{},[1022],{"type":56,"value":481},{"type":50,"tag":157,"props":1024,"children":1025},{"class":159,"line":821},[1026],{"type":50,"tag":157,"props":1027,"children":1028},{},[1029],{"type":56,"value":490},{"type":50,"tag":157,"props":1031,"children":1032},{"class":159,"line":830},[1033],{"type":50,"tag":157,"props":1034,"children":1035},{},[1036],{"type":56,"value":499},{"type":50,"tag":157,"props":1038,"children":1039},{"class":159,"line":838},[1040],{"type":50,"tag":157,"props":1041,"children":1042},{"emptyLinePlaceholder":709},[1043],{"type":56,"value":712},{"type":50,"tag":157,"props":1045,"children":1046},{"class":159,"line":847},[1047],{"type":50,"tag":157,"props":1048,"children":1049},{},[1050],{"type":56,"value":1051},"# Find instances by type\n",{"type":50,"tag":157,"props":1053,"children":1054},{"class":159,"line":855},[1055],{"type":50,"tag":157,"props":1056,"children":1057},{},[1058],{"type":56,"value":1059},"list \"aws_instance\" \"large\" {\n",{"type":50,"tag":157,"props":1061,"children":1062},{"class":159,"line":864},[1063],{"type":50,"tag":157,"props":1064,"children":1065},{},[1066],{"type":56,"value":728},{"type":50,"tag":157,"props":1068,"children":1069},{"class":159,"line":873},[1070],{"type":50,"tag":157,"props":1071,"children":1072},{"emptyLinePlaceholder":709},[1073],{"type":56,"value":712},{"type":50,"tag":157,"props":1075,"children":1077},{"class":159,"line":1076},17,[1078],{"type":50,"tag":157,"props":1079,"children":1080},{},[1081],{"type":56,"value":802},{"type":50,"tag":157,"props":1083,"children":1085},{"class":159,"line":1084},18,[1086],{"type":50,"tag":157,"props":1087,"children":1088},{},[1089],{"type":56,"value":810},{"type":50,"tag":157,"props":1091,"children":1093},{"class":159,"line":1092},19,[1094],{"type":50,"tag":157,"props":1095,"children":1096},{},[1097],{"type":56,"value":1098},"      name   = \"instance-type\"\n",{"type":50,"tag":157,"props":1100,"children":1102},{"class":159,"line":1101},20,[1103],{"type":50,"tag":157,"props":1104,"children":1105},{},[1106],{"type":56,"value":1107},"      values = [\"t3.large\", \"t3.xlarge\"]\n",{"type":50,"tag":157,"props":1109,"children":1111},{"class":159,"line":1110},21,[1112],{"type":50,"tag":157,"props":1113,"children":1114},{},[1115],{"type":56,"value":481},{"type":50,"tag":157,"props":1117,"children":1119},{"class":159,"line":1118},22,[1120],{"type":50,"tag":157,"props":1121,"children":1122},{},[1123],{"type":56,"value":490},{"type":50,"tag":157,"props":1125,"children":1127},{"class":159,"line":1126},23,[1128],{"type":50,"tag":157,"props":1129,"children":1130},{},[1131],{"type":56,"value":499},{"type":50,"tag":296,"props":1133,"children":1135},{"id":1134},"multi-region-discovery",[1136],{"type":56,"value":1137},"Multi-Region Discovery",{"type":50,"tag":145,"props":1139,"children":1141},{"className":415,"code":1140,"language":417,"meta":150,"style":150},"provider \"aws\" {\n  region = \"us-west-2\"\n}\n\nlocals {\n  regions = [\"us-west-2\", \"us-east-1\", \"eu-west-1\"]\n}\n\nlist \"aws_instance\" \"all_regions\" {\n  for_each = toset(local.regions)\n  provider = aws\n\n  config {\n    region = each.value\n  }\n}\n",[1142],{"type":50,"tag":153,"props":1143,"children":1144},{"__ignoreMap":150},[1145,1152,1159,1166,1173,1181,1189,1196,1203,1211,1219,1226,1233,1240,1248,1255],{"type":50,"tag":157,"props":1146,"children":1147},{"class":159,"line":160},[1148],{"type":50,"tag":157,"props":1149,"children":1150},{},[1151],{"type":56,"value":688},{"type":50,"tag":157,"props":1153,"children":1154},{"class":159,"line":170},[1155],{"type":50,"tag":157,"props":1156,"children":1157},{},[1158],{"type":56,"value":696},{"type":50,"tag":157,"props":1160,"children":1161},{"class":159,"line":191},[1162],{"type":50,"tag":157,"props":1163,"children":1164},{},[1165],{"type":56,"value":499},{"type":50,"tag":157,"props":1167,"children":1168},{"class":159,"line":448},[1169],{"type":50,"tag":157,"props":1170,"children":1171},{"emptyLinePlaceholder":709},[1172],{"type":56,"value":712},{"type":50,"tag":157,"props":1174,"children":1175},{"class":159,"line":457},[1176],{"type":50,"tag":157,"props":1177,"children":1178},{},[1179],{"type":56,"value":1180},"locals {\n",{"type":50,"tag":157,"props":1182,"children":1183},{"class":159,"line":466},[1184],{"type":50,"tag":157,"props":1185,"children":1186},{},[1187],{"type":56,"value":1188},"  regions = [\"us-west-2\", \"us-east-1\", \"eu-west-1\"]\n",{"type":50,"tag":157,"props":1190,"children":1191},{"class":159,"line":475},[1192],{"type":50,"tag":157,"props":1193,"children":1194},{},[1195],{"type":56,"value":499},{"type":50,"tag":157,"props":1197,"children":1198},{"class":159,"line":484},[1199],{"type":50,"tag":157,"props":1200,"children":1201},{"emptyLinePlaceholder":709},[1202],{"type":56,"value":712},{"type":50,"tag":157,"props":1204,"children":1205},{"class":159,"line":493},[1206],{"type":50,"tag":157,"props":1207,"children":1208},{},[1209],{"type":56,"value":1210},"list \"aws_instance\" \"all_regions\" {\n",{"type":50,"tag":157,"props":1212,"children":1213},{"class":159,"line":821},[1214],{"type":50,"tag":157,"props":1215,"children":1216},{},[1217],{"type":56,"value":1218},"  for_each = toset(local.regions)\n",{"type":50,"tag":157,"props":1220,"children":1221},{"class":159,"line":830},[1222],{"type":50,"tag":157,"props":1223,"children":1224},{},[1225],{"type":56,"value":728},{"type":50,"tag":157,"props":1227,"children":1228},{"class":159,"line":838},[1229],{"type":50,"tag":157,"props":1230,"children":1231},{"emptyLinePlaceholder":709},[1232],{"type":56,"value":712},{"type":50,"tag":157,"props":1234,"children":1235},{"class":159,"line":847},[1236],{"type":50,"tag":157,"props":1237,"children":1238},{},[1239],{"type":56,"value":802},{"type":50,"tag":157,"props":1241,"children":1242},{"class":159,"line":855},[1243],{"type":50,"tag":157,"props":1244,"children":1245},{},[1246],{"type":56,"value":1247},"    region = each.value\n",{"type":50,"tag":157,"props":1249,"children":1250},{"class":159,"line":864},[1251],{"type":50,"tag":157,"props":1252,"children":1253},{},[1254],{"type":56,"value":490},{"type":50,"tag":157,"props":1256,"children":1257},{"class":159,"line":873},[1258],{"type":50,"tag":157,"props":1259,"children":1260},{},[1261],{"type":56,"value":499},{"type":50,"tag":296,"props":1263,"children":1265},{"id":1264},"parameterized-queries",[1266],{"type":56,"value":1267},"Parameterized Queries",{"type":50,"tag":145,"props":1269,"children":1271},{"className":415,"code":1270,"language":417,"meta":150,"style":150},"variable \"target_environment\" {\n  type    = string\n  default = \"staging\"\n}\n\nlist \"aws_instance\" \"by_env\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"tag:Environment\"\n      values = [var.target_environment]\n    }\n  }\n}\n",[1272],{"type":50,"tag":153,"props":1273,"children":1274},{"__ignoreMap":150},[1275,1283,1291,1299,1306,1313,1321,1328,1335,1342,1349,1356,1364,1371,1378],{"type":50,"tag":157,"props":1276,"children":1277},{"class":159,"line":160},[1278],{"type":50,"tag":157,"props":1279,"children":1280},{},[1281],{"type":56,"value":1282},"variable \"target_environment\" {\n",{"type":50,"tag":157,"props":1284,"children":1285},{"class":159,"line":170},[1286],{"type":50,"tag":157,"props":1287,"children":1288},{},[1289],{"type":56,"value":1290},"  type    = string\n",{"type":50,"tag":157,"props":1292,"children":1293},{"class":159,"line":191},[1294],{"type":50,"tag":157,"props":1295,"children":1296},{},[1297],{"type":56,"value":1298},"  default = \"staging\"\n",{"type":50,"tag":157,"props":1300,"children":1301},{"class":159,"line":448},[1302],{"type":50,"tag":157,"props":1303,"children":1304},{},[1305],{"type":56,"value":499},{"type":50,"tag":157,"props":1307,"children":1308},{"class":159,"line":457},[1309],{"type":50,"tag":157,"props":1310,"children":1311},{"emptyLinePlaceholder":709},[1312],{"type":56,"value":712},{"type":50,"tag":157,"props":1314,"children":1315},{"class":159,"line":466},[1316],{"type":50,"tag":157,"props":1317,"children":1318},{},[1319],{"type":56,"value":1320},"list \"aws_instance\" \"by_env\" {\n",{"type":50,"tag":157,"props":1322,"children":1323},{"class":159,"line":475},[1324],{"type":50,"tag":157,"props":1325,"children":1326},{},[1327],{"type":56,"value":728},{"type":50,"tag":157,"props":1329,"children":1330},{"class":159,"line":484},[1331],{"type":50,"tag":157,"props":1332,"children":1333},{"emptyLinePlaceholder":709},[1334],{"type":56,"value":712},{"type":50,"tag":157,"props":1336,"children":1337},{"class":159,"line":493},[1338],{"type":50,"tag":157,"props":1339,"children":1340},{},[1341],{"type":56,"value":802},{"type":50,"tag":157,"props":1343,"children":1344},{"class":159,"line":821},[1345],{"type":50,"tag":157,"props":1346,"children":1347},{},[1348],{"type":56,"value":810},{"type":50,"tag":157,"props":1350,"children":1351},{"class":159,"line":830},[1352],{"type":50,"tag":157,"props":1353,"children":1354},{},[1355],{"type":56,"value":1007},{"type":50,"tag":157,"props":1357,"children":1358},{"class":159,"line":838},[1359],{"type":50,"tag":157,"props":1360,"children":1361},{},[1362],{"type":56,"value":1363},"      values = [var.target_environment]\n",{"type":50,"tag":157,"props":1365,"children":1366},{"class":159,"line":847},[1367],{"type":50,"tag":157,"props":1368,"children":1369},{},[1370],{"type":56,"value":481},{"type":50,"tag":157,"props":1372,"children":1373},{"class":159,"line":855},[1374],{"type":50,"tag":157,"props":1375,"children":1376},{},[1377],{"type":56,"value":490},{"type":50,"tag":157,"props":1379,"children":1380},{"class":159,"line":864},[1381],{"type":50,"tag":157,"props":1382,"children":1383},{},[1384],{"type":56,"value":499},{"type":50,"tag":101,"props":1386,"children":1388},{"id":1387},"running-queries",[1389],{"type":56,"value":1390},"Running Queries",{"type":50,"tag":145,"props":1392,"children":1394},{"className":147,"code":1393,"language":149,"meta":150,"style":150},"# Execute queries and display results\nterraform query\n\n# Generate configuration file\nterraform query -generate-config-out=imported.tf\n\n# Pass variables\nterraform query -var='target_environment=production'\n",[1395],{"type":50,"tag":153,"props":1396,"children":1397},{"__ignoreMap":150},[1398,1406,1418,1425,1433,1450,1457,1465],{"type":50,"tag":157,"props":1399,"children":1400},{"class":159,"line":160},[1401],{"type":50,"tag":157,"props":1402,"children":1403},{"style":164},[1404],{"type":56,"value":1405},"# Execute queries and display results\n",{"type":50,"tag":157,"props":1407,"children":1408},{"class":159,"line":170},[1409,1413],{"type":50,"tag":157,"props":1410,"children":1411},{"style":174},[1412],{"type":56,"value":21},{"type":50,"tag":157,"props":1414,"children":1415},{"style":180},[1416],{"type":56,"value":1417}," query\n",{"type":50,"tag":157,"props":1419,"children":1420},{"class":159,"line":191},[1421],{"type":50,"tag":157,"props":1422,"children":1423},{"emptyLinePlaceholder":709},[1424],{"type":56,"value":712},{"type":50,"tag":157,"props":1426,"children":1427},{"class":159,"line":448},[1428],{"type":50,"tag":157,"props":1429,"children":1430},{"style":164},[1431],{"type":56,"value":1432},"# Generate configuration file\n",{"type":50,"tag":157,"props":1434,"children":1435},{"class":159,"line":457},[1436,1440,1445],{"type":50,"tag":157,"props":1437,"children":1438},{"style":174},[1439],{"type":56,"value":21},{"type":50,"tag":157,"props":1441,"children":1442},{"style":180},[1443],{"type":56,"value":1444}," query",{"type":50,"tag":157,"props":1446,"children":1447},{"style":180},[1448],{"type":56,"value":1449}," -generate-config-out=imported.tf\n",{"type":50,"tag":157,"props":1451,"children":1452},{"class":159,"line":466},[1453],{"type":50,"tag":157,"props":1454,"children":1455},{"emptyLinePlaceholder":709},[1456],{"type":56,"value":712},{"type":50,"tag":157,"props":1458,"children":1459},{"class":159,"line":475},[1460],{"type":50,"tag":157,"props":1461,"children":1462},{"style":164},[1463],{"type":56,"value":1464},"# Pass variables\n",{"type":50,"tag":157,"props":1466,"children":1467},{"class":159,"line":484},[1468,1472,1476,1481,1486,1491],{"type":50,"tag":157,"props":1469,"children":1470},{"style":174},[1471],{"type":56,"value":21},{"type":50,"tag":157,"props":1473,"children":1474},{"style":180},[1475],{"type":56,"value":1444},{"type":50,"tag":157,"props":1477,"children":1478},{"style":180},[1479],{"type":56,"value":1480}," -var=",{"type":50,"tag":157,"props":1482,"children":1483},{"style":384},[1484],{"type":56,"value":1485},"'",{"type":50,"tag":157,"props":1487,"children":1488},{"style":180},[1489],{"type":56,"value":1490},"target_environment=production",{"type":50,"tag":157,"props":1492,"children":1493},{"style":384},[1494],{"type":56,"value":407},{"type":50,"tag":101,"props":1496,"children":1498},{"id":1497},"query-output-format",[1499],{"type":56,"value":1500},"Query Output Format",{"type":50,"tag":145,"props":1502,"children":1506},{"className":1503,"code":1505,"language":56},[1504],"language-text","list.aws_instance.all   account_id=123456789012,id=i-0abc123,region=us-west-2   web-server\n",[1507],{"type":50,"tag":153,"props":1508,"children":1509},{"__ignoreMap":150},[1510],{"type":56,"value":1505},{"type":50,"tag":59,"props":1512,"children":1513},{},[1514,1516],{"type":56,"value":1515},"Columns: ",{"type":50,"tag":153,"props":1517,"children":1519},{"className":1518},[],[1520],{"type":56,"value":1521},"\u003Cquery_address>   \u003Cidentity_attributes>   \u003Cname_tag>",{"type":50,"tag":101,"props":1523,"children":1525},{"id":1524},"generated-configuration",[1526],{"type":56,"value":1527},"Generated Configuration",{"type":50,"tag":59,"props":1529,"children":1530},{},[1531,1533,1539],{"type":56,"value":1532},"The ",{"type":50,"tag":153,"props":1534,"children":1536},{"className":1535},[],[1537],{"type":56,"value":1538},"-generate-config-out",{"type":56,"value":1540}," flag creates:",{"type":50,"tag":145,"props":1542,"children":1544},{"className":415,"code":1543,"language":417,"meta":150,"style":150},"# __generated__ by Terraform\nresource \"aws_instance\" \"all_0\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t2.micro\"\n  # ... all attributes\n}\n\nimport {\n  to       = aws_instance.all_0\n  provider = aws\n  identity = {\n    account_id = \"123456789012\"\n    id         = \"i-0abc123\"\n    region     = \"us-west-2\"\n  }\n}\n",[1545],{"type":50,"tag":153,"props":1546,"children":1547},{"__ignoreMap":150},[1548,1556,1564,1572,1580,1588,1595,1602,1610,1618,1625,1633,1641,1649,1657,1664],{"type":50,"tag":157,"props":1549,"children":1550},{"class":159,"line":160},[1551],{"type":50,"tag":157,"props":1552,"children":1553},{},[1554],{"type":56,"value":1555},"# __generated__ by Terraform\n",{"type":50,"tag":157,"props":1557,"children":1558},{"class":159,"line":170},[1559],{"type":50,"tag":157,"props":1560,"children":1561},{},[1562],{"type":56,"value":1563},"resource \"aws_instance\" \"all_0\" {\n",{"type":50,"tag":157,"props":1565,"children":1566},{"class":159,"line":191},[1567],{"type":50,"tag":157,"props":1568,"children":1569},{},[1570],{"type":56,"value":1571},"  ami           = \"ami-0c55b159cbfafe1f0\"\n",{"type":50,"tag":157,"props":1573,"children":1574},{"class":159,"line":448},[1575],{"type":50,"tag":157,"props":1576,"children":1577},{},[1578],{"type":56,"value":1579},"  instance_type = \"t2.micro\"\n",{"type":50,"tag":157,"props":1581,"children":1582},{"class":159,"line":457},[1583],{"type":50,"tag":157,"props":1584,"children":1585},{},[1586],{"type":56,"value":1587},"  # ... all attributes\n",{"type":50,"tag":157,"props":1589,"children":1590},{"class":159,"line":466},[1591],{"type":50,"tag":157,"props":1592,"children":1593},{},[1594],{"type":56,"value":499},{"type":50,"tag":157,"props":1596,"children":1597},{"class":159,"line":475},[1598],{"type":50,"tag":157,"props":1599,"children":1600},{"emptyLinePlaceholder":709},[1601],{"type":56,"value":712},{"type":50,"tag":157,"props":1603,"children":1604},{"class":159,"line":484},[1605],{"type":50,"tag":157,"props":1606,"children":1607},{},[1608],{"type":56,"value":1609},"import {\n",{"type":50,"tag":157,"props":1611,"children":1612},{"class":159,"line":493},[1613],{"type":50,"tag":157,"props":1614,"children":1615},{},[1616],{"type":56,"value":1617},"  to       = aws_instance.all_0\n",{"type":50,"tag":157,"props":1619,"children":1620},{"class":159,"line":821},[1621],{"type":50,"tag":157,"props":1622,"children":1623},{},[1624],{"type":56,"value":728},{"type":50,"tag":157,"props":1626,"children":1627},{"class":159,"line":830},[1628],{"type":50,"tag":157,"props":1629,"children":1630},{},[1631],{"type":56,"value":1632},"  identity = {\n",{"type":50,"tag":157,"props":1634,"children":1635},{"class":159,"line":838},[1636],{"type":50,"tag":157,"props":1637,"children":1638},{},[1639],{"type":56,"value":1640},"    account_id = \"123456789012\"\n",{"type":50,"tag":157,"props":1642,"children":1643},{"class":159,"line":847},[1644],{"type":50,"tag":157,"props":1645,"children":1646},{},[1647],{"type":56,"value":1648},"    id         = \"i-0abc123\"\n",{"type":50,"tag":157,"props":1650,"children":1651},{"class":159,"line":855},[1652],{"type":50,"tag":157,"props":1653,"children":1654},{},[1655],{"type":56,"value":1656},"    region     = \"us-west-2\"\n",{"type":50,"tag":157,"props":1658,"children":1659},{"class":159,"line":864},[1660],{"type":50,"tag":157,"props":1661,"children":1662},{},[1663],{"type":56,"value":490},{"type":50,"tag":157,"props":1665,"children":1666},{"class":159,"line":873},[1667],{"type":50,"tag":157,"props":1668,"children":1669},{},[1670],{"type":56,"value":499},{"type":50,"tag":101,"props":1672,"children":1674},{"id":1673},"post-generation-cleanup",[1675],{"type":56,"value":1676},"Post-Generation Cleanup",{"type":50,"tag":59,"props":1678,"children":1679},{},[1680],{"type":56,"value":1681},"Generated configuration includes all attributes. Clean up by:",{"type":50,"tag":209,"props":1683,"children":1684},{},[1685,1690,1695,1700],{"type":50,"tag":78,"props":1686,"children":1687},{},[1688],{"type":56,"value":1689},"Remove computed\u002Fread-only attributes",{"type":50,"tag":78,"props":1691,"children":1692},{},[1693],{"type":56,"value":1694},"Replace hardcoded values with variables",{"type":50,"tag":78,"props":1696,"children":1697},{},[1698],{"type":56,"value":1699},"Add proper resource naming",{"type":50,"tag":78,"props":1701,"children":1702},{},[1703],{"type":56,"value":1704},"Organize into appropriate files",{"type":50,"tag":145,"props":1706,"children":1708},{"className":415,"code":1707,"language":417,"meta":150,"style":150},"# Before: generated\nresource \"aws_instance\" \"all_0\" {\n  ami                    = \"ami-0c55b159cbfafe1f0\"\n  instance_type          = \"t2.micro\"\n  arn                    = \"arn:aws:ec2:...\"  # Remove - computed\n  id                     = \"i-0abc123\"        # Remove - computed\n  # ... many more attributes\n}\n\n# After: cleaned\nresource \"aws_instance\" \"web_server\" {\n  ami           = var.ami_id\n  instance_type = var.instance_type\n  subnet_id     = var.subnet_id\n\n  tags = {\n    Name        = \"web-server\"\n    Environment = var.environment\n  }\n}\n",[1709],{"type":50,"tag":153,"props":1710,"children":1711},{"__ignoreMap":150},[1712,1720,1727,1735,1743,1751,1759,1767,1774,1781,1789,1797,1805,1813,1821,1828,1836,1844,1852,1859],{"type":50,"tag":157,"props":1713,"children":1714},{"class":159,"line":160},[1715],{"type":50,"tag":157,"props":1716,"children":1717},{},[1718],{"type":56,"value":1719},"# Before: generated\n",{"type":50,"tag":157,"props":1721,"children":1722},{"class":159,"line":170},[1723],{"type":50,"tag":157,"props":1724,"children":1725},{},[1726],{"type":56,"value":1563},{"type":50,"tag":157,"props":1728,"children":1729},{"class":159,"line":191},[1730],{"type":50,"tag":157,"props":1731,"children":1732},{},[1733],{"type":56,"value":1734},"  ami                    = \"ami-0c55b159cbfafe1f0\"\n",{"type":50,"tag":157,"props":1736,"children":1737},{"class":159,"line":448},[1738],{"type":50,"tag":157,"props":1739,"children":1740},{},[1741],{"type":56,"value":1742},"  instance_type          = \"t2.micro\"\n",{"type":50,"tag":157,"props":1744,"children":1745},{"class":159,"line":457},[1746],{"type":50,"tag":157,"props":1747,"children":1748},{},[1749],{"type":56,"value":1750},"  arn                    = \"arn:aws:ec2:...\"  # Remove - computed\n",{"type":50,"tag":157,"props":1752,"children":1753},{"class":159,"line":466},[1754],{"type":50,"tag":157,"props":1755,"children":1756},{},[1757],{"type":56,"value":1758},"  id                     = \"i-0abc123\"        # Remove - computed\n",{"type":50,"tag":157,"props":1760,"children":1761},{"class":159,"line":475},[1762],{"type":50,"tag":157,"props":1763,"children":1764},{},[1765],{"type":56,"value":1766},"  # ... many more attributes\n",{"type":50,"tag":157,"props":1768,"children":1769},{"class":159,"line":484},[1770],{"type":50,"tag":157,"props":1771,"children":1772},{},[1773],{"type":56,"value":499},{"type":50,"tag":157,"props":1775,"children":1776},{"class":159,"line":493},[1777],{"type":50,"tag":157,"props":1778,"children":1779},{"emptyLinePlaceholder":709},[1780],{"type":56,"value":712},{"type":50,"tag":157,"props":1782,"children":1783},{"class":159,"line":821},[1784],{"type":50,"tag":157,"props":1785,"children":1786},{},[1787],{"type":56,"value":1788},"# After: cleaned\n",{"type":50,"tag":157,"props":1790,"children":1791},{"class":159,"line":830},[1792],{"type":50,"tag":157,"props":1793,"children":1794},{},[1795],{"type":56,"value":1796},"resource \"aws_instance\" \"web_server\" {\n",{"type":50,"tag":157,"props":1798,"children":1799},{"class":159,"line":838},[1800],{"type":50,"tag":157,"props":1801,"children":1802},{},[1803],{"type":56,"value":1804},"  ami           = var.ami_id\n",{"type":50,"tag":157,"props":1806,"children":1807},{"class":159,"line":847},[1808],{"type":50,"tag":157,"props":1809,"children":1810},{},[1811],{"type":56,"value":1812},"  instance_type = var.instance_type\n",{"type":50,"tag":157,"props":1814,"children":1815},{"class":159,"line":855},[1816],{"type":50,"tag":157,"props":1817,"children":1818},{},[1819],{"type":56,"value":1820},"  subnet_id     = var.subnet_id\n",{"type":50,"tag":157,"props":1822,"children":1823},{"class":159,"line":864},[1824],{"type":50,"tag":157,"props":1825,"children":1826},{"emptyLinePlaceholder":709},[1827],{"type":56,"value":712},{"type":50,"tag":157,"props":1829,"children":1830},{"class":159,"line":873},[1831],{"type":50,"tag":157,"props":1832,"children":1833},{},[1834],{"type":56,"value":1835},"  tags = {\n",{"type":50,"tag":157,"props":1837,"children":1838},{"class":159,"line":1076},[1839],{"type":50,"tag":157,"props":1840,"children":1841},{},[1842],{"type":56,"value":1843},"    Name        = \"web-server\"\n",{"type":50,"tag":157,"props":1845,"children":1846},{"class":159,"line":1084},[1847],{"type":50,"tag":157,"props":1848,"children":1849},{},[1850],{"type":56,"value":1851},"    Environment = var.environment\n",{"type":50,"tag":157,"props":1853,"children":1854},{"class":159,"line":1092},[1855],{"type":50,"tag":157,"props":1856,"children":1857},{},[1858],{"type":56,"value":490},{"type":50,"tag":157,"props":1860,"children":1861},{"class":159,"line":1101},[1862],{"type":50,"tag":157,"props":1863,"children":1864},{},[1865],{"type":56,"value":499},{"type":50,"tag":101,"props":1867,"children":1869},{"id":1868},"import-by-identity",[1870],{"type":56,"value":1871},"Import by Identity",{"type":50,"tag":59,"props":1873,"children":1874},{},[1875],{"type":56,"value":1876},"Generated imports use identity-based import (Terraform 1.12+):",{"type":50,"tag":145,"props":1878,"children":1880},{"className":415,"code":1879,"language":417,"meta":150,"style":150},"import {\n  to       = aws_instance.web\n  provider = aws\n  identity = {\n    account_id = \"123456789012\"\n    id         = \"i-0abc123\"\n    region     = \"us-west-2\"\n  }\n}\n",[1881],{"type":50,"tag":153,"props":1882,"children":1883},{"__ignoreMap":150},[1884,1891,1899,1906,1913,1920,1927,1934,1941],{"type":50,"tag":157,"props":1885,"children":1886},{"class":159,"line":160},[1887],{"type":50,"tag":157,"props":1888,"children":1889},{},[1890],{"type":56,"value":1609},{"type":50,"tag":157,"props":1892,"children":1893},{"class":159,"line":170},[1894],{"type":50,"tag":157,"props":1895,"children":1896},{},[1897],{"type":56,"value":1898},"  to       = aws_instance.web\n",{"type":50,"tag":157,"props":1900,"children":1901},{"class":159,"line":191},[1902],{"type":50,"tag":157,"props":1903,"children":1904},{},[1905],{"type":56,"value":728},{"type":50,"tag":157,"props":1907,"children":1908},{"class":159,"line":448},[1909],{"type":50,"tag":157,"props":1910,"children":1911},{},[1912],{"type":56,"value":1632},{"type":50,"tag":157,"props":1914,"children":1915},{"class":159,"line":457},[1916],{"type":50,"tag":157,"props":1917,"children":1918},{},[1919],{"type":56,"value":1640},{"type":50,"tag":157,"props":1921,"children":1922},{"class":159,"line":466},[1923],{"type":50,"tag":157,"props":1924,"children":1925},{},[1926],{"type":56,"value":1648},{"type":50,"tag":157,"props":1928,"children":1929},{"class":159,"line":475},[1930],{"type":50,"tag":157,"props":1931,"children":1932},{},[1933],{"type":56,"value":1656},{"type":50,"tag":157,"props":1935,"children":1936},{"class":159,"line":484},[1937],{"type":50,"tag":157,"props":1938,"children":1939},{},[1940],{"type":56,"value":490},{"type":50,"tag":157,"props":1942,"children":1943},{"class":159,"line":493},[1944],{"type":50,"tag":157,"props":1945,"children":1946},{},[1947],{"type":56,"value":499},{"type":50,"tag":101,"props":1949,"children":1951},{"id":1950},"best-practices",[1952],{"type":56,"value":1953},"Best Practices",{"type":50,"tag":296,"props":1955,"children":1957},{"id":1956},"query-design",[1958],{"type":56,"value":1959},"Query Design",{"type":50,"tag":74,"props":1961,"children":1962},{},[1963,1968,1981],{"type":50,"tag":78,"props":1964,"children":1965},{},[1966],{"type":56,"value":1967},"Start broad, then add filters to narrow results",{"type":50,"tag":78,"props":1969,"children":1970},{},[1971,1973,1979],{"type":56,"value":1972},"Use ",{"type":50,"tag":153,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":56,"value":1978},"limit",{"type":56,"value":1980}," to prevent overwhelming output",{"type":50,"tag":78,"props":1982,"children":1983},{},[1984],{"type":56,"value":1985},"Test queries before generating configuration",{"type":50,"tag":296,"props":1987,"children":1989},{"id":1988},"configuration-management",[1990],{"type":56,"value":1991},"Configuration Management",{"type":50,"tag":74,"props":1993,"children":1994},{},[1995,2000,2005,2010],{"type":50,"tag":78,"props":1996,"children":1997},{},[1998],{"type":56,"value":1999},"Review all generated code before applying",{"type":50,"tag":78,"props":2001,"children":2002},{},[2003],{"type":56,"value":2004},"Remove unnecessary default values",{"type":50,"tag":78,"props":2006,"children":2007},{},[2008],{"type":56,"value":2009},"Use consistent naming conventions",{"type":50,"tag":78,"props":2011,"children":2012},{},[2013],{"type":56,"value":2014},"Add proper variable abstraction",{"type":50,"tag":101,"props":2016,"children":2018},{"id":2017},"troubleshooting",[2019],{"type":56,"value":2020},"Troubleshooting",{"type":50,"tag":2022,"props":2023,"children":2024},"table",{},[2025,2044],{"type":50,"tag":2026,"props":2027,"children":2028},"thead",{},[2029],{"type":50,"tag":2030,"props":2031,"children":2032},"tr",{},[2033,2039],{"type":50,"tag":2034,"props":2035,"children":2036},"th",{},[2037],{"type":56,"value":2038},"Issue",{"type":50,"tag":2034,"props":2040,"children":2041},{},[2042],{"type":56,"value":2043},"Solution",{"type":50,"tag":2045,"props":2046,"children":2047},"tbody",{},[2048,2062,2075,2088],{"type":50,"tag":2030,"props":2049,"children":2050},{},[2051,2057],{"type":50,"tag":2052,"props":2053,"children":2054},"td",{},[2055],{"type":56,"value":2056},"\"No list resources found\"",{"type":50,"tag":2052,"props":2058,"children":2059},{},[2060],{"type":56,"value":2061},"Check provider version supports list resources",{"type":50,"tag":2030,"props":2063,"children":2064},{},[2065,2070],{"type":50,"tag":2052,"props":2066,"children":2067},{},[2068],{"type":56,"value":2069},"Query returns empty",{"type":50,"tag":2052,"props":2071,"children":2072},{},[2073],{"type":56,"value":2074},"Verify region and filter values",{"type":50,"tag":2030,"props":2076,"children":2077},{},[2078,2083],{"type":50,"tag":2052,"props":2079,"children":2080},{},[2081],{"type":56,"value":2082},"Generated config has errors",{"type":50,"tag":2052,"props":2084,"children":2085},{},[2086],{"type":56,"value":2087},"Remove computed attributes, fix deprecated arguments",{"type":50,"tag":2030,"props":2089,"children":2090},{},[2091,2096],{"type":50,"tag":2052,"props":2092,"children":2093},{},[2094],{"type":56,"value":2095},"Import fails",{"type":50,"tag":2052,"props":2097,"children":2098},{},[2099],{"type":56,"value":2100},"Ensure resource not already in state",{"type":50,"tag":101,"props":2102,"children":2104},{"id":2103},"complete-example",[2105],{"type":56,"value":2106},"Complete Example",{"type":50,"tag":145,"props":2108,"children":2110},{"className":415,"code":2109,"language":417,"meta":150,"style":150},"# main.tf - Initialize provider\nterraform {\n  required_version = \">= 1.14\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp\u002Faws\"\n      version = \"~> 6.0\"  # Always use latest version\n    }\n  }\n}\n\n# discovery.tfquery.hcl - Define queries\nprovider \"aws\" {\n  region = \"us-west-2\"\n}\n\nlist \"aws_instance\" \"team_instances\" {\n  provider = aws\n\n  config {\n    filter {\n      name   = \"tag:Owner\"\n      values = [\"platform\"]\n    }\n    filter {\n      name   = \"instance-state-name\"\n      values = [\"running\"]\n    }\n  }\n\n  limit = 50\n}\n",[2111],{"type":50,"tag":153,"props":2112,"children":2113},{"__ignoreMap":150},[2114,2122,2129,2137,2144,2151,2158,2166,2173,2180,2187,2194,2202,2209,2216,2223,2230,2238,2245,2252,2259,2266,2274,2282,2290,2298,2307,2316,2324,2332,2340,2349],{"type":50,"tag":157,"props":2115,"children":2116},{"class":159,"line":160},[2117],{"type":50,"tag":157,"props":2118,"children":2119},{},[2120],{"type":56,"value":2121},"# main.tf - Initialize provider\n",{"type":50,"tag":157,"props":2123,"children":2124},{"class":159,"line":170},[2125],{"type":50,"tag":157,"props":2126,"children":2127},{},[2128],{"type":56,"value":437},{"type":50,"tag":157,"props":2130,"children":2131},{"class":159,"line":191},[2132],{"type":50,"tag":157,"props":2133,"children":2134},{},[2135],{"type":56,"value":2136},"  required_version = \">= 1.14\"\n",{"type":50,"tag":157,"props":2138,"children":2139},{"class":159,"line":448},[2140],{"type":50,"tag":157,"props":2141,"children":2142},{},[2143],{"type":56,"value":445},{"type":50,"tag":157,"props":2145,"children":2146},{"class":159,"line":457},[2147],{"type":50,"tag":157,"props":2148,"children":2149},{},[2150],{"type":56,"value":454},{"type":50,"tag":157,"props":2152,"children":2153},{"class":159,"line":466},[2154],{"type":50,"tag":157,"props":2155,"children":2156},{},[2157],{"type":56,"value":463},{"type":50,"tag":157,"props":2159,"children":2160},{"class":159,"line":475},[2161],{"type":50,"tag":157,"props":2162,"children":2163},{},[2164],{"type":56,"value":2165},"      version = \"~> 6.0\"  # Always use latest version\n",{"type":50,"tag":157,"props":2167,"children":2168},{"class":159,"line":484},[2169],{"type":50,"tag":157,"props":2170,"children":2171},{},[2172],{"type":56,"value":481},{"type":50,"tag":157,"props":2174,"children":2175},{"class":159,"line":493},[2176],{"type":50,"tag":157,"props":2177,"children":2178},{},[2179],{"type":56,"value":490},{"type":50,"tag":157,"props":2181,"children":2182},{"class":159,"line":821},[2183],{"type":50,"tag":157,"props":2184,"children":2185},{},[2186],{"type":56,"value":499},{"type":50,"tag":157,"props":2188,"children":2189},{"class":159,"line":830},[2190],{"type":50,"tag":157,"props":2191,"children":2192},{"emptyLinePlaceholder":709},[2193],{"type":56,"value":712},{"type":50,"tag":157,"props":2195,"children":2196},{"class":159,"line":838},[2197],{"type":50,"tag":157,"props":2198,"children":2199},{},[2200],{"type":56,"value":2201},"# discovery.tfquery.hcl - Define queries\n",{"type":50,"tag":157,"props":2203,"children":2204},{"class":159,"line":847},[2205],{"type":50,"tag":157,"props":2206,"children":2207},{},[2208],{"type":56,"value":688},{"type":50,"tag":157,"props":2210,"children":2211},{"class":159,"line":855},[2212],{"type":50,"tag":157,"props":2213,"children":2214},{},[2215],{"type":56,"value":696},{"type":50,"tag":157,"props":2217,"children":2218},{"class":159,"line":864},[2219],{"type":50,"tag":157,"props":2220,"children":2221},{},[2222],{"type":56,"value":499},{"type":50,"tag":157,"props":2224,"children":2225},{"class":159,"line":873},[2226],{"type":50,"tag":157,"props":2227,"children":2228},{"emptyLinePlaceholder":709},[2229],{"type":56,"value":712},{"type":50,"tag":157,"props":2231,"children":2232},{"class":159,"line":1076},[2233],{"type":50,"tag":157,"props":2234,"children":2235},{},[2236],{"type":56,"value":2237},"list \"aws_instance\" \"team_instances\" {\n",{"type":50,"tag":157,"props":2239,"children":2240},{"class":159,"line":1084},[2241],{"type":50,"tag":157,"props":2242,"children":2243},{},[2244],{"type":56,"value":728},{"type":50,"tag":157,"props":2246,"children":2247},{"class":159,"line":1092},[2248],{"type":50,"tag":157,"props":2249,"children":2250},{"emptyLinePlaceholder":709},[2251],{"type":56,"value":712},{"type":50,"tag":157,"props":2253,"children":2254},{"class":159,"line":1101},[2255],{"type":50,"tag":157,"props":2256,"children":2257},{},[2258],{"type":56,"value":802},{"type":50,"tag":157,"props":2260,"children":2261},{"class":159,"line":1110},[2262],{"type":50,"tag":157,"props":2263,"children":2264},{},[2265],{"type":56,"value":810},{"type":50,"tag":157,"props":2267,"children":2268},{"class":159,"line":1118},[2269],{"type":50,"tag":157,"props":2270,"children":2271},{},[2272],{"type":56,"value":2273},"      name   = \"tag:Owner\"\n",{"type":50,"tag":157,"props":2275,"children":2276},{"class":159,"line":1126},[2277],{"type":50,"tag":157,"props":2278,"children":2279},{},[2280],{"type":56,"value":2281},"      values = [\"platform\"]\n",{"type":50,"tag":157,"props":2283,"children":2285},{"class":159,"line":2284},24,[2286],{"type":50,"tag":157,"props":2287,"children":2288},{},[2289],{"type":56,"value":481},{"type":50,"tag":157,"props":2291,"children":2293},{"class":159,"line":2292},25,[2294],{"type":50,"tag":157,"props":2295,"children":2296},{},[2297],{"type":56,"value":810},{"type":50,"tag":157,"props":2299,"children":2301},{"class":159,"line":2300},26,[2302],{"type":50,"tag":157,"props":2303,"children":2304},{},[2305],{"type":56,"value":2306},"      name   = \"instance-state-name\"\n",{"type":50,"tag":157,"props":2308,"children":2310},{"class":159,"line":2309},27,[2311],{"type":50,"tag":157,"props":2312,"children":2313},{},[2314],{"type":56,"value":2315},"      values = [\"running\"]\n",{"type":50,"tag":157,"props":2317,"children":2319},{"class":159,"line":2318},28,[2320],{"type":50,"tag":157,"props":2321,"children":2322},{},[2323],{"type":56,"value":481},{"type":50,"tag":157,"props":2325,"children":2327},{"class":159,"line":2326},29,[2328],{"type":50,"tag":157,"props":2329,"children":2330},{},[2331],{"type":56,"value":490},{"type":50,"tag":157,"props":2333,"children":2335},{"class":159,"line":2334},30,[2336],{"type":50,"tag":157,"props":2337,"children":2338},{"emptyLinePlaceholder":709},[2339],{"type":56,"value":712},{"type":50,"tag":157,"props":2341,"children":2343},{"class":159,"line":2342},31,[2344],{"type":50,"tag":157,"props":2345,"children":2346},{},[2347],{"type":56,"value":2348},"  limit = 50\n",{"type":50,"tag":157,"props":2350,"children":2352},{"class":159,"line":2351},32,[2353],{"type":50,"tag":157,"props":2354,"children":2355},{},[2356],{"type":56,"value":499},{"type":50,"tag":145,"props":2358,"children":2360},{"className":147,"code":2359,"language":149,"meta":150,"style":150},"# Execute workflow\nterraform init\nterraform query\nterraform query -generate-config-out=generated.tf\n# Review and clean generated.tf\nterraform plan\nterraform apply\n",[2361],{"type":50,"tag":153,"props":2362,"children":2363},{"__ignoreMap":150},[2364,2372,2384,2395,2411,2419,2431],{"type":50,"tag":157,"props":2365,"children":2366},{"class":159,"line":160},[2367],{"type":50,"tag":157,"props":2368,"children":2369},{"style":164},[2370],{"type":56,"value":2371},"# Execute workflow\n",{"type":50,"tag":157,"props":2373,"children":2374},{"class":159,"line":170},[2375,2379],{"type":50,"tag":157,"props":2376,"children":2377},{"style":174},[2378],{"type":56,"value":21},{"type":50,"tag":157,"props":2380,"children":2381},{"style":180},[2382],{"type":56,"value":2383}," init\n",{"type":50,"tag":157,"props":2385,"children":2386},{"class":159,"line":191},[2387,2391],{"type":50,"tag":157,"props":2388,"children":2389},{"style":174},[2390],{"type":56,"value":21},{"type":50,"tag":157,"props":2392,"children":2393},{"style":180},[2394],{"type":56,"value":1417},{"type":50,"tag":157,"props":2396,"children":2397},{"class":159,"line":448},[2398,2402,2406],{"type":50,"tag":157,"props":2399,"children":2400},{"style":174},[2401],{"type":56,"value":21},{"type":50,"tag":157,"props":2403,"children":2404},{"style":180},[2405],{"type":56,"value":1444},{"type":50,"tag":157,"props":2407,"children":2408},{"style":180},[2409],{"type":56,"value":2410}," -generate-config-out=generated.tf\n",{"type":50,"tag":157,"props":2412,"children":2413},{"class":159,"line":457},[2414],{"type":50,"tag":157,"props":2415,"children":2416},{"style":164},[2417],{"type":56,"value":2418},"# Review and clean generated.tf\n",{"type":50,"tag":157,"props":2420,"children":2421},{"class":159,"line":466},[2422,2426],{"type":50,"tag":157,"props":2423,"children":2424},{"style":174},[2425],{"type":56,"value":21},{"type":50,"tag":157,"props":2427,"children":2428},{"style":180},[2429],{"type":56,"value":2430}," plan\n",{"type":50,"tag":157,"props":2432,"children":2433},{"class":159,"line":475},[2434,2438],{"type":50,"tag":157,"props":2435,"children":2436},{"style":174},[2437],{"type":56,"value":21},{"type":50,"tag":157,"props":2439,"children":2440},{"style":180},[2441],{"type":56,"value":2442}," apply\n",{"type":50,"tag":2444,"props":2445,"children":2446},"style",{},[2447],{"type":56,"value":2448},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2450,"total":1084},[2451,2468,2480,2493,2507,2519,2533,2543,2558,2573,2585,2596],{"slug":2452,"name":2452,"fn":2453,"description":2454,"org":2455,"tags":2456,"stars":28,"repoUrl":29,"updatedAt":2467},"aws-ami-builder","build Amazon Machine Images with Packer","Build Amazon Machine Images (AMIs) with Packer using the amazon-ebs builder. Use when creating custom AMIs for EC2 instances.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2457,2460,2463,2464],{"name":2458,"slug":2459,"type":15},"AWS","aws",{"name":2461,"slug":2462,"type":15},"Deployment","deployment",{"name":26,"slug":27,"type":15},{"name":2465,"slug":2466,"type":15},"Packer","packer","2026-04-06T18:25:04.01571",{"slug":2469,"name":2469,"fn":2470,"description":2471,"org":2472,"tags":2473,"stars":28,"repoUrl":29,"updatedAt":2479},"azure-image-builder","build Azure managed images with Packer","Build Azure managed images and Azure Compute Gallery images with Packer. Use when creating custom images for Azure VMs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2474,2477,2478],{"name":2475,"slug":2476,"type":15},"Azure","azure",{"name":2461,"slug":2462,"type":15},{"name":2465,"slug":2466,"type":15},"2026-04-06T18:25:06.590174",{"slug":2481,"name":2481,"fn":2482,"description":2483,"org":2484,"tags":2485,"stars":28,"repoUrl":29,"updatedAt":2492},"azure-verified-modules","develop certified Azure Verified Modules","Azure Verified Modules (AVM) requirements and best practices for developing certified Azure Terraform modules. Use when creating or reviewing Azure modules that need AVM certification.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2486,2487,2490,2491],{"name":2475,"slug":2476,"type":15},{"name":2488,"slug":2489,"type":15},"Compliance","compliance",{"name":26,"slug":27,"type":15},{"name":20,"slug":21,"type":15},"2026-04-06T18:25:16.88768",{"slug":2494,"name":2494,"fn":2495,"description":2496,"org":2497,"tags":2498,"stars":28,"repoUrl":29,"updatedAt":2506},"new-terraform-provider","scaffold new Terraform providers","Use this when scaffolding a new Terraform provider.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2499,2502,2505],{"name":2500,"slug":2501,"type":15},"Plugin Development","plugin-development",{"name":2503,"slug":2504,"type":15},"Templates","templates",{"name":20,"slug":21,"type":15},"2026-04-06T18:25:11.814973",{"slug":2508,"name":2508,"fn":2509,"description":2510,"org":2511,"tags":2512,"stars":28,"repoUrl":29,"updatedAt":2518},"provider-actions","implement Terraform Provider lifecycle actions","Implement Terraform Provider actions using the Plugin Framework. Use when developing imperative operations that execute at lifecycle events (before\u002Fafter create, update, destroy).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2513,2516,2517],{"name":2514,"slug":2515,"type":15},"API Development","api-development",{"name":2500,"slug":2501,"type":15},{"name":20,"slug":21,"type":15},"2026-04-06T18:25:07.880533",{"slug":2520,"name":2520,"fn":2521,"description":2522,"org":2523,"tags":2524,"stars":28,"repoUrl":29,"updatedAt":2532},"provider-docs","generate and review Terraform provider documentation","Create, update, and review Terraform provider documentation for Terraform Registry using HashiCorp-recommended patterns, tfplugindocs templates, and schema descriptions. Use when adding or changing provider configuration, resources, data sources, ephemeral resources, list resources, functions, or guides; when validating generated docs; and when troubleshooting missing or incorrect Registry documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2525,2528,2531],{"name":2526,"slug":2527,"type":15},"Documentation","documentation",{"name":2529,"slug":2530,"type":15},"Technical Writing","technical-writing",{"name":20,"slug":21,"type":15},"2026-04-06T18:25:09.261559",{"slug":2534,"name":2534,"fn":2535,"description":2536,"org":2537,"tags":2538,"stars":28,"repoUrl":29,"updatedAt":2542},"provider-resources","implement Terraform Provider resources and data sources","Implement Terraform Provider resources and data sources using the Plugin Framework. Use when developing CRUD operations, schema design, state management, and acceptance testing for provider resources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2539,2540,2541],{"name":2514,"slug":2515,"type":15},{"name":2500,"slug":2501,"type":15},{"name":20,"slug":21,"type":15},"2026-04-06T18:25:10.56237",{"slug":2544,"name":2544,"fn":2545,"description":2546,"org":2547,"tags":2548,"stars":28,"repoUrl":29,"updatedAt":2557},"provider-test-patterns","implement Terraform provider acceptance test patterns","Terraform provider acceptance test patterns using terraform-plugin-testing with the Plugin Framework. Covers test structure, TestCase\u002FTestStep fields, ConfigStateChecks with custom statecheck.StateCheck implementations, plan checks, CompareValue for cross-step assertions, config helpers, import testing with ImportStateKind, sweepers, and scenario patterns (basic, update, disappears, validation, regression), and ephemeral resource testing with the echoprovider package. Use when writing, reviewing, or debugging provider acceptance tests, including questions about statecheck, plancheck, TestCheckFunc, CheckDestroy, ExpectError, import state verification, ephemeral resources, or how to structure test files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2549,2550,2553,2554],{"name":2500,"slug":2501,"type":15},{"name":2551,"slug":2552,"type":15},"QA","qa",{"name":20,"slug":21,"type":15},{"name":2555,"slug":2556,"type":15},"Testing","testing","2026-04-06T18:25:14.352781",{"slug":2559,"name":2559,"fn":2560,"description":2561,"org":2562,"tags":2563,"stars":28,"repoUrl":29,"updatedAt":2572},"push-to-registry","push Packer build metadata to HCP registry","Push Packer build metadata to HCP Packer registry for tracking and managing image lifecycle. Use when integrating Packer builds with HCP Packer for version control and governance.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2564,2565,2568,2571],{"name":2461,"slug":2462,"type":15},{"name":2566,"slug":2567,"type":15},"Governance","governance",{"name":2569,"slug":2570,"type":15},"HCP","hcp",{"name":2465,"slug":2466,"type":15},"2026-04-06T18:25:02.749563",{"slug":2574,"name":2574,"fn":2575,"description":2576,"org":2577,"tags":2578,"stars":28,"repoUrl":29,"updatedAt":2584},"refactor-module","refactor Terraform configurations into reusable modules","Transform monolithic Terraform configurations into reusable, maintainable modules following HashiCorp's module design principles and community best practices.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2579,2582,2583],{"name":2580,"slug":2581,"type":15},"Architecture","architecture",{"name":26,"slug":27,"type":15},{"name":20,"slug":21,"type":15},"2026-04-06T18:25:20.953737",{"slug":2586,"name":2586,"fn":2587,"description":2588,"org":2589,"tags":2590,"stars":28,"repoUrl":29,"updatedAt":2595},"run-acceptance-tests","run acceptance tests for Terraform providers","Guide for running acceptance tests for a Terraform provider. Use this when asked to run an acceptance test or to run a test with the prefix `TestAcc`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2591,2592,2593,2594],{"name":2500,"slug":2501,"type":15},{"name":2551,"slug":2552,"type":15},{"name":20,"slug":21,"type":15},{"name":2555,"slug":2556,"type":15},"2026-04-06T18:25:13.098191",{"slug":2597,"name":2597,"fn":2598,"description":2599,"org":2600,"tags":2601,"stars":28,"repoUrl":29,"updatedAt":2608},"terraform-policy","write and test Terraform policy files","Write, test, or convert Terraform Policy files (.policy.hcl, .policytest.hcl, Sentinel→tfpolicy). Triggers: policy.hcl, policytest, convert sentinel, tfpolicy, write a policy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2602,2603,2604,2607],{"name":2488,"slug":2489,"type":15},{"name":26,"slug":27,"type":15},{"name":2605,"slug":2606,"type":15},"Security","security",{"name":20,"slug":21,"type":15},"2026-07-18T05:48:20.299442",{"items":2610,"total":1076},[2611,2618,2624,2631,2637,2643,2649],{"slug":2452,"name":2452,"fn":2453,"description":2454,"org":2612,"tags":2613,"stars":28,"repoUrl":29,"updatedAt":2467},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2614,2615,2616,2617],{"name":2458,"slug":2459,"type":15},{"name":2461,"slug":2462,"type":15},{"name":26,"slug":27,"type":15},{"name":2465,"slug":2466,"type":15},{"slug":2469,"name":2469,"fn":2470,"description":2471,"org":2619,"tags":2620,"stars":28,"repoUrl":29,"updatedAt":2479},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2621,2622,2623],{"name":2475,"slug":2476,"type":15},{"name":2461,"slug":2462,"type":15},{"name":2465,"slug":2466,"type":15},{"slug":2481,"name":2481,"fn":2482,"description":2483,"org":2625,"tags":2626,"stars":28,"repoUrl":29,"updatedAt":2492},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2627,2628,2629,2630],{"name":2475,"slug":2476,"type":15},{"name":2488,"slug":2489,"type":15},{"name":26,"slug":27,"type":15},{"name":20,"slug":21,"type":15},{"slug":2494,"name":2494,"fn":2495,"description":2496,"org":2632,"tags":2633,"stars":28,"repoUrl":29,"updatedAt":2506},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2634,2635,2636],{"name":2500,"slug":2501,"type":15},{"name":2503,"slug":2504,"type":15},{"name":20,"slug":21,"type":15},{"slug":2508,"name":2508,"fn":2509,"description":2510,"org":2638,"tags":2639,"stars":28,"repoUrl":29,"updatedAt":2518},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2640,2641,2642],{"name":2514,"slug":2515,"type":15},{"name":2500,"slug":2501,"type":15},{"name":20,"slug":21,"type":15},{"slug":2520,"name":2520,"fn":2521,"description":2522,"org":2644,"tags":2645,"stars":28,"repoUrl":29,"updatedAt":2532},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2646,2647,2648],{"name":2526,"slug":2527,"type":15},{"name":2529,"slug":2530,"type":15},{"name":20,"slug":21,"type":15},{"slug":2534,"name":2534,"fn":2535,"description":2536,"org":2650,"tags":2651,"stars":28,"repoUrl":29,"updatedAt":2542},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2652,2653,2654],{"name":2514,"slug":2515,"type":15},{"name":2500,"slug":2501,"type":15},{"name":20,"slug":21,"type":15}]