Pax8API/Public/Webhooks/Get-Pax8WebhookLogsQuery.ps1

<#
.SYNOPSIS
Query webhook logs
.DESCRIPTION
Lists instances of WebhookLogView with the ability to query against fields in WebhookLogView.
OpenAPI: GET /webhooks/{webhookId}/logs
Scope: Webhooks. Audience: https://api.pax8.com.
.PARAMETER WebhookId
path parameter 'webhookId'.
.PARAMETER TopicName
Query params used to filter results
.PARAMETER Page
query parameter 'page'.
.PARAMETER Size
query parameter 'size'.
.PARAMETER Status
Filter value for the last delivery status of the webhook
.PARAMETER StartDate
query parameter 'startDate'.
.PARAMETER EndDate
query parameter 'endDate'.
.PARAMETER Sort
Sort field and order, format: field:asc/desc
.PARAMETER Query
query parameter 'query'.
.PARAMETER Direction
Optional sort direction. When provided, the module sends sort as field,direction.
.PARAMETER Raw
Returns the unmodified API response instead of unwrapping paginated content.
.EXAMPLE
Get-Pax8WebhookLogsQuery -WebhookId '00000000-0000-0000-0000-000000000000' -Query 'value'
.LINK
https://devx.pax8.com/openapi/webhooks-api.json
#>

function Get-Pax8WebhookLogsQuery {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [guid]$WebhookId,

        [string]$TopicName,

        [int]$Page,

        [int]$Size,

        [string]$Status,

        [string]$StartDate,

        [string]$EndDate,

        [string]$Sort,

        [Parameter(Mandatory = $true)]
        [object]$Query,

        [ValidateSet('asc', 'desc')]
        [string]$Direction,

        [switch]$All,

        [switch]$Raw
    )

    process {
        $boundParameters = @{}
        foreach ($entry in $PSBoundParameters.GetEnumerator()) {
            $boundParameters[$entry.Key] = $entry.Value
        }

        Invoke-Pax8ApiOperation -CommandName $MyInvocation.MyCommand.Name -Parameters $boundParameters
    }
}