Public/Get-OAIUser.ps1
Function Get-OAIUser { <# .SYNOPSIS Retrieves users from the OpenAI Compliance API. .DESCRIPTION Retrieves workspace users from the ChatGPT Enterprise compliance API. Can retrieve all users or limit the number of results returned. .PARAMETER All Retrieves all workspace users. .PARAMETER Top Limits the number of users to retrieve. .INPUTS None .OUTPUTS System.Object[] .EXAMPLE Get-OAIUser -All Retrieves all workspace users. .EXAMPLE Get-OAIUser -Top 100 Retrieves the first 100 workspace users. #> [CmdletBinding(DefaultParameterSetName="All")] [OutputType([System.Object[]])] param( [Parameter(Mandatory=$true, Position=0, ParameterSetName="All")] [switch]$All, [Parameter(Mandatory=$true, Position=0, ParameterSetName="Top")] [ValidateRange(1, [int]::MaxValue)] [int]$Top ) Begin { Write-Debug "Validating OpenAI Compliance client initialization" If (!$script:client) { Write-Error "OpenAI Compliance client not initialized. Please run Initialize-OAICompliance first." -ErrorAction Stop } Write-Debug "Creating OAI User manager" $user_manager = [OAIUser]::new($script:client) } Process { Write-Debug "Retrieving workspace users with parameter set: $($PSCmdlet.ParameterSetName)" Try { Switch ($PSCmdlet.ParameterSetName) { "All" { $response = $user_manager.GetUsers($null) } "Top" { $response = $user_manager.GetUsers($top) } } Write-Debug "Response retrieved successfully" } Catch { Write-Error "Error retrieving workspace users: $($_.Exception.Message)" -ErrorAction Stop } } End { Write-Debug "Successfully retrieved workspace users" $response } } |