Public/table/New-SNOWChangeRequest.ps1

function New-SNOWChangeRequest {
    <#
    .SYNOPSIS
        Creates a change_request record in SNOW
    .DESCRIPTION
        Creates a record in the change_request 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-SNOWChangeRequest.md
    .LINK
        https://docs.servicenow.com/csh?topicname=c_TableAPI.html&version=latest
    .EXAMPLE
        New-SNOWChangeRequest -Properties @{"<key>"="<value>"} -PassThru
        Creates a single record in change_request and returns the new record with SysID
    #>
   
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSShouldProcess', '')]
    [CmdletBinding(SupportsShouldProcess)]
    param (
        [Parameter()]
        [string]
        $backout_plan,
        [Parameter()]
        [string]
        $cab_date_time,
        [Parameter()]
        [string]
        $cab_delegate,
        [Parameter()]
        [string]
        $cab_recommendation,
        [Parameter()]
        [boolean]
        $cab_required,
        [Parameter()]
        [string]
        $category,
        [Parameter()]
        [string]
        $change_plan,
        [Parameter()]
        [alias('model')]
        [string]
        $chg_model,
        [Parameter()]
        [string]
        $close_code,
        [Parameter()]
        [alias('planned_end_date')]
        [string]
        $end_date,
        [Parameter()]
        [string]
        $implementation_plan,
        [Parameter()]
        [string]
        $justification,
        [Parameter()]
        [boolean]
        $on_hold,
        [Parameter()]
        [string]
        $on_hold_reason,
        [Parameter()]
        [alias('on_hold_change_tasks')]
        [string]
        $on_hold_task,
        [Parameter()]
        [boolean]
        $outside_maintenance_schedule,
        [Parameter()]
        [string]
        $phase,
        [Parameter()]
        [string]
        $phase_state,
        [Parameter()]
        [boolean]
        $production_system,
        [Parameter()]
        [string]
        $reason,
        [Parameter()]
        [string]
        $requested_by,
        [Parameter()]
        [string]
        $requested_by_date,
        [Parameter()]
        [string]
        $review_comments,
        [Parameter()]
        [string]
        $review_date,
        [Parameter()]
        [string]
        $review_status,
        [Parameter()]
        [string]
        $risk,
        [Parameter()]
        [alias('risk_and_impact_analysis')]
        [string]
        $risk_impact_analysis,
        [Parameter()]
        [string]
        $scope,
        [Parameter()]
        [alias('planned_start_date')]
        [string]
        $start_date,
        [Parameter()]
        [string]
        $test_plan,
        [Parameter()]
        [string]
        $type,
        [Parameter()]
        [boolean]
        $unauthorized,
        [Parameter()]
        [boolean]
        $active,
        [Parameter()]
        [string]
        $activity_due,
        [Parameter()]
        [string]
        $additional_assignee_list,
        [Parameter()]
        [string]
        $approval,
        [Parameter()]
        [string]
        $approval_history,
        [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]
        $order,
        [Parameter()]
        [string]
        $parent,
        [Parameter()]
        [string]
        $priority,
        [Parameter()]
        [string]
        $reassignment_count,
        [Parameter()]
        [string]
        $service_offering,
        [Parameter()]
        [string]
        $short_description,
        [Parameter()]
        [string]
        $sla_due,
        [Parameter()]
        [string]
        $state,
        [Parameter()]
        [string]
        $time_worked,
        [Parameter()]
        [string]
        $universal_request,
        [Parameter()]
        [string]
        $upon_approval,
        [Parameter()]
        [string]
        $upon_reject,
        [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 = "change_request"
    }
    Process {
        Invoke-SNOWTableCREATE -table $table -Parameters $PSBoundParameters
    }
}