Public/table/New-SNOWIncident.ps1

function New-SNOWIncident {
    <#
    .SYNOPSIS
        Creates a incident record in SNOW
    .DESCRIPTION
        Creates a record in the incident table
    .NOTES
        Uses New-SNOWObject as a template function.
    .OUTPUTS
        PSCustomObject. The full table record/s (-PassThru only).
    .LINK
        https://github.com/insomniacc/PSSnow/blob/main/docs/functions/New-SNOWIncident.md
    .LINK
        https://docs.servicenow.com/csh?topicname=c_TableAPI.html&version=latest
    .EXAMPLE
        New-SNOWIncident -Properties @{"<key>"="<value>"} -PassThru
        Creates a single record in incident and returns the new record with SysID
    #>
   
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '')]
    [CmdletBinding(SupportsShouldProcess)]
    param (
        [Parameter()]
        [string]
        $business_impact,
        [Parameter()]
        [alias('caller')]
        [string]
        $caller_id,
        [Parameter()]
        [string]
        $category,
        [Parameter()]
        [alias('probable_cause')]
        [string]
        $cause,
        [Parameter()]
        [alias('caused_by_change')]
        [string]
        $caused_by,
        [Parameter()]
        [string]
        $child_incidents,
        [Parameter()]
        [string]
        $close_code,
        [Parameter()]
        [alias('on_hold_reason')]
        [string]
        $hold_reason,
        [Parameter()]
        [string]
        $incident_state,
        [Parameter()]
        [string]
        $notify,
        [Parameter()]
        [alias('origin')]
        [string]
        $origin_id,
        [Parameter()]
        [string]
        $origin_table,
        [Parameter()]
        [string]
        $parent_incident,
        [Parameter()]
        [alias('problem')]
        [string]
        $problem_id,
        [Parameter()]
        [string]
        $reopen_count,
        [Parameter()]
        [alias('resolved')]
        [string]
        $resolved_at,
        [Parameter()]
        [string]
        $resolved_by,
        [Parameter()]
        [alias('change_request')]
        [string]
        $rfc,
        [Parameter()]
        [string]
        $severity,
        [Parameter()]
        [string]
        $subcategory,
        [Parameter()]
        [boolean]
        $active,
        [Parameter()]
        [string]
        $activity_due,
        [Parameter()]
        [string]
        $additional_assignee_list,
        [Parameter()]
        [string]
        $approval,
        [Parameter()]
        [string]
        $approval_set,
        [Parameter()]
        [string]
        $assigned_to,
        [Parameter()]
        [string]
        $assignment_group,
        [Parameter()]
        [alias('service')]
        [string]
        $business_service,
        [Parameter()]
        [alias('closed')]
        [string]
        $closed_at,
        [Parameter()]
        [string]
        $closed_by,
        [Parameter()]
        [string]
        $close_notes,
        [Parameter()]
        [alias('configuration_item')]
        [string]
        $cmdb_ci,
        [Parameter()]
        [alias('additional_comments')]
        [string]
        $comments,
        [Parameter()]
        [string]
        $comments_and_work_notes,
        [Parameter()]
        [string]
        $company,
        [Parameter()]
        [string]
        $contact_type,
        [Parameter()]
        [string]
        $contract,
        [Parameter()]
        [string]
        $correlation_display,
        [Parameter()]
        [string]
        $correlation_id,
        [Parameter()]
        [string]
        $delivery_plan,
        [Parameter()]
        [string]
        $delivery_task,
        [Parameter()]
        [string]
        $description,
        [Parameter()]
        [string]
        $due_date,
        [Parameter()]
        [string]
        $expected_start,
        [Parameter()]
        [string]
        $follow_up,
        [Parameter()]
        [string]
        $group_list,
        [Parameter()]
        [string]
        $impact,
        [Parameter()]
        [boolean]
        $knowledge,
        [Parameter()]
        [string]
        $location,
        [Parameter()]
        [boolean]
        $made_sla,
        [Parameter()]
        [alias('opened')]
        [string]
        $opened_at,
        [Parameter()]
        [string]
        $opened_by,
        [Parameter()]
        [string]
        $parent,
        [Parameter()]
        [string]
        $priority,
        [Parameter()]
        [string]
        $service_offering,
        [Parameter()]
        [string]
        $short_description,
        [Parameter()]
        [string]
        $sla_due,
        [Parameter()]
        [string]
        $state,
        [Parameter()]
        [string]
        $time_worked,
        [Parameter()]
        [string]
        $urgency,
        [Parameter()]
        [string]
        $user_input,
        [Parameter()]
        [string]
        $watch_list,
        [Parameter()]
        [alias('actual_end')]
        [string]
        $work_end,
        [Parameter()]
        [string]
        $work_notes,
        [Parameter()]
        [string]
        $work_notes_list,
        [Parameter()]
        [alias('actual_start')]
        [string]
        $work_start
    )
    DynamicParam { Import-DefaultParamSet -TemplateFunction "New-SNOWObject" }

    Begin {
        $table = "incident"
    }
    Process {
        Invoke-SNOWTableCREATE -table $table -Parameters $PSBoundParameters
    }
}