Public/Get-IPSTDeviceConfigurationPolicies.ps1

function Get-IPSTDeviceConfigurationPolicies {
  <#
  .SYNOPSIS
    Get-IPSTDeviceConfigurationPolicies
  .DESCRIPTION
   
  .PARAMETER ConfigType
    Device configuration type. E.g. androidWorkProfileTrustedRootCertificate
  .PARAMETER ConfigId
    Specifi Device Configuration ID for get specific policy.
  .INPUTS
    None
  .OUTPUTS
    None
  .NOTES
    Author: Jan Řežab
    GitHub: https://github.com/rezabj/IntunePSToolbox
    Blog: https://www.rezab.eu
  .EXAMPLE
    PS> Get-IPSTDeviceConfigurationPolicies -ConfigId 00000000-0000-0000-0000-000000000000
  .EXAMPLE
    PS> Get-IPSTDeviceConfigurationPolicies -ConfigType windowsUpdateForBusinessConfiguration
  #>

  [CmdletBinding()]
  param (
    [Parameter()]
    [ValidateSet(
      "androidWorkProfileTrustedRootCertificate",
      "androidWorkProfileVpnConfiguration",
      "windowsHealthMonitoringConfiguration",
      "iosGeneralDeviceConfiguration",
      "windowsUpdateForBusinessConfiguration",
      "windows10GeneralConfiguration"
      )
    ]
    [string]$ConfigType,
    [Parameter()]
    [string]$ConfigId
  )
  $Resource = '/deviceManagement/deviceConfigurations'
  $Params = @{
    "AccessToken" = $Global:IPSTAccessToken
    "GraphMethod" = 'GET'
  }
  if ($DeviceConfigurationId) {
    $Params += @{
      "GraphUri" = 'https://graph.microsoft.com/' + $IPSTGraphApiEnv + $Resource + "/" + $ConfigId
    }
  } else {
    $Params += @{
      "GraphUri" = 'https://graph.microsoft.com/' + $IPSTGraphApiEnv + $Resource
    }
  }
  $Result = Invoke-GraphAPIRequest @Params
  if ($ConfigType) {
    $ConfigTypeLong = "#microsoft.graph." + $ConfigType
    $FiltredResult = @()
    foreach ($policy in $Result) {
      if ($policy.'@odata.type' -eq $ConfigTypeLong) {
        $FiltredResult += $policy
      }      
    }
    $Result = $FiltredResult
  }
  return $Result
}