Modules/businessdev.ALbuild.Marketplace/Public/Get-BcMarketplaceSubmission.ps1

function Get-BcMarketplaceSubmission {
    <#
    .SYNOPSIS
        Retrieves a product's submission(s) from the Partner Center ingestion API.
 
    .PARAMETER AuthContext
        Auth context (Partner Center scope: 'https://api.partner.microsoft.com/.default').
 
    .PARAMETER ProductId
        The product id (with or without the 'product/' prefix).
 
    .PARAMETER SubmissionId
        Optional submission id. If omitted, the latest submission is returned.
 
    .OUTPUTS
        The submission object (latest, or the requested one).
    #>

    [CmdletBinding()]
    param(
        [Parameter(Mandatory)] [PSCustomObject] $AuthContext,
        [Parameter(Mandatory)] [string] $ProductId,
        [string] $SubmissionId
    )

    $cleanProductId = $ProductId -replace '^product/', ''
    $headers = @{ Authorization = "Bearer $($AuthContext.AccessToken)" }
    $baseUrl = "https://api.partner.microsoft.com/v1.0/ingestion/products/$cleanProductId"

    if ($SubmissionId) {
        return Invoke-RestMethod -Uri "$baseUrl/submissions/$SubmissionId" -Headers $headers -Method Get -ErrorAction Stop
    }

    $response = Invoke-RestMethod -Uri "$baseUrl/submissions" -Headers $headers -Method Get -ErrorAction Stop
    return @($response.value | Sort-Object -Property releaseNumber -Descending | Select-Object -First 1)
}