Private/New-PegasusSyncOperation.ps1

function New-PegasusSyncOperation {
    [CmdletBinding()]
    [OutputType("System.Collections.Hashtable")]

    Param (
        [Parameter(Mandatory = $true)]
        [ValidateSet("GET", "POST", "PATCH", "DELETE")]
        [String] $Method,

        [Parameter(Mandatory = $true)]
        [String] $Endpoint,

        [Parameter(Mandatory = $true)]
        [ValidateSet("Create person", "Update person", "Delete person", "Create position", "Update position", "Delete position", "Create orgunit", "Update orgunit", "Delete orgunit")]
        [String] $Type,

        [Parameter(Mandatory = $false)]
        $Body,

        [Parameter(Mandatory = $false)]
        $Old,

        [Parameter(Mandatory = $false)]
        [String[]] $Difference
    )

    Process {
        @{
            Method     = $Method
            Endpoint   = $Endpoint
            Body       = $Body
            Type       = $Type
            Old        = $Old
            Difference = $Difference
        }
    }
}