Public/PartnerCenter/Get-PartnerCustomer.ps1

function Get-PartnerCustomer {
    [CmdletBinding()]
    param(
        [Parameter()]
        [string]$CustomerTenantId,
        [Parameter()]
        [string]$DefaultDomainName
    )

    try {
        <#
        Connect-CustomerGraph -CustomerTenantId $Script:config.PartnerTenantId -FlowType Delegated
        $customers = Get-MgContract -All
        if($CustomerTenantId) {
            return $customers | Where-Object { $_.CustomerId -eq $CustomerTenantId }
        } else {
            return $customers
        }
        #>


        $requestUri = "https://api.partnercenter.microsoft.com/v1/customers?size=1000"
        if($DefaultDomainName) {
                $filter = '{"Field":"DefaultDomainName","Value":"' + $DefaultDomainName + '","Operator":"starts_with"}'
                $requestUri += "&filter=" + [System.Web.HttpUtility]::UrlEncode($filter)
        }

        # Get all customers
        $response = Invoke-PartnerCenterRequest -Uri $requestUri -Method Get
        $Customers = $response.items
        if($response.links.next) {
            $nextUri = $response.links.next.uri
            $nextHeaders = $response.links.next.headers
            $headersHashtable = @{}
            foreach ($header in $nextHeaders) {
                $headersHashtable[$header.key] = $header.value
            }
            do {
                $response = Invoke-PartnerCenterRequest -Uri "https://api.partnercenter.microsoft.com/v1$($nextUri)" -Method Get -Headers $headersHashtable
                $Customers += $response.items
            } while ($response.links.next)
        }

        if($CustomerTenantId) {
            $Customers = $Customers | Where-Object { $_.id -eq $CustomerTenantId }
        }

        return $Customers
    }
    catch {
        throw [TokenOperationException]::new(
            'PartnerCenter',
            "Failed to get customer information: $($_.Exception.Message)",
            $_
        )
    }
}