Public/Remove-ApplicationCategory.ps1

<#
 
.COPYRIGHT
Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
See https://github.com/microsoftgraph/powershell-intune-samples/blob/master/LICENSE for license information.
 
#>


Function Remove-ApplicationCategory() {
    
        <#
    .SYNOPSIS
    This function is used to remove an application category from the Graph API REST interface
    .DESCRIPTION
    The function connects to the Graph API Interface and removes an application category
    .EXAMPLE
    Remove-ApplicationCategory -id $id
    Removes an application category configured in Intune
    .NOTES
    NAME: Remove-ApplicationCategory
    #>

    
        [cmdletbinding()]
    
        param
        (
            $id
        )
    
        $graphApiVersion = "Beta"
        $Resource = "deviceAppManagement/mobileAppCategories"
    
        try {
    
            if ($id -eq "" -or $id -eq $null) {
    
                write-host "No id specified for application category, can't remove application category..." -f Red
                write-host "Please specify id for application category..." -f Red
                break
    
            }
    
            else {
    
                $uri = "https://graph.microsoft.com/$graphApiVersion/$($Resource)/$id"
                Invoke-RestMethod -Uri $uri -Headers $authToken -Method Delete
    
            }
    
        }
    
        catch {
    
            $ex = $_.Exception
            Write-Host "Request to $Uri failed with HTTP Status $([int]$ex.Response.StatusCode) $($ex.Response.StatusDescription)" -f Red
            $errorResponse = $ex.Response.GetResponseStream()
            $reader = New-Object System.IO.StreamReader($errorResponse)
            $reader.BaseStream.Position = 0
            $reader.DiscardBufferedData()
            $responseBody = $reader.ReadToEnd();
            Write-Host "Response content:`n$responseBody" -f Red
            Write-Error "Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"
            
            break
    
        }
    
    }