Private/20-GetAtlasUsers.ps1

function Get-AtlasUser {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string] $TenantId
    )

    $result = [AtlasCollectionResult]::new()
    $endpoint = '/v1.0/users?$select=id,displayName,userPrincipalName,userType,accountEnabled'
    $response = Invoke-AtlasGraphRequest -Uri $endpoint

    foreach ($user in $response.Items) {
        $properties = @{
            userPrincipalName = $user.userPrincipalName
            userType = $user.userType
            accountEnabled = $user.accountEnabled
        }
        $kind = if ($user.userType -eq 'Guest') { 'guestUser' } else { 'user' }
        $node = New-AtlasNode -TenantId $TenantId -Id $user.id -Kind $kind -DisplayName $user.displayName -Properties $properties -Source @{
            provider = 'microsoftGraph'
            apiVersion = 'v1.0'
            odataType = '#microsoft.graph.user'
            resourcePath = "/users/$($user.id)"
            collector = 'users'
        }
        $result.Nodes.Add($node)
    }

    $result.Metrics = $response.Metrics
    return $result
}