Public/Get-SfLimits.ps1

<#
    .SYNOPSIS
    Queries salesforce limits report

    .DESCRIPTION
    Used to query for salesforce limits in the salesforce org.

    .INPUTS
    None. You cannot pipe objects to Get-SfDevices.

    .OUTPUTS
    A PSCustomObject with the properties:
       - AnalyticsExternalDataSizeMB
       - BOZosCalloutHourlyLimit
       - ConcurrentAsyncGetReportInstances
       - ConcurrentEinsteinDataInsightsStoryCreation
       - ConcurrentEinsteinDiscoveryStoryCreation
       - ConcurrentSyncReportRuns
       - DailyAnalyticsDataflowJobExecutions
       - DailyAnalyticsUploadedFilesSizeMB
       - DailyApiRequests
       - DailyAsyncApexExecutions
       - DailyBulkApiRequests
       - DailyBulkV2QueryFileStorageMB
       - DailyBulkV2QueryJobs
       - DailyDurableGenericStreamingApiEvents
       - DailyDurableStreamingApiEvents
       - DailyEinsteinDataInsightsStoryCreation
       - DailyEinsteinDiscoveryPredictAPICalls
       - DailyEinsteinDiscoveryPredictionsByCDC
       - DailyEinsteinDiscoveryStoryCreation
       - DailyGenericStreamingApiEvents
       - DailyStandardVolumePlatformEvents
       - DailyStreamingApiEvents
       - DailyWorkflowEmails
       - DataStorageMB
       - DurableStreamingApiConcurrentClients
       - FileStorageMB
       - HourlyAsyncReportRuns
       - HourlyDashboardRefreshes
       - HourlyDashboardResults
       - HourlyDashboardStatuses
       - HourlyLongTermIdMapping
       - HourlyODataCallout
       - HourlyPublishedPlatformEvents
       - HourlyPublishedStandardVolumePlatformEvents
       - HourlyShortTermIdMapping
       - HourlySyncReportRuns
       - HourlyTimeBasedWorkflow
       - MassEmail
       - MonthlyEinsteinDiscoveryStoryCreation
       - MonthlyPlatformEventsUsageEntitlement
       - Package2VersionCreates
       - Package2VersionCreatesWithoutValidation
       - PermissionSets
       - SingleEmail
       - StreamingApiConcurrentClients

    .EXAMPLE
    PS> (Get-SfLimits).DailyApiRequests.Remaining

    .LINK
    Set-Config

    .NOTES
    Assumes config is initialized for org access.
#>

function Get-SfLimits {

    [CmdletBinding()]
    [OutputType([PSCustomObject])]
    param()

    begin {
        Write-Verbose "[$($MyInvocation.MyCommand.Name)] Function started"
    }

    end {
        Write-Verbose "[$($MyInvocation.MyCommand.Name)] Complete"
    }

    process {
        Write-Debug "[$($MyInvocation.MyCommand.Name)] PSBoundParameters: $($PSBoundParameters | Out-String)"
        Invoke-SfApi "/limits"
    }
}