Public/Get-TEApiAdmin.ps1
|
function Get-TEApiAdmin { <# .SYNOPSIS Admin Endpoint Getter .DESCRIPTION #### STATUS: COMPLETE #### Returns either a list of all account Groups, users, roles or permissions. Can also return details for a specific Account Group, user, or role, defaults to account groups .EXAMPLE Get-TEApiAdmin -roles Returns a list of all roles in the account Group .EXAMPLE Get-TEApiAdmin -users Returns a list of all users in the account Group .EXAMPLE Get-TEApiAdmin -userId <userId> Returns details for user <userId> .PARAMETER apiVersion API version defaults to version 6 .PARAMETER accountGroups switch to return all account groups .PARAMETER users switch to return all users .PARAMETER roles switch to return all roles .PARAMETER aid Account Group ID .PARAMETER accountGroupId account group id for account group details .PARAMETER userId user ID for user details .PARAMETER roleId role ID for role details .PARAMETER permissions switch to return all permissions #> [CmdletBinding(DefaultParameterSetName='accountGroups')] param( [int]$apiVersion = 6, [Parameter(ParameterSetName="accountGroups")] [Parameter(ParameterSetName="roles")] [Parameter(ParameterSetName="accountGroupsDetails")] [Parameter(ParameterSetName="userDetails")] [Parameter(ParameterSetName="rolesDetails")] [Parameter(ParameterSetName="permissions")] [string]$aid, [Parameter(ParameterSetName="accountGroups")] [switch]$accountGroups, [Parameter(ParameterSetName="users", Mandatory=$true)] [switch]$users, [Parameter(ParameterSetName="roles", Mandatory=$true)] [switch]$roles, [Parameter(ParameterSetName="accountGroupsDetails", Mandatory=$true)] [string]$accountGroupId, [Parameter(ParameterSetName="userDetails", ValueFromPipeline = $true, Mandatory=$true)] [string]$userId, [Parameter(ParameterSetName="rolesDetails", ValueFromPipeline = $true, Mandatory=$true)] [string]$roleId, [Parameter(ParameterSetName="permissions", Mandatory=$true)] [switch]$permissions ) BEGIN {} PROCESS { $urlComponentsList = New-Object System.Collections.Generic.List[System.Object] if ($PSBoundParameters.Count -eq 0){ $PSBoundParameters.Add('accountGroups',$true) } switch ($PSBoundParameters.keys) { 'accountGroupId' { $urlComponentsList.add('account-groups') $urlComponentsList.add($accountGroupId)} 'users' { $urlComponentsList.add('users')} 'userId' { $urlComponentsList.add('users'); $urlComponentsList.add($userId)} 'roles' { $urlComponentsList.add('roles')} 'roleId' { $urlComponentsList.add('roles'); $urlComponentsList.add($roleId)} 'permissions' { $urlComponentsList.add('permissions')} default { $urlComponentsList.add('account-groups')} } $urlComponents = $urlComponentsList.ToArray() $results = send-TEApi -urlComponents $urlComponents -aid $aid switch ($PSBoundParameters.keys) { 'accountGroups' { Write-Output $results.accountGroups} 'accountGroupsDetails' { Write-Output $results.accountGroups} 'users' { Write-Output $results.users} 'userId' { Write-Output $results.users} 'roles' { Write-Output $results.roles} 'roleId' { Write-Output $results.roles} 'permissions' { Write-Output $results.permissions} default { Write-Output $results.accountGroups} } } END {} } |