Pax8API/Public/Get-Pax8CommandSchema.ps1

function Get-Pax8CommandSchema {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory)]
        [ArgumentCompleter({
            param($commandName, $parameterName, $wordToComplete)
            @($script:Pax8OperationMap.Keys | Sort-Object -Unique | Where-Object { $_ -like "$wordToComplete*" })
        })]
        [string]$CommandName
    )

    if (-not $script:Pax8OperationMap.ContainsKey($CommandName)) {
        throw "Unknown Pax8 command '$CommandName'."
    }

    $operation = $script:Pax8OperationMap[$CommandName]
    [pscustomobject][ordered]@{
        CommandName = $operation.CommandName
        Aliases = @($operation.Aliases)
        Scope = $operation.Scope
        Audience = $operation.Audience
        SpecFile = $operation.SpecFile
        Method = $operation.Method
        Path = $operation.Path
        OperationId = $operation.OperationId
        Parameters = @($operation.Parameters)
        BodyParameters = @($operation.BodyParameters)
        RequestBody = [bool]$operation.RequestBody
        RequestBodyContentType = $operation.RequestBodyContentType
        RequestBodySchemaName = $operation.RequestBodySchemaName
        RequestBodySchema = $operation.RequestBodySchema
        Responses = @($operation.Responses)
    }
}