Hi Varun,
You can use this link to know more about ARM Templates
https://docs.microsoft.com/en-us/azure/templates/
Structure of ARM Template
There are mainly 4 important sections in the Template as seen by the below parameters, variables, resources, and output.
{ “$schema”: “”, “contentVersion”: “”, “parameters”: { }, “variables”: { }, “resources”: [ ], “outputs”: { }}ParametersThis section is where you define all your input parameters. Any value which you don’t want to be static you pass to template on call.
VariablesThis is a section where you will define all static value variables which you can use overall anywhere in the template.
ResourcesCollection of resources to be deployed.
OutputsIf you want to return any particular value or list of variables then this section can be used as output.$schema is actually a location of schema file which describes the version of the template language. This URL will be different as per different versions.
contentVersion = its version of the template, you can pass any value here by inversion. But while deploying this template it makes sure the correct template is going to be used.