Help us improve
Share bugs, ideas, or general feedback.
From terraform-master
Imports existing cloud resources into Terraform state using <resource_address> <resource_id>. Supports AWS, Azure, GCP examples; traditional import and 1.5+ blocks with --generate-config.
npx claudepluginhub josiahsiegel/claude-plugin-marketplace --plugin terraform-masterHow this command is triggered — by the user, by Claude, or both
Slash command
/terraform-master:tf-import <resource_address> <resource_id>The summary Claude sees in its command listing — used to decide when to auto-load this command
# Terraform Import Command Import existing infrastructure resources into Terraform management. ## Usage ## What This Command Does 1. Identifies existing resource in cloud 2. Creates state entry for resource 3. Associates resource with Terraform configuration 4. Does NOT generate configuration (traditional import) 5. CAN generate configuration (1.5+ import blocks) ## Import Methods ### Method 1: Traditional Import (All Versions) ### Method 2: Import Blocks (Terraform 1.5+) ## Common Resource IDs ### AWS ### Azure ### GCP ## Import Block Examples (1.5+) ## Workflow ### ...
/tf-importImports existing AWS resource into Terraform state: generates matching HCL config via AWS CLI describe, runs import, verifies state, iterates plan to resolve drift.
/infraGenerates production-ready Terraform IaC for AWS, Azure, or GCP with multi-env setups, modules (network/compute/database/etc.), scripts, and policies.
/plan-applyRuns `terraform plan`, summarizes changes with risk highlights and cost estimates, requires confirmation, then applies infrastructure updates.
/driftDetect and analyze infrastructure drift between Terraform state and actual resources
Share bugs, ideas, or general feedback.
Import existing infrastructure resources into Terraform management.
/tf-import aws_vpc.main vpc-12345678
/tf-import azurerm_resource_group.main /subscriptions/.../resourceGroups/my-rg
/tf-import --generate-config # Generate config for imports (1.5+)
# Requires existing resource block in config
terraform import aws_instance.web i-1234567890abcdef0
# imports.tf
import {
to = aws_instance.web
id = "i-1234567890abcdef0"
}
# Generate configuration
terraform plan -generate-config-out=generated.tf
terraform apply
# EC2 Instance
terraform import aws_instance.web i-1234567890abcdef0
# VPC
terraform import aws_vpc.main vpc-12345678
# S3 Bucket
terraform import aws_s3_bucket.main my-bucket-name
# Security Group
terraform import aws_security_group.main sg-12345678
# IAM Role
terraform import aws_iam_role.main role-name
# Resource Group
terraform import azurerm_resource_group.main /subscriptions/SUB_ID/resourceGroups/my-rg
# Storage Account
terraform import azurerm_storage_account.main /subscriptions/SUB_ID/resourceGroups/my-rg/providers/Microsoft.Storage/storageAccounts/mystorageaccount
# Virtual Network
terraform import azurerm_virtual_network.main /subscriptions/SUB_ID/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet
# Compute Instance
terraform import google_compute_instance.main projects/my-project/zones/us-central1-a/instances/my-instance
# VPC Network
terraform import google_compute_network.main projects/my-project/global/networks/my-network
# GCS Bucket
terraform import google_storage_bucket.main my-bucket-name
# Single import
import {
to = aws_vpc.main
id = "vpc-12345678"
}
# Multiple imports
import {
to = aws_subnet.public[0]
id = "subnet-aaaa1111"
}
import {
to = aws_subnet.public[1]
id = "subnet-bbbb2222"
}
# OpenTofu 1.7+: Looped imports
import {
for_each = local.subnets
to = aws_subnet.imported[each.key]
id = each.value
}
# main.tf
resource "aws_vpc" "main" {
# Configuration will be filled after import
}
terraform import aws_vpc.main vpc-12345678
# Show imported state
terraform state show aws_vpc.main
# Update config to match
# Should show no changes
terraform plan
terraform plan showing no changes