Public/Snapshot/Get-TBSnapshot.ps1

function Get-TBSnapshot {
    <#
    .SYNOPSIS
        Gets one or all snapshot jobs.
    .DESCRIPTION
        Retrieves snapshot jobs from the UTCM API. Can get a specific snapshot
        by ID or list all snapshots.
    .PARAMETER SnapshotId
        The ID of a specific snapshot to retrieve.
    .EXAMPLE
        Get-TBSnapshot
        Lists all snapshot jobs.
    .EXAMPLE
        Get-TBSnapshot -SnapshotId '00000000-...'
    #>

    [CmdletBinding()]
    [OutputType([PSCustomObject])]
    param(
        [Parameter(ValueFromPipelineByPropertyName = $true)]
        [Alias('Id')]
        [string]$SnapshotId
    )

    process {
        $baseUri = Get-TBApiBaseUri

        if ($SnapshotId) {
            $uri = '{0}/configurationSnapshotJobs/{1}' -f $baseUri, $SnapshotId
            Write-TBLog -Message ('Getting snapshot: {0}' -f $SnapshotId)
            $response = Invoke-TBGraphRequest -Uri $uri -Method 'GET'
            return ConvertFrom-TBSnapshotResponse -Response $response
        }
        else {
            $uri = '{0}/configurationSnapshotJobs' -f $baseUri
            Write-TBLog -Message 'Listing all snapshots'
            $items = Invoke-TBGraphPagedRequest -Uri $uri

            foreach ($item in $items) {
                ConvertFrom-TBSnapshotResponse -Response $item
            }
        }
    }
}