Public/Documents/Get-UKGFolder.ps1
|
function Get-UKGEmployeeFolder { <# .SYNOPSIS Gets employee folders from the UKG HR Service Delivery API. .DESCRIPTION Retrieves employee folder definitions by ID or lists all. .PARAMETER Id The unique identifier of the folder to retrieve. .PARAMETER All Retrieves all employee folders. .PARAMETER PerPage Number of results per page (1-100, default 25). .PARAMETER Cursor Pagination cursor for retrieving a specific page. .EXAMPLE Get-UKGEmployeeFolder -Id "folder123" .EXAMPLE Get-UKGEmployeeFolder -All .OUTPUTS UKG.Folder or array of UKG.Folder objects. #> [CmdletBinding(DefaultParameterSetName = 'ById')] [OutputType([PSCustomObject])] param( [Parameter(Mandatory, ParameterSetName = 'ById', ValueFromPipelineByPropertyName)] [ValidateNotNullOrEmpty()] [Alias('FolderId')] [string]$Id, [Parameter(ParameterSetName = 'List')] [switch]$All, [Parameter(ParameterSetName = 'List')] [ValidateRange(1, 100)] [int]$PerPage = 25, [Parameter(ParameterSetName = 'List')] [string]$Cursor ) process { $queryParams = @{} switch ($PSCmdlet.ParameterSetName) { 'ById' { $response = Invoke-UKGRequest -Endpoint "/employee_folders/$Id" -Method GET if ($response) { $response.PSObject.TypeNames.Insert(0, 'UKG.Folder') } return $response } 'List' { $queryParams['per_page'] = $PerPage if ($Cursor) { $queryParams['cursor'] = $Cursor } if ($All -and -not $Cursor) { $allFolders = Get-UKGAllPages -Endpoint '/employee_folders' -Method GET -QueryParameters $queryParams foreach ($folder in $allFolders) { $folder.PSObject.TypeNames.Insert(0, 'UKG.Folder') } return $allFolders } else { $response = Invoke-UKGRequest -Endpoint '/employee_folders' -Method GET -QueryParameters $queryParams -ReturnHeaders if ($response.Data) { foreach ($folder in $response.Data) { $folder.PSObject.TypeNames.Insert(0, 'UKG.Folder') } return $response.Data } } } } } } function Get-UKGCompanyFolder { <# .SYNOPSIS Gets company folders from the UKG HR Service Delivery API. .DESCRIPTION Retrieves company folder definitions by ID or lists all. .PARAMETER Id The unique identifier of the folder to retrieve. .PARAMETER All Retrieves all company folders. .PARAMETER PerPage Number of results per page (1-100, default 25). .PARAMETER Cursor Pagination cursor for retrieving a specific page. .EXAMPLE Get-UKGCompanyFolder -Id "folder123" .EXAMPLE Get-UKGCompanyFolder -All .OUTPUTS UKG.Folder or array of UKG.Folder objects. #> [CmdletBinding(DefaultParameterSetName = 'ById')] [OutputType([PSCustomObject])] param( [Parameter(Mandatory, ParameterSetName = 'ById', ValueFromPipelineByPropertyName)] [ValidateNotNullOrEmpty()] [Alias('FolderId')] [string]$Id, [Parameter(ParameterSetName = 'List')] [switch]$All, [Parameter(ParameterSetName = 'List')] [ValidateRange(1, 100)] [int]$PerPage = 25, [Parameter(ParameterSetName = 'List')] [string]$Cursor ) process { $queryParams = @{} switch ($PSCmdlet.ParameterSetName) { 'ById' { $response = Invoke-UKGRequest -Endpoint "/company_folders/$Id" -Method GET if ($response) { $response.PSObject.TypeNames.Insert(0, 'UKG.Folder') } return $response } 'List' { $queryParams['per_page'] = $PerPage if ($Cursor) { $queryParams['cursor'] = $Cursor } if ($All -and -not $Cursor) { $allFolders = Get-UKGAllPages -Endpoint '/company_folders' -Method GET -QueryParameters $queryParams foreach ($folder in $allFolders) { $folder.PSObject.TypeNames.Insert(0, 'UKG.Folder') } return $allFolders } else { $response = Invoke-UKGRequest -Endpoint '/company_folders' -Method GET -QueryParameters $queryParams -ReturnHeaders if ($response.Data) { foreach ($folder in $response.Data) { $folder.PSObject.TypeNames.Insert(0, 'UKG.Folder') } return $response.Data } } } } } } function Get-UKGRedirectionUrl { <# .SYNOPSIS Gets redirection URLs from the UKG HR Service Delivery API. .DESCRIPTION Retrieves URLs for redirecting users to specific resources in the UKG system. .PARAMETER ResourceType The type of resource to get a redirection URL for. .PARAMETER ResourceId The ID of the resource to get a redirection URL for. .PARAMETER QueryParameters Additional query parameters for the request. .EXAMPLE Get-UKGRedirectionUrl -ResourceType "employee" -ResourceId "emp123" .OUTPUTS String containing the redirection URL. #> [CmdletBinding()] [OutputType([string])] param( [Parameter()] [string]$ResourceType, [Parameter()] [string]$ResourceId, [Parameter()] [hashtable]$QueryParameters ) $params = @{} if ($QueryParameters) { $params = $QueryParameters.Clone() } if ($ResourceType) { $params['resource_type'] = $ResourceType } if ($ResourceId) { $params['resource_id'] = $ResourceId } $response = Invoke-UKGRequest -Endpoint '/redirection_urls' -Method GET -QueryParameters $params return $response } |