terraform: configuration, typically contains required_providers that pins provider versions
provider <provider-name>: configuration specific to a provider
variable <var-name>: defines a variable that can be injected using terraform CLI or an environment variable with a prefix TF_VAR_<variable-name>
data <type> <name>: queries the applicable provider to obtain a resource that matches specific criteria; e.g. instead of hard-coding AMI, search for the latest AMI that has a specific prefix (e.g. debian11-*)
resource <type> <name>: defines a resource with a type (e.g. awc_vpc) that is specific for a provider
output <name>: defines a values that can be printed using output command