interview-prep
Block Purpose Example
terraform Settings for Terraform itself — required version, backends, required providers terraform { required_version = ">= 1.5" }
provider Configures a specific cloud or service plugin (AWS, Azure, GCP, etc.) with credentials and region provider "aws" { region = "eu-west-2" }
resource Declares something Terraform will create, update, or delete resource "aws_s3_bucket" "logs" { ... }
data Read-only lookup of an existing resource that Terraform did NOT create data "aws_vpc" "main" { id = "vpc-123" }
variable Input parameter to a module — can have defaults, types, validation variable "region" { type = string }
output Value returned by a module — exposes things like IDs, ARNs, IPs output "bucket_arn" { value = aws_s3_bucket.logs.arn }
module Reusable group of resources defined in another directory or registry module "vpc" { source = "terraform-aws-modules/vpc/aws" }
locals Named expressions used inside the module (like local variables) locals { common_tags = { ... } }

My notes