custom/oldsdk/Invoke-CVBrowseHypervisorInventory.ps1

Add-AEnums
function Invoke-CVBrowseHypervisorInventory {
    <#
    .Synopsis
        Browse the Inventory of your hypervisor
    .Description
        Browse the Inventory of your hypervisor : URL /V4/Hypervisor/{hypervisorId}/{InventoryEntityName}/Browse
    .Parameter hypervisorId
        Hypervisor client ID to browse
    .Parameter InventoryEntityName
        Name of the inventory entity that needs to be browsed like ESX Host name in VCenter
    #>

    [OutputType([PSCustomObject])]
    param(
        [Parameter(Mandatory=$True)]
        [ValidateNotNullorEmpty()]
        [Hashtable] $hypervisorId,

        [Parameter(Mandatory=$True)]
        [ValidateNotNullorEmpty()]
        [String] $InventoryEntityName
        )
    begin {Write-Debug "$($MyInvocation.MyCommand): begin"
        try{
            $sessionObj = Get-CVSessionDetail $MyInvocation.MyCommand.Name
            $endpointSave = $sessionObj.requestProps.endpoint
            $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{hypervisorId}', $hypervisorId)
            $sessionObj.requestProps.endpoint = $sessionObj.requestProps.endpoint -creplace ('{InventoryEntityName}', $InventoryEntityName)
        }
        catch {
            throw $_
        }
    }
    process { Write-Debug -Message "$($MyInvocation.MyCommand): process"
        try {
            $headerObj = Get-CVRESTHeader $sessionObj
            $body = ''
            $payload = @{ }
            $payload.Add('headerObject', $headerObj)
            $Body = ConvertTo-Json $Properties -Depth 10
            $payload.Add('body', $Body)

            $response = Submit-CVRESTRequest $payload 

            Write-Output $response.Content
        }
    
        catch {
            throw $_
        }
    }
}