Public/Remove-WacFeed.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
<#
#> Function Remove-WacFeed { [CmdletBinding(SupportsShouldProcess, ConfirmImpact='High')] param ( [Parameter(Mandatory = $true)] [String] $GatewayEndpoint, [Parameter(Mandatory = $true)] [String] $Path, [Parameter()] [PSCredential] $Credential ) if ($PSCmdlet.ShouldProcess("Remove WAC feed $Path?")) { $params = @{ GatewayEndpoint = $GatewayEndpoint } if ($Credential) { $params.Add('Credential', $Credential) } Write-Verbose -Message 'Getting existing WAC feeds ...' $feeds = Get-WacFeed @params if ($feeds.Path -notcontains $Path) { throw "${Path} does not exist in Windows Admin Center as a feed." } else { $feedObject = [PSCustomObject]@{ packageFeeds = @($feeds.Path | Where-Object { $_ -ne $Path }) } } $params.Add('APIEndpoint', '/api/extensions/configs') $params.Add('Method','Put') Write-Verbose -Message 'Generating request parameters ...' $requestParameters = Get-RequestParameter @params $requestParameters.Add('Body', (ConvertTo-Json -InputObject $feedObject)) Write-Verbose -Message 'Invoking remove WAC feed api ...' $response = Invoke-WebRequest @requestParameters -ErrorAction Stop if ($response.StatusCode -ne 200 ) { throw "Failed to remove the feed from the gateway" } else { return (Get-WacFeed -GatewayEndpoint $GatewayEndpoint -Credential $Credential) } } } |