Update-QlikScheduler.ps1

function Update-QlikScheduler {
    <#
    .SYNOPSIS
    This function ...
 
    .DESCRIPTION
    A bit more description
 
    .PARAMETER FromPipeline
    Shows how to process input from the pipeline, remaining parameters or by named parameter.
 
    .EXAMPLE
    Update-QlikScheduler 'abc'
 
    Description of the example.
 
    #>


    <# Enable -Confirm and -WhatIf. #>
    [CmdletBinding(SupportsShouldProcess = $true)]
    param(
            [parameter(Mandatory=$true,ValueFromPipeline=$True,ValueFromPipelinebyPropertyName=$True,Position=0)]
    [string]$id,

    [ValidateSet("master","slave","both")]
    [alias("type")]
    [string]$schedulerServiceType,

    [ValidateRange(1,256)]
    [Int]$maxConcurrentEngines,

    [ValidateRange(10,10080)]
    [Int]$engineTimeout
    )

    begin {
    }

    process  {
    $scheduler = Get-QlikScheduler $id
    Write-Verbose $schedulerServiceType
    If( $schedulerServiceType -ne $null ) {
      switch ($schedulerServiceType)
      {
        master { $sched_type = 0 }
        slave { $sched_type = 1 }
        both { $sched_type = 2 }
      }
      $scheduler.settings.schedulerServiceType = $sched_type
    }
    if($maxConcurrentEngines) {
        $scheduler.settings.maxConcurrentEngines = $maxConcurrentEngines
    }
    if($engineTimeout) {
        $scheduler.settings.engineTimeout = $engineTimeout
    }
    $json = $scheduler | ConvertTo-Json -Compress -Depth 10
    return Invoke-QlikPut "/qrs/schedulerservice/$id" $json
  }

    end {
    }
}

if ($loadingModule) {
    Export-ModuleMember -Function 'Update-QlikScheduler'
}