Public/Remove-DuneResourceGroupTemplate.ps1
|
<# .SYNOPSIS Remove a resource group template. .DESCRIPTION Deletes a `DuneResourceGroupTemplate` by `Id` or by passing a `DuneResourceGroupTemplate` object via pipeline. Uses `ShouldProcess` to respect confirmation settings. .PARAMETER Id The GUID Id of the resource group template to remove. .PARAMETER ResourceGroupTemplate A `DuneResourceGroupTemplate` object from the pipeline. .EXAMPLE PS> Remove-DuneResourceGroupTemplate -Id 3d8f6b5a-... Removes the specified resource group template. .EXAMPLE PS> Get-DuneResourceGroupTemplate -Name "sql-rg" | Remove-DuneResourceGroupTemplate Pipeline example removing a resource group template returned from the API. #> function Remove-DuneResourceGroupTemplate { [CmdletBinding( SupportsShouldProcess, ConfirmImpact = 'High', DefaultParameterSetName = 'Id' )] param ( [Parameter(Mandatory, ParameterSetName = "Id")] [guid]$Id, [Parameter(Mandatory, ParameterSetName = "ResourceGroupTemplate", ValueFromPipeline)] [DuneResourceGroupTemplate]$ResourceGroupTemplate ) begin { Write-Debug "$($MyInvocation.MyCommand)|begin" $Uri = "resourcegrouptemplates" } process { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)" switch ($PSCmdlet.ParameterSetName) { 'Id' { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)|$($Id)" $ResourceGroupTemplate = Get-DuneResourceGroupTemplate -Id $Id } 'ResourceGroupTemplate' { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)|$($ResourceGroupTemplate.Id)" } Default { return } } $Url = $("{0}/{1}" -f $Uri, $ResourceGroupTemplate.Id) if ($PSCmdlet.ShouldProcess($ResourceGroupTemplate.Name)) { $Null = Invoke-DuneApiRequest $Url -Method DELETE } } end { Write-Debug "$($MyInvocation.MyCommand)|end" } } |