Hi @Prateek Rana ,
In Azure Portal, we have a column named 'Definition type' under 'Definitions' tile in Azure Policies which has value either as 'Policy' or 'Initiative' but in Azure PowerShell Get-AzPolicyDefinition gets policy definitions whereas Get-AzPolicySetDefinition gets policy set definitions i.e., policy set definitions under initiatives so you may leverage both the cmdlets and collate the list and then export it to CSV at the end.
That takes care of 'DefinitionType'. Next, when you say 'AvailableEffects', did you mean allowed effect values under a definition which are provided under parameters property? If yes, then you could get them using below code sample. Same way you may get it for policy sets as well.
Code sample:
Get-AzPolicyDefinition | Select-Object @{Name="Metadata"; Expression={$_.Properties.Metadata}}, @{Name="DisplayName"; Expression={$_.Properties.DisplayName}}, @{Name="Description"; Expression={$_.Properties.Description}}, @{Name="PolicyType"; Expression={$_.Properties.PolicyType}}, @{Name="Definitiontype"; Expression={"Policy"}}, @{Name="AvailableEffects"; Expression={$_.Properties.Parameters.effect.allowedValues}}
Output sample: