Declarative vs imperative configuration?

Declarative describes the desired end state and the tool works out the steps (Terraform, Kubernetes manifests). Imperative lists the commands to run in order (shell scripts). Declarative is idempotent by design.