Public/Get-AvdDiagnosticSettings.ps1

function Get-AvdDiagnosticSettings {
    <#
    .SYNOPSIS
    Gets the AVD Diagnostics settings to an another LogAnalytics workspace or categories.
    .DESCRIPTION
    This command will help you updating the Log Analytics workspace or adding/removing log catagories.
    .PARAMETER HostPoolName
    Enter the name of the hostpool you want to enable start vm on connnect.
    .PARAMETER ResourceGroupName
    Enter the name of the resourcegroup where the hostpool resides in.
    .PARAMETER HostpoolId
    Enter the hostpool's resource ID
    .EXAMPLE
    Get-AvdDiagnosticSettings -HostPoolName avd-hostpool-001 -ResourceGroupName rg-avd-001
    .EXAMPLE
    Get-AvdDiagnosticSettings -HostPoolId "/subscriptions/...."
    #>

    [CmdletBinding(DefaultParameterSetName = 'Name')]
    param (
        [parameter(Mandatory, ParameterSetName = 'Name')]
        [ValidateNotNullOrEmpty()]
        [string]$HostpoolName,

        [parameter(Mandatory, ParameterSetName = 'Name')]
        [string]$ResourceGroupName,

        [parameter(Mandatory, ParameterSetName = 'Id', ValueFromPipelineByPropertyName)]
        [string]$Id
        
    )
    Begin {
        Write-Verbose "Start searching for host pool"
        AuthenticationCheck
        $token = GetAuthToken -resource $Script:AzureApiUrl
        $parameters = @{
            HostPoolName      = $HostpoolName 
            ResourceGroupName = $ResourceGroupName
        }
    }
    Process {
        switch ($PsCmdlet.ParameterSetName) {
            Name {
                Write-Verbose "Got a hostpool's name, searching for the resource ID"
                $Id = (Get-AvdHostPool @parameters).id
                $uri =  "{0}/{1}/providers/microsoft.insights/diagnosticSettings/?api-version=2021-05-01-preview" -f $Script:AzureApiUrl, $Id
            }
            Id {
                Write-Verbose "Thank you for making me ease and providing the ID"
                $uri =  "{0}/{1}/providers/microsoft.insights/diagnosticSettings/?api-version=2017-05-01-preview" -f $Script:AzureApiUrl, $Id
            }
            Default {
                Write-Error "No hostpool name and resource group or id provided"
            }
        }
        $parameters = @{
            uri     = $uri
            Method  = "GET"
            Headers = $token
        }
        (Invoke-RestMethod @parameters).value
    }
}