Private/New-PegasusSyncOperation.ps1

function New-PegasusSyncOperation {
    [CmdletBinding()]
    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
        }
    }
}