Public/Connection/Get-FreshServiceInfo.ps1

<#
.SYNOPSIS
    Returns a Freshservice information.
 
.DESCRIPTION
    Returns a Freshservice information via REST API.
 
    This is a test\helper command to see what tenant is currently connected and show the consumption of API throttle limits. Ideally,
    there would be an endpoint to GET basic tenant information like owners, licensing details, etc. that could be used. There is
    and alias 'whofs' to validate connection quickly and cmdlets support -WhatIf and will show impacted url.
 
.EXAMPLE
    Get-FreshServiceInfo
 
    Returns a Freshservice connection information.
 
.NOTES
    This module was developed and tested with Freshservice REST API v2.
#>

function Get-FreshServiceInfo {
    [CmdletBinding(DefaultParameterSetName = 'default')]
    param (
    )
    begin {

        $PrivateData  = $MyInvocation.MyCommand.Module.PrivateData

        if (!$PrivateData.FreshserviceBaseUri) {
            throw "No connection found! Setup a new Freshservice connection with New-FreshServiceConnection and then Connect-FreshService. Set a default connection with New-FreshServiceConnection or Set-FreshConnection to automatically connect when importing the module."
        }

        $qry = [System.Web.HttpUtility]::ParseQueryString([String]::Empty)
        $uri = [System.UriBuilder]('{0}/business_hours' -f $PrivateData['FreshserviceBaseUri'])

    }
    process {

        try {

            $uri.Query = $qry.ToString()
            $uri = $uri.Uri.AbsoluteUri

            $params = @{
                Uri         = $uri
                Method      = 'GET'
                ErrorAction = 'Stop'
            }

            $result = Invoke-FreshworksRestMethod @params

        }
        catch {
            Throw $_
        }

    }
    end {

        [PSCustomObject]@{
            Connection = $PrivateData.FreshserviceConnection
            BaseUri    = $PrivateData.FreshserviceBaseUri
            Tenant     = $PrivateData.FreshserviceTenant
            'Api-Version'          = $result.Headers['X-Freshservice-Api-Version'][0]
            'Ratelimiting-Managed' = $result.Headers['X-Fw-Ratelimiting-Managed'][0]
            'Ratelimit-Total'      = $result.Headers['X-Ratelimit-Total'][0]
            'Ratelimit-Remaining'  = $result.Headers['X-Ratelimit-Remaining'][0]
        }
    }
}