Import blocks, in a plan somebody can review

Adopting an existing resource used to be a command run against state, invisible to review and impossible to repeat.

import {
  to = aws_s3_bucket.legacy_uploads
  id = "acme-uploads-2019"
}

resource "aws_s3_bucket" "legacy_uploads" {
  bucket = "acme-uploads-2019"
}

# terraform plan now shows: 1 to import, 0 to add,
# and any drift between the real resource and the config
# appears as a change in the same plan.

Seeing the drift in the plan is the improvement — the old command imported and then the next plan told you what was wrong, in a separate step nobody connected. -generate-config-out writes a starting configuration from the real resource, which is a first draft rather than a result: it emits every attribute including the defaults, and reviewing it down to what is intentional is the actual work.