The set of files used to describe infrastructure in Terraform is simply known as a Terraform configuration. Terraform uses its own configuration language, designed to allow concise descriptions of infrastructure. The Terraform language is declarative, describing an intended goal rather than the steps to reach that goal.
In terraform, we use HCL language(Hashcorp configuration language). Configuration files can also be JSON, but we recommend only using JSON when the configuration is generated by a machine.
the smallest part of the configuration is the argument. Many arguments form block and many blocks form Modules.