Public/Procurement/CatalogsItem/New-CWMProductCatalog.ps1

function New-CWMProductCatalog {
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '', Justification = 'Used by sub-function')]
    [CmdletBinding(SupportsShouldProcess, ConfirmImpact='Medium')]
    param(
        [Parameter(Mandatory=$true)]
        [ValidateLength(1,60)]
        [string]$identifier,
        [Parameter(Mandatory=$true)]
        [ValidateLength(1,50)]
        [string]$description,
        [bool]$inactiveFlag,
        [Parameter(Mandatory=$true)]
        [hashtable]$subcategory,
        [Parameter(Mandatory=$true)]
        [hashtable]$type,
        [ValidateSet('Agreement', 'Bundle', 'Inventory', 'NonInventory', 'Service')]
        [string]$productClass,
        [bool]$serializedFlag,
        [bool]$serializedCostFlag,
        [bool]$phaseProductFlag,
        [hashtable]$unitOfMeasure,
        [int]$minStockLevel,
        [float]$price,
        [float]$cost,
        [int]$priceAttribute,
        [bool]$taxableFlag,
        [Parameter(Mandatory=$true)]
        [ValidateLength(1,6000)]
        [string]$customerDescription,
        [hashtable]$manufacturer,
        [ValidateLength(1,50)]
        [string]$manufacturerPartNumber,
        [hashtable]$vendor,
        [ValidateLength(1,50)]
        [string]$vendorSku,
        [string]$notes,
        [ValidateLength(1,50)]
        [string]$integrationXRef,
        [string]$dateEntered,
        [hashtable]$category,
        [hashtable]$_info,
        [hashtable]$customFields
    )

    $Endpoint = '/procurement/catalog'
    Invoke-CWMNewMaster -Arguments $PsBoundParameters -Endpoint $Endpoint
}