Public/Ticket/New-JBTicket.ps1

function New-JBTicket {
    <#
    .SYNOPSIS
    Create a new ticket on JitBit
 
    .DESCRIPTION
    Creates a new ticket on JitBit by submitting a POST request to the api. Optionally can create a ticket "on-behalf" of a user
     
    .LINK
    https://www.jitbit.com/helpdesk/helpdesk-api#/?id=ticket-post
 
    .OUTPUTS
    The created ticket id
 
    .PARAMETER CategoryID
    CategoryId. use Get-JBCategories to find options
 
    .PARAMETER Body
    The body of the ticket. Supports html
 
    .PARAMETER Subject
    The subject line of the ticket
 
    .PARAMETER PriorityId
        -1 low, 0 normal, 1 high, 2 critical
 
    .PARAMETER UserId
    To Create a ticket on-behalf of this user (requires technician permissions)
 
    .PARAMETER Tags
    Any tags to add to the ticket for cetegorization
 
    .PARAMETER Attachments
    The file paths to any attachments. ex Get-Item -Path 'C:\temp\screenshot-123.png'
 
    .EXAMPLE
    $Attachments = @( (Get-Item C:\temp-screenshot-123.png), (Get-Item C:\temp-screenshot-456.png))
    New-JBTicket -categoryid 2 -body "This should have 2 attachments" -Subject "[Test]Multiple Attachments" -PriorityId 2 -Attachments $Attachments
     
    #>


    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $true)]
        [int]$CategoryID,
        [Parameter(Mandatory = $true)]
        [String]$Body,
        [Parameter(Mandatory = $true)]
        [String]$Subject,
        [Parameter(Mandatory = $false)]
        [ValidateRange(-1, 2)]
        [int]$PriorityId = 0,
        [Parameter(Mandatory = $false)]
        [int]$UserId,
        [Parameter(Mandatory = $false)]
        [String[]]
        $Tags,
        [Parameter(Mandatory = $false)]
        [IO.FileInfo[]]
        $Attachments
    )
    

    Write-Output "Priority: $PriorityId"
    $Params = @{
        Api    = "ticket"
        Method = "POST"
    }

    $Form = @{
        CategoryID   = $CategoryID
        Body       = $Body
        Subject    = $Subject
        PriorityId = $PriorityId
    }
    if ($UserId) {
        $form.Add("UserId", $UserId)
    }
    if ($tags) {
        $form.add("tags", $tags -join ",")
    }

    if ($Attachments) {
        $form.Add("uploadfile", $Attachments)
    }
    
    Invoke-JBMethod @Params -Form $form 
}