Public/Remove-DuneResourceProvider.ps1
|
<# .SYNOPSIS Removes DuneResourceProvider object. .DESCRIPTION Removes DuneResourceProvider object. .PARAMETER Name Specifies the DuneResourceProvider name. .PARAMETER Id Specifies the DuneResourceProvider id. .PARAMETER ResourceProvider Specifies the DuneResourceProvider object. .PARAMETER IncludeChildren Specifies whether ResourceGroups/Resources belonging to that ResourceProvider are deleted as well. .INPUTS DuneResourceProvider object. .OUTPUTS Invoke-WebRequest output. .EXAMPLE > Remove-DuneResourceProvider -Name foo .EXAMPLE > Get-DuneResourceProvider foo | Remove-DuneResourceProvider .EXAMPLE > Get-DuneResourceProvider foo | Remove-DuneResourceProvider -IncludeChildren .LINK https://gitlab.com/yendico1/products/starburst/backend-workflow/ps-modules/starburst/-/blob/main/Starburst/Public/Remove-DuneResourceProvider.ps1 #> function Remove-DuneResourceProvider { [CmdletBinding( SupportsShouldProcess, ConfirmImpact = 'High', DefaultParameterSetName = 'Id' )] param ( [Parameter(Mandatory, ParameterSetName = "Name", Position = 0)] [string]$Name, [Parameter(Mandatory, ParameterSetName = "Id")] [guid]$Id, [Parameter(Mandatory, ParameterSetName = "ResourceProvider", ValueFromPipeline)] [DuneResourceProvider]$ResourceProvider, [Parameter()] [switch]$IncludeChildren ) begin { Write-Debug "$($MyInvocation.MyCommand)|begin" $Uri = "resourceproviders" } process { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)" switch ($PSCmdlet.ParameterSetName) { 'Name' { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)|$($Name)" $ResourceProvider = Get-DuneResourceProvider -Name $Name } 'Id' { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)|$($Id)" $ResourceProvider = Get-DuneResourceProvider -Id $Id } 'ResourceProvider' { Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)|$($ResourceProvider.Id)" } Default { return } } $Url = $("{0}/{1}" -f $Uri, $ResourceProvider.Id) if ($PSCmdlet.ShouldProcess($ResourceProvider.Name)) { if ($IncludeChildren) { $ResourceProvider | Get-DuneResourceGroup | Remove-DuneResourceGroup -IncludeChildren } $Null = Invoke-DuneApiRequest $Url -Method DELETE } } end { Write-Debug "$($MyInvocation.MyCommand)|end" } } |