functions/library/registry/.scripts/Invoke-SubscriptionDeployment.ps1
|
function Invoke-SubscriptionDeployment { param( <# [Required] The name used for the deployment and resource group. #> [Parameter( Mandatory = $true )] [System.String] $DeploymentName, <# [Required] Specifies the path to the Bicep template file. #> [Parameter( Mandatory = $true )] [System.String] $TemplateFile, <# [Required] Specifies the path to the Bicep parameter file. #> [Parameter( Mandatory = $true )] [System.String] $ParameterFile, <# [Optional] Specifies the Azure location for the resource group deployment. Defaults: - 'Westeurope'. #> [Parameter()] [System.String] $Location = 'Westeurope', <# [Optional] Switch parameter to enable What-If analysis for the deployment. #> [Parameter()] [Switch] $WhatIf ) if ($WhatIf.IsPresent) { $Deployment = @{ Name = $deploymentName Location = $location TemplateFile = $templateFile TemplateParameterFile = $parameterFile WhatIfResultFormat = 'FullResourcePayloads' WhatIfExcludeChangeType = 'NoChange' # Ignore | NoChange | Deploy | Create | Modify | Delete } New-AzSubscriptionDeployment @Deployment -WhatIf -Verbose $deployment $deployment.outputs | ConvertTo-Json } else { $Deployment = @{ Name = $deploymentName Location = $location TemplateFile = $templateFile TemplateParameterFile = $parameterFile DenySettingsMode = 'None' # None, DenyDelete, DenyWriteAndDelete ActionOnUnmanage = 'DeleteAll' # DetachAll, DeleteResources, DeleteAll } $deployment = New-AzSubscriptionDeploymentStack @Deployment -Verbose -Force -Confirm:$false $deployment $deployment.outputs | ConvertTo-Json Remove-AzSubscriptionDeploymentStack -Name $DeploymentName -Force -ErrorAction Continue } } |