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-master<resource_address> <resource_id># 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.
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