Public/Remove-DuneResourceProviderConfig.ps1

<#
.SYNOPSIS
Removes a Resourceprovider config entry
.DESCRIPTION
Removes DuneResourceProvider config entry
.PARAMETER Name
config entry name
.PARAMETER ResourceProviderId
Specifies the DuneResourceProvider id.
.PARAMETER ResourceProvider
Specifies the DuneResourceProvider object.
.EXAMPLE
> Get-DuneResourceProvider -Name cust-test-01 | Remove-DuneResourceProviderConfig -Name 'foo'
.EXAMPLE
> Remove-DuneResourceProviderConfig -ResourceProviderId 872a8cb1-a9f2-4bb5-906e-95b2a8bd7678 -Name 'foo' -Value 'bar'
.LINK
https://gitlab.com/yendico1/products/starburst/backend-workflow/ps-modules/starburst/-/blob/main/Starburst/Public/Remove-DuneResourceProviderConfig.ps1
#>

function Remove-DuneResourceProviderConfig {
    [CmdletBinding(
        SupportsShouldProcess,
        ConfirmImpact = 'Low',
        DefaultParameterSetName = 'Id'
    )]
    param (
        [Parameter(Mandatory, Position = 0)]
        [string]$Name,

        [Parameter(Mandatory, ParameterSetName = "Id")]
        [guid]$ResourceProviderId,

        [Parameter(Mandatory, ParameterSetName = "ResourceProvider", ValueFromPipeline)]
        [DuneResourceProvider]$ResourceProvider
    )

    begin {
        Write-Debug "$($MyInvocation.MyCommand)|begin"
        $UriFormatString = "resourceproviders/{0}/config/{1}" # 0=ResourceProviderId / 1=ConfigEntryNanme
    }

    process {
        Write-Debug "$($MyInvocation.MyCommand)|process|$($PSCmdlet.ParameterSetName)"

        if ($ResourceProviderId) { $ResourceProvider = Get-DuneResourceProvider -Id $ResourceProviderId }

        $Url = $UriFormatString -f $ResourceProvider.Id, $Name
        if ($PSCmdlet.ShouldProcess($ResourceProvider.Name)) {
            $Null = Invoke-DuneApiRequest $Url -Method DELETE
        }
    }

    end {
        Write-Debug "$($MyInvocation.MyCommand)|end"
    }
}