QlikSenseCLI.psm1

Function New-QSAccessibleObjectParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SecurityActions]$Action,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$UserID,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AccessibleObjectParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AccessibleObjectParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AccessibleObjectParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AccessibleObjectParameters -ArgumentList $schemaPath,$resourceType,$action,$userID
    }

    return $Obj
}

Function New-QSAnalyticConnection{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Alias('Host')]
        [String]$Hostname,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Port,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$CertificateFilePath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ReconnectTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$RequestTimeout,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AnalyticConnection]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AnalyticConnection]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AnalyticConnection].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        if ($PSBoundParameters.ContainsKey("Hostname")){$Obj.Host = $PSBoundParameters.Hostname}
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AnalyticConnection -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$name,$hostname,$port,$certificateFilePath,$reconnectTimeout,$requestTimeout
    }

    return $Obj
}

Function New-QSApp{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AppId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$SourceAppId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$TargetAppId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$PublishTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Published,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.StreamCondensed]$Stream,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$FileSize,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastReloadTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Thumbnail,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SavedInProductVersion,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MigrationHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DynamicColor,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppAvailabilityStatus]$AvailabilityStatus,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastDataDistribution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.App]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.App]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.App].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.App -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$owner,$name,$appId,$sourceAppId,$targetAppId,$publishTime,$published,$tags,$description,$stream,$fileSize,$lastReloadTime,$thumbnail,$savedInProductVersion,$migrationHash,$dynamicColor,$availabilityStatus,$lastDataDistribution
    }

    return $Obj
}

Function New-QSAppCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AppId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$PublishTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Published,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.StreamCondensed]$Stream,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SavedInProductVersion,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MigrationHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppAvailabilityStatus]$AvailabilityStatus,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppCondensed -ArgumentList $id,$privileges,$name,$appId,$publishTime,$published,$stream,$savedInProductVersion,$migrationHash,$availabilityStatus
    }

    return $Obj
}

Function New-QSAppContent{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]]$References = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$MaxFileSize,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.FileExtensionWhiteListCondensed]$WhiteList,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$RemainingLibrarySpace,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppContent]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppContent]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppContent].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppContent -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$app,$references,$maxFileSize,$whiteList,$remainingLibrarySpace
    }

    return $Obj
}

Function New-QSAppContentQuota{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$MaxFileSize,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$MaxLibrarySize,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppContentQuota]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppContentQuota]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppContentQuota].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppContentQuota -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$maxFileSize,$maxLibrarySize
    }

    return $Obj
}

Function New-QSAppDataSegment{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EngineObjectId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ContentHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$Size,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MetaDataObject,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AppDataSegmentBlobId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppDataSegment]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppDataSegment]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppDataSegment].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppDataSegment -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$name,$engineObjectId,$app,$contentHash,$size,$metaDataObject,$appDataSegmentBlobId
    }

    return $Obj
}

Function New-QSAppInternal{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EngineObjectId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ContentHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$Size,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EngineObjectType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Attributes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AppInternalBlobId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppInternal]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppInternal]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppInternal].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppInternal -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$engineObjectId,$app,$contentHash,$size,$engineObjectType,$attributes,$appInternalBlobId
    }

    return $Obj
}

Function New-QSApplicationLogInfo{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LogLevel,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ApplicationName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Message,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ApplicationLogInfo]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ApplicationLogInfo]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ApplicationLogInfo].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ApplicationLogInfo -ArgumentList $schemaPath,$logLevel,$applicationName,$message
    }

    return $Obj
}

Function New-QSAppObject{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EngineObjectId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ContentHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$Size,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EngineObjectType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Attributes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ObjectType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$PublishTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Published,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Approved,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SourceObject,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DraftObject,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AppObjectBlobId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppObject]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppObject]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppObject].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppObject -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$name,$engineObjectId,$app,$contentHash,$size,$engineObjectType,$description,$attributes,$objectType,$publishTime,$published,$approved,$tags,$sourceObject,$draftObject,$appObjectBlobId
    }

    return $Obj
}

Function New-QSAppSeedInfo{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$SeedId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ProductVersion,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Legacy,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AppSeedInfo]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AppSeedInfo]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AppSeedInfo].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AppSeedInfo -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$app,$seedId,$productVersion,$legacy
    }

    return $Obj
}

Function New-QSAuditCountParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AuditCountParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AuditCountParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AuditCountParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AuditCountParameters -ArgumentList $schemaPath,$resourceType,$resourceFilter
    }

    return $Obj
}

Function New-QSAuditMatrixParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuditMatrixParametersResourceRefCondensed]$ResourceRef,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuditMatrixParametersResourceRefCondensed]$SubjectRef,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SecurityActions]$Actions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EnvironmentAttributes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AuditLimit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$SubjectStart,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$SubjectProperties,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$ResourceProperties,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$OutputObjectsPrivileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuditMatrixParametersPreviewRuleCondensed]$PreviewRule,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AuditMatrixParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AuditMatrixParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AuditMatrixParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AuditMatrixParameters -ArgumentList $schemaPath,$resourceRef,$subjectRef,$resourceType,$actions,$environmentAttributes,$auditLimit,$subjectStart,$subjectProperties,$resourceProperties,$outputObjectsPrivileges,$previewRule
    }

    return $Obj
}

Function New-QSAuditMatrixParametersPreviewRuleCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Condition,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AuditMatrixParametersPreviewRuleCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AuditMatrixParametersPreviewRuleCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AuditMatrixParametersPreviewRuleCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AuditMatrixParametersPreviewRuleCondensed -ArgumentList $schemaPath,$condition
    }

    return $Obj
}

Function New-QSAuditMatrixParametersResourceRefCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Selection,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AuditMatrixParametersResourceRefCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AuditMatrixParametersResourceRefCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AuditMatrixParametersResourceRefCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AuditMatrixParametersResourceRefCondensed -ArgumentList $schemaPath,$resourceFilter,$selection
    }

    return $Obj
}

Function New-QSAuditParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EnvironmentAttributes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UserSkip,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UserTake,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ResourceSkip,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ResourceTake,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IncludeNonGrantingRules,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AuditParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AuditParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AuditParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AuditParameters -ArgumentList $schemaPath,$resourceType,$resourceFilter,$userFilter,$environmentAttributes,$userSkip,$userTake,$resourceSkip,$resourceTake,$includeNonGrantingRules
    }

    return $Obj
}

Function New-QSAuditPreviewParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EnvironmentAttributes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$RuleConditions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SecurityActions]$Actions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UserSkip,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UserTake,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ResourceSkip,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ResourceTake,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.AuditPreviewParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.AuditPreviewParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.AuditPreviewParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.AuditPreviewParameters -ArgumentList $schemaPath,$resourceType,$resourceFilter,$userFilter,$environmentAttributes,$ruleConditions,$actions,$userSkip,$userTake,$resourceSkip,$resourceTake
    }

    return $Obj
}

Function New-QSCertificateExportParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$MachineNames,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$CertificatePassword,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IncludeSecretsKey,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExportFormatEnum]$ExportFormat,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IncludeCa,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CertificateExportParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CertificateExportParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CertificateExportParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CertificateExportParameters -ArgumentList $schemaPath,$machineNames,$certificatePassword,$includeSecretsKey,$exportFormat,$includeCa
    }

    return $Obj
}

Function New-QSCompositeEvent{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.EventTypeEnum]$EventType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$ReloadTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserSyncTaskCondensed]$UserSyncTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$ExternalProgramTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CompositeEventTimeConstraint]$TimeConstraint,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventRule]]$CompositeRules = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventRule]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CompositeEventOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEvent]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEvent]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEvent].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEvent -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$enabled,$eventType,$reloadTask,$userSyncTask,$externalProgramTask,$timeConstraint,$compositeRules,$operational
    }

    return $Obj
}

Function New-QSCompositeEventCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.EventTypeEnum]$EventType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CompositeEventOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventCondensed -ArgumentList $id,$privileges,$name,$enabled,$eventType,$operational
    }

    return $Obj
}

Function New-QSCompositeEventOperational{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TimesTriggered,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventOperational]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventOperational]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventOperational].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventOperational -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$timesTriggered
    }

    return $Obj
}

Function New-QSCompositeEventOperationalCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TimesTriggered,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventOperationalCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventOperationalCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventOperationalCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventOperationalCondensed -ArgumentList $id,$privileges,$timesTriggered
    }

    return $Obj
}

Function New-QSCompositeEventRule{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RuleStateEnum]$RuleState,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$ReloadTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserSyncTaskCondensed]$UserSyncTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$ExternalProgramTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CompositeEventRuleOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventRule]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventRule]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventRule].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventRule -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$ruleState,$reloadTask,$userSyncTask,$externalProgramTask,$operational
    }

    return $Obj
}

Function New-QSCompositeEventRuleOperational{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$TimeStamp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CurrentStateEnum]$CurrentState,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventRuleOperational]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventRuleOperational]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventRuleOperational].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventRuleOperational -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$timeStamp,$currentState
    }

    return $Obj
}

Function New-QSCompositeEventRuleOperationalCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$TimeStamp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CurrentStateEnum]$CurrentState,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventRuleOperationalCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventRuleOperationalCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventRuleOperationalCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventRuleOperationalCondensed -ArgumentList $id,$privileges,$timeStamp,$currentState
    }

    return $Obj
}

Function New-QSCompositeEventTimeConstraint{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Days,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Hours,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Minutes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Seconds,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CompositeEventTimeConstraint]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CompositeEventTimeConstraint]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CompositeEventTimeConstraint].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CompositeEventTimeConstraint -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$days,$hours,$minutes,$seconds
    }

    return $Obj
}

Function New-QSContentCacheControl{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ContentLibraryCondensed]$ContentLibrary,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Filter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxAge,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CachePolicyEnum]$CachePolicy,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ContentCacheControl]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ContentCacheControl]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ContentCacheControl].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ContentCacheControl -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$contentLibrary,$filter,$maxAge,$cachePolicy
    }

    return $Obj
}

Function New-QSContentLibrary{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.FileExtensionWhiteListCondensed]$WhiteList,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]]$References = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ContentLibrary]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ContentLibrary]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ContentLibrary].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ContentLibrary -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$owner,$name,$type,$tags,$whiteList,$references
    }

    return $Obj
}

Function New-QSContentLibraryCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ContentLibraryCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ContentLibraryCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ContentLibraryCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ContentLibraryCondensed -ArgumentList $id,$privileges,$name,$type
    }

    return $Obj
}

Function New-QSCustomBannerMessage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Message,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CustomBannerMessageType]$MessageType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsActive,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Duration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CustomBannerMessage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CustomBannerMessage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CustomBannerMessage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CustomBannerMessage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$message,$messageType,$isActive,$duration,$tags
    }

    return $Obj
}

Function New-QSCustomPropertyDefinition{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ValueType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$ChoiceValues,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$ObjectTypes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CustomPropertyDefinition]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CustomPropertyDefinition]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CustomPropertyDefinition].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CustomPropertyDefinition -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$valueType,$choiceValues,$objectTypes,$description
    }

    return $Obj
}

Function New-QSCustomPropertyDefinitionCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ValueType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$ChoiceValues,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CustomPropertyDefinitionCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CustomPropertyDefinitionCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CustomPropertyDefinitionCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CustomPropertyDefinitionCondensed -ArgumentList $id,$privileges,$name,$valueType,$choiceValues
    }

    return $Obj
}

Function New-QSCustomPropertyValue{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Value,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CustomPropertyDefinitionCondensed]$Definition,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.CustomPropertyValue]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.CustomPropertyValue]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.CustomPropertyValue].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.CustomPropertyValue -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$value,$definition
    }

    return $Obj
}

Function New-QSDataConnection{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Connectionstring,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EngineObjectId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Username,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Password,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogOnEnum]$LogOn,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ArchitectureEnum]$Architecture,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.DataConnection]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.DataConnection]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.DataConnection].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.DataConnection -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$owner,$name,$connectionstring,$type,$engineObjectId,$username,$password,$logOn,$architecture,$tags
    }

    return $Obj
}

Function New-QSEngineService{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.EngineServiceSettings]$Settings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.EngineService]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.EngineService]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.EngineService].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.EngineService -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$settings,$serverNodeConfiguration,$tags
    }

    return $Obj
}

Function New-QSEngineServiceSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Int32[]]$ListenerPorts,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$OverlayDocuments,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AutosaveInterval,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$DocumentTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$TableFilesDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DocumentDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$GenericUndoBufferMaxSize,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$QvLogEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$GlobalLogMinuteInterval,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuditActivityLogVerbosityEnum]$AuditActivityLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuditSecurityLogVerbosityEnum]$AuditSecurityLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceLogVerbosityEnum]$ServiceLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SystemLogVerbosityEnum]$SystemLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.PerformanceLogVerbosityEnum]$PerformanceLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.HttpTrafficLogVerbosityEnum]$HttpTrafficLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalServicesLogVerbosityEnum]$ExternalServicesLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.QixPerformanceLogVerbosityEnum]$QixPerformanceLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuditLogVerbosityEnum]$AuditLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SessionLogVerbosityEnum]$SessionLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TrafficLogVerbosityEnum]$TrafficLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SseLogVerbosityEnum]$SseLogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$AllowDataLineage,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$WorkingSetSizeLoPct,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$WorkingSetSizeHiPct,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$WorkingSetSizeMode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Single]$CpuThrottlePercentage,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$StandardReload,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskPersisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskHiPersisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskHi,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp1Persisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp1,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp1HiPersisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp1Hi,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp2Persisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp2,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp2HiPersisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp2Hi,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp3Persisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp3,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp3HiPersisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxCoreMaskGrp3Hi,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ObjectTimeLimitSec,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ExportTimeLimitSec,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ReloadTimeLimitSec,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$CreateSearchIndexOnReloadEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$CustomSettings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$HyperCubeMemoryLimit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$ExportMemoryLimit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$ReloadMemoryLimit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$QrsHttpNotificationPort,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.EngineServiceSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.EngineServiceSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.EngineServiceSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.EngineServiceSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$listenerPorts,$overlayDocuments,$autosaveInterval,$documentTimeout,$tableFilesDirectory,$documentDirectory,$genericUndoBufferMaxSize,$qvLogEnabled,$globalLogMinuteInterval,$auditActivityLogVerbosity,$auditSecurityLogVerbosity,$serviceLogVerbosity,$systemLogVerbosity,$performanceLogVerbosity,$httpTrafficLogVerbosity,$externalServicesLogVerbosity,$qixPerformanceLogVerbosity,$auditLogVerbosity,$sessionLogVerbosity,$trafficLogVerbosity,$sseLogVerbosity,$allowDataLineage,$workingSetSizeLoPct,$workingSetSizeHiPct,$workingSetSizeMode,$cpuThrottlePercentage,$standardReload,$maxCoreMaskPersisted,$maxCoreMask,$maxCoreMaskHiPersisted,$maxCoreMaskHi,$maxCoreMaskGrp1Persisted,$maxCoreMaskGrp1,$maxCoreMaskGrp1HiPersisted,$maxCoreMaskGrp1Hi,$maxCoreMaskGrp2Persisted,$maxCoreMaskGrp2,$maxCoreMaskGrp2HiPersisted,$maxCoreMaskGrp2Hi,$maxCoreMaskGrp3Persisted,$maxCoreMaskGrp3,$maxCoreMaskGrp3HiPersisted,$maxCoreMaskGrp3Hi,$objectTimeLimitSec,$exportTimeLimitSec,$reloadTimeLimitSec,$createSearchIndexOnReloadEnabled,$customSettings,$hyperCubeMemoryLimit,$exportMemoryLimit,$reloadMemoryLimit,$qrsHttpNotificationPort
    }

    return $Obj
}

Function New-QSExecutionResult{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$TaskID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$ExecutionID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$AppID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$ExecutingNodeID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExecutingNodeName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskExecutionStatus]$Status,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$StartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$StopTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Duration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$FileReferenceID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ScriptLogAvailable,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ExecutionResultDetailCondensed]]$Details = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ExecutionResultDetailCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ScriptLogLocation,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$ScriptLogSize,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExecutionResult]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExecutionResult]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExecutionResult].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExecutionResult -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$taskID,$executionID,$appID,$executingNodeID,$executingNodeName,$status,$startTime,$stopTime,$duration,$fileReferenceID,$scriptLogAvailable,$details,$scriptLogLocation,$scriptLogSize
    }

    return $Obj
}

Function New-QSExecutionResultCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExecutingNodeName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskExecutionStatus]$Status,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$StartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$StopTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Duration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$FileReferenceID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ScriptLogAvailable,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ExecutionResultDetailCondensed]]$Details = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ExecutionResultDetailCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ScriptLogLocation,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$ScriptLogSize,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExecutionResultCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExecutionResultCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExecutionResultCondensed -ArgumentList $id,$privileges,$executingNodeName,$status,$startTime,$stopTime,$duration,$fileReferenceID,$scriptLogAvailable,$details,$scriptLogLocation,$scriptLogSize
    }

    return $Obj
}

Function New-QSExecutionResultDetail{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.DetailsTypeEnum]$DetailsType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Message,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$DetailCreatedDate,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExecutionResultDetail]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExecutionResultDetail]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExecutionResultDetail].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExecutionResultDetail -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$detailsType,$message,$detailCreatedDate
    }

    return $Obj
}

Function New-QSExecutionResultDetailCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.DetailsTypeEnum]$DetailsType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Message,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$DetailCreatedDate,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExecutionResultDetailCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExecutionResultDetailCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExecutionResultDetailCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExecutionResultDetailCondensed -ArgumentList $id,$privileges,$detailsType,$message,$detailCreatedDate
    }

    return $Obj
}

Function New-QSExecutionSession{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SchedulerServiceCondensed]$ExecutingNode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$ExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$AbortAt,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Retries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AbortReasonEnum]$AbortReason,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$User,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$ReloadTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserSyncTaskCondensed]$UserSyncTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$ExternalProgramTask,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExecutionSession]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExecutionSession]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExecutionSession].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExecutionSession -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$executingNode,$executionResult,$abortAt,$retries,$abortReason,$app,$user,$reloadTask,$userSyncTask,$externalProgramTask
    }

    return $Obj
}

Function New-QSExtension{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.FileExtensionWhiteListCondensed]$WhiteList,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]]$References = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.Extension]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.Extension]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.Extension].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.Extension -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$owner,$name,$tags,$whiteList,$references
    }

    return $Obj
}

Function New-QSExternalProductSignOn{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProductTypes]$ProductType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Alias('Host')]
        [String]$Hostname,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Port,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SignOnUrl,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$StartPageUrl,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HealthCheckPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SignOnUILabel,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$IconClass,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProductSignOn]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProductSignOn]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProductSignOn].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        if ($PSBoundParameters.ContainsKey("Hostname")){$Obj.Host = $PSBoundParameters.Hostname}
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProductSignOn -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$productType,$hostname,$port,$signOnUrl,$startPageUrl,$healthCheckPath,$signOnUILabel,$iconClass,$tags
    }

    return $Obj
}

Function New-QSExternalProgramTask{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskTypeEnum]$TaskType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TaskSessionTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxRetries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Path,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Parameters,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$QlikUser,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProgramTask]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProgramTask]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProgramTask].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProgramTask -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$name,$taskType,$enabled,$taskSessionTimeout,$maxRetries,$tags,$path,$parameters,$qlikUser,$operational
    }

    return $Obj
}

Function New-QSExternalProgramTaskBundle{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$Task,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]]$CompositeEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]]$SchemaEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProgramTaskBundle]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProgramTaskBundle]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProgramTaskBundle].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProgramTaskBundle -ArgumentList $schemaPath,$task,$compositeEvents,$schemaEvents
    }

    return $Obj
}

Function New-QSExternalProgramTaskChange{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$Task,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Guid[]]$CompositeEventsToDelete,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Guid[]]$SchemaEventsToDelete,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]]$CompositeEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]]$SchemaEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProgramTaskChange]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProgramTaskChange]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProgramTaskChange].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProgramTaskChange -ArgumentList $schemaPath,$task,$compositeEventsToDelete,$schemaEventsToDelete,$compositeEvents,$schemaEvents
    }

    return $Obj
}

Function New-QSExternalProgramTaskCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskTypeEnum]$TaskType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TaskSessionTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxRetries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProgramTaskCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProgramTaskCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProgramTaskCondensed -ArgumentList $id,$privileges,$name,$taskType,$enabled,$taskSessionTimeout,$maxRetries,$operational
    }

    return $Obj
}

Function New-QSExternalProgramTaskOperational{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$LastExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProgramTaskOperational]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProgramTaskOperational]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProgramTaskOperational].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProgramTaskOperational -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$lastExecutionResult,$nextExecution
    }

    return $Obj
}

Function New-QSExternalProgramTaskOperationalCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$LastExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ExternalProgramTaskOperationalCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ExternalProgramTaskOperationalCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ExternalProgramTaskOperationalCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ExternalProgramTaskOperationalCondensed -ArgumentList $id,$privileges,$lastExecutionResult,$nextExecution
    }

    return $Obj
}

Function New-QSFileExtension{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.MimeTypeCondensed]$MimeType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.FileExtension]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.FileExtension]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.FileExtension].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.FileExtension -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$mimeType
    }

    return $Obj
}

Function New-QSFileExtensionCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.FileExtensionCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.FileExtensionCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.FileExtensionCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.FileExtensionCondensed -ArgumentList $id,$privileges,$name
    }

    return $Obj
}

Function New-QSFileExtensionWhiteList{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ContentLibraryType]$LibraryType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsDefault,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ModifiedByCustomer,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.FileExtensionCondensed]]$FileExtensions = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.FileExtensionCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.FileExtensionWhiteList]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.FileExtensionWhiteList]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.FileExtensionWhiteList].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.FileExtensionWhiteList -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$libraryType,$isDefault,$modifiedByCustomer,$fileExtensions
    }

    return $Obj
}

Function New-QSFileExtensionWhiteListCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ContentLibraryType]$LibraryType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.FileExtensionWhiteListCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.FileExtensionWhiteListCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.FileExtensionWhiteListCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.FileExtensionWhiteListCondensed -ArgumentList $id,$privileges,$libraryType
    }

    return $Obj
}

Function New-QSFileReferenceCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Location,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$Size,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Hash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.FileTypeEnum]$FileType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.FileReferenceCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.FileReferenceCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.FileReferenceCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.FileReferenceCondensed -ArgumentList $id,$privileges,$location,$size,$hash,$fileType
    }

    return $Obj
}

Function New-QSLicense{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Lef,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Serial,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Check,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Key,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$KeyDetails,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Organization,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ProductEnum]$Product,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$NumberOfCores,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsExpired,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExpiredReason,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsBlacklisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsInvalid,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsSubscription,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsCloudServices,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsElastic,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$Updated,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.License]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.License]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.License].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.License -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$lef,$serial,$check,$key,$keyDetails,$name,$organization,$product,$numberOfCores,$isExpired,$expiredReason,$isBlacklisted,$isInvalid,$isSubscription,$isCloudServices,$isElastic,$updated
    }

    return $Obj
}

Function New-QSLicenseAnalyzerAccessGroup{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerAccessGroup]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerAccessGroup]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerAccessGroup].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerAccessGroup -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name
    }

    return $Obj
}

Function New-QSLicenseAnalyzerAccessType{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$User,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastUsed,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Excess,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Quarantined,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$QuarantineEnd,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DeletedUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DeletedUserDirectory,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerAccessType]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerAccessType]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerAccessType].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerAccessType -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$user,$lastUsed,$excess,$quarantined,$quarantineEnd,$deletedUserId,$deletedUserDirectory
    }

    return $Obj
}

Function New-QSLicenseAnalyzerAccessTypeCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerAccessTypeCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerAccessTypeCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerAccessTypeCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerAccessTypeCondensed -ArgumentList $id,$privileges
    }

    return $Obj
}

Function New-QSLicenseAnalyzerAccessUsage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LicenseAnalyzerAccessTypeCondensed]$AnalyzerAccessType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerAccessUsage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerAccessUsage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerAccessUsage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerAccessUsage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$useStartTime,$latestActivity,$hostName,$serverNodeConfigurationId,$sessionID,$analyzerAccessType
    }

    return $Obj
}

Function New-QSLicenseAnalyzerTimeAccessType{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UsedMinutes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$RemainingMinutes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AssignedMinutes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AssignedUnits,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessType]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessType]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessType].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerTimeAccessType -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$usedMinutes,$remainingMinutes,$assignedMinutes,$assignedUnits
    }

    return $Obj
}

Function New-QSLicenseAnalyzerTimeAccessTypeCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessTypeCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessTypeCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessTypeCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerTimeAccessTypeCondensed -ArgumentList $id,$privileges,$name
    }

    return $Obj
}

Function New-QSLicenseAnalyzerTimeAccessUsage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$User,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStopTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsageSession]]$Sessions = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsageSession]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessTypeCondensed]$AnalyzerTimeAccessType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$useStartTime,$latestActivity,$hostName,$serverNodeConfigurationId,$user,$useStopTime,$sessions,$analyzerTimeAccessType
    }

    return $Obj
}

Function New-QSLicenseAnalyzerTimeAccessUsageSession{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsageSession]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsageSession]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsageSession].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseAnalyzerTimeAccessUsageSession -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$sessionID,$latestActivity,$serverNodeConfigurationId
    }

    return $Obj
}

Function New-QSLicenseLoginAccessType{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UsedAccessTypes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$RemainingAccessTypes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AssignedAccessTypes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AssignedTokens,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseLoginAccessType]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseLoginAccessType]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseLoginAccessType].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseLoginAccessType -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$usedAccessTypes,$remainingAccessTypes,$assignedAccessTypes,$assignedTokens
    }

    return $Obj
}

Function New-QSLicenseLoginAccessTypeCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseLoginAccessTypeCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseLoginAccessTypeCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseLoginAccessTypeCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseLoginAccessTypeCondensed -ArgumentList $id,$privileges,$name
    }

    return $Obj
}

Function New-QSLicenseLoginAccessUsage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$User,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStopTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.LicenseLoginAccessUsageSession]]$Sessions = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.LicenseLoginAccessUsageSession]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LicenseLoginAccessTypeCondensed]$LoginAccessType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseLoginAccessUsage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseLoginAccessUsage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseLoginAccessUsage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseLoginAccessUsage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$useStartTime,$latestActivity,$hostName,$serverNodeConfigurationId,$user,$useStopTime,$sessions,$loginAccessType
    }

    return $Obj
}

Function New-QSLicenseLoginAccessUsageSession{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseLoginAccessUsageSession]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseLoginAccessUsageSession]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseLoginAccessUsageSession].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseLoginAccessUsageSession -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$sessionID,$latestActivity,$serverNodeConfigurationId
    }

    return $Obj
}

Function New-QSLicenseProfessionalAccessGroup{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseProfessionalAccessGroup]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseProfessionalAccessGroup]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseProfessionalAccessGroup].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseProfessionalAccessGroup -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name
    }

    return $Obj
}

Function New-QSLicenseProfessionalAccessType{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$User,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastUsed,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Excess,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Quarantined,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$QuarantineEnd,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DeletedUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DeletedUserDirectory,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseProfessionalAccessType]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseProfessionalAccessType]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseProfessionalAccessType].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseProfessionalAccessType -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$user,$lastUsed,$excess,$quarantined,$quarantineEnd,$deletedUserId,$deletedUserDirectory
    }

    return $Obj
}

Function New-QSLicenseProfessionalAccessTypeCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseProfessionalAccessTypeCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseProfessionalAccessTypeCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseProfessionalAccessTypeCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseProfessionalAccessTypeCondensed -ArgumentList $id,$privileges
    }

    return $Obj
}

Function New-QSLicenseProfessionalAccessUsage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LicenseProfessionalAccessTypeCondensed]$ProfessionalAccessType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseProfessionalAccessUsage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseProfessionalAccessUsage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseProfessionalAccessUsage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseProfessionalAccessUsage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$useStartTime,$latestActivity,$hostName,$serverNodeConfigurationId,$sessionID,$professionalAccessType
    }

    return $Obj
}

Function New-QSLicenseUserAccessGroup{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseUserAccessGroup]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseUserAccessGroup]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseUserAccessGroup].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseUserAccessGroup -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name
    }

    return $Obj
}

Function New-QSLicenseUserAccessType{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$User,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastUsed,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Quarantined,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$QuarantineEnd,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DeletedUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DeletedUserDirectory,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseUserAccessType]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseUserAccessType]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseUserAccessType].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseUserAccessType -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$user,$lastUsed,$quarantined,$quarantineEnd,$deletedUserId,$deletedUserDirectory
    }

    return $Obj
}

Function New-QSLicenseUserAccessTypeCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseUserAccessTypeCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseUserAccessTypeCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseUserAccessTypeCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseUserAccessTypeCondensed -ArgumentList $id,$privileges
    }

    return $Obj
}

Function New-QSLicenseUserAccessUsage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$UseStartTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LatestActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ServerNodeConfigurationId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LicenseUserAccessTypeCondensed]$UserAccessType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LicenseUserAccessUsage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LicenseUserAccessUsage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LicenseUserAccessUsage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LicenseUserAccessUsage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$useStartTime,$latestActivity,$hostName,$serverNodeConfigurationId,$sessionID,$userAccessType
    }

    return $Obj
}

Function New-QSLoadBalancingRequest{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$ProxyID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ProxyPrefix,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$AppID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LoadBalancingPurposeEnum]$LoadBalancingPurpose,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.LoadBalancingRequest]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.LoadBalancingRequest]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.LoadBalancingRequest].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.LoadBalancingRequest -ArgumentList $schemaPath,$proxyID,$proxyPrefix,$appID,$loadBalancingPurpose
    }

    return $Obj
}

Function New-QSManagementConsoleLogInfo{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LogLevel,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Browser,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Message,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ManagementConsoleLogInfo]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ManagementConsoleLogInfo]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ManagementConsoleLogInfo].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ManagementConsoleLogInfo -ArgumentList $schemaPath,$logLevel,$browser,$message
    }

    return $Obj
}

Function New-QSMimeType{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Mime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Extensions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AdditionalHeaders,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Binary,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.MimeType]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.MimeType]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.MimeType].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.MimeType -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$mime,$extensions,$additionalHeaders,$binary
    }

    return $Obj
}

Function New-QSMimeTypeCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Mime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Extensions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AdditionalHeaders,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Binary,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.MimeTypeCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.MimeTypeCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.MimeTypeCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.MimeTypeCondensed -ArgumentList $id,$privileges,$mime,$extensions,$additionalHeaders,$binary
    }

    return $Obj
}

Function New-QSOdagEngineGroup{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagEngineGroupStatusEnum]$OdagEngineGroupStatus,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagEngineGroup]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagEngineGroup]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagEngineGroup].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagEngineGroup -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$name,$description,$odagEngineGroupStatus
    }

    return $Obj
}

Function New-QSOdagEngineGroupCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagEngineGroupStatusEnum]$OdagEngineGroupStatus,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagEngineGroupCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagEngineGroupCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagEngineGroupCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagEngineGroupCondensed -ArgumentList $id,$privileges,$owner,$name,$odagEngineGroupStatus
    }

    return $Obj
}

Function New-QSOdagLink{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsView,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$TemplateApp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$TemplateAppOrigName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$LoadScriptHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$RowEstExpr,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagLinkStatusEnum]$OdagLinkStatus,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Bindings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Properties,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.OdagModelGroupCondensed]]$ModelGroups = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.OdagModelGroupCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagLink]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagLink]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagLink].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagLink -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$name,$isView,$templateApp,$templateAppOrigName,$loadScriptHash,$rowEstExpr,$odagLinkStatus,$bindings,$properties,$modelGroups
    }

    return $Obj
}

Function New-QSOdagLinkCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsView,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$TemplateApp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$TemplateAppOrigName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$RowEstExpr,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagLinkStatusEnum]$OdagLinkStatus,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagLinkCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagLinkCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagLinkCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagLinkCondensed -ArgumentList $id,$privileges,$owner,$name,$isView,$templateApp,$templateAppOrigName,$rowEstExpr,$odagLinkStatus
    }

    return $Obj
}

Function New-QSOdagLinkUsage{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagLinkCondensed]$Link,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$SelectionApp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SelectionAppOrigName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$OriginalApp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$LoadScriptHash,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagLinkUsage]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagLinkUsage]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagLinkUsage].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagLinkUsage -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$link,$selectionApp,$selectionAppOrigName,$originalApp,$loadScriptHash
    }

    return $Obj
}

Function New-QSOdagModelGroup{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagModelGroupStatusEnum]$OdagModelGroupStatus,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagModelGroup]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagModelGroup]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagModelGroup].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagModelGroup -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$name,$description,$odagModelGroupStatus
    }

    return $Obj
}

Function New-QSOdagModelGroupCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagModelGroupStatusEnum]$OdagModelGroupStatus,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagModelGroupCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagModelGroupCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagModelGroupCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagModelGroupCondensed -ArgumentList $id,$privileges,$owner,$name,$odagModelGroupStatus
    }

    return $Obj
}

Function New-QSOdagRequest{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$CreatedByAnonymousUser,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagLinkCondensed]$Link,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SelectionAppId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SelectionAppOrigName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Sheetname,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ClientContextHandle,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$TargetSheet,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$GeneratedAppOrigName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$GeneratedApp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagEngineGroupCondensed]$EngineGroup,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ParentRequestId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagRequestKindEnum]$OdagRequestKind,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagRequestStateEnum]$OdagRequestState,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Engine,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$StartedAt,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$FinishedAt,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagRequestLoadStatusEnum]$OdagRequestLoadStatus,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TimeToLive,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$PurgeAfter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$CurRowEstExpr,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$CurRowEstLowBound,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$CurRowEstHighBound,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ActualRowEst,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$BindingState,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$BindingStateHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SelectionState,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$SelectionStateHash,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Messages,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagRequest]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagRequest]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagRequest].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagRequest -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$createdByAnonymousUser,$link,$selectionAppId,$selectionAppOrigName,$sheetname,$clientContextHandle,$targetSheet,$generatedAppOrigName,$generatedApp,$engineGroup,$parentRequestId,$odagRequestKind,$odagRequestState,$engine,$startedAt,$finishedAt,$odagRequestLoadStatus,$timeToLive,$purgeAfter,$curRowEstExpr,$curRowEstLowBound,$curRowEstHighBound,$actualRowEst,$bindingState,$bindingStateHash,$selectionState,$selectionStateHash,$messages
    }

    return $Obj
}

Function New-QSOdagService{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.OdagServiceSettings]$Settings,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagService]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagService]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagService].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagService -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$settings
    }

    return $Obj
}

Function New-QSOdagServiceSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DynamicViewEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogLevelEnum]$LogLevel,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxConcurrentRequests,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$PurgeOlderThan,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$AllowAnonymousUser,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$AnonymousProxyUser,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AnonymousAppCleanup,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.OdagServiceSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.OdagServiceSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.OdagServiceSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.OdagServiceSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$enabled,$dynamicViewEnabled,$logLevel,$maxConcurrentRequests,$purgeOlderThan,$allowAnonymousUser,$anonymousProxyUser,$anonymousAppCleanup
    }

    return $Obj
}

Function New-QSPrintingService{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.PrintingServiceSettings]$Settings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.PrintingService]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.PrintingService]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.PrintingService].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.PrintingService -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$settings,$serverNodeConfiguration,$tags
    }

    return $Obj
}

Function New-QSPrintingServiceSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$WorkingSetSizeHiPct,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.PrintingServiceSettingsLogVerbosity]$LogVerbosity,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.PrintingServiceSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.PrintingServiceSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.PrintingServiceSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.PrintingServiceSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$workingSetSizeHiPct,$logVerbosity
    }

    return $Obj
}

Function New-QSPrintingServiceSettingsLogVerbosity{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditActivityEnum]$LogVerbosityAuditActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityServiceEnum]$LogVerbosityService,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.PrintingServiceSettingsLogVerbosity]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.PrintingServiceSettingsLogVerbosity]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.PrintingServiceSettingsLogVerbosity].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.PrintingServiceSettingsLogVerbosity -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$logVerbosityAuditActivity,$logVerbosityService
    }

    return $Obj
}

Function New-QSProxyService{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ProxyServiceSettings]$Settings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ProxyService]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ProxyService]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ProxyService].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ProxyService -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$settings,$serverNodeConfiguration,$tags
    }

    return $Obj
}

Function New-QSProxyServiceCertificate{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ProxyServiceCondensed]$ProxyService,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$X509Certificate,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ProxyServiceCertificate]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ProxyServiceCertificate]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ProxyServiceCertificate].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ProxyServiceCertificate -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$proxyService,$x509Certificate
    }

    return $Obj
}

Function New-QSProxyServiceCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ProxyServiceCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ProxyServiceCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ProxyServiceCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ProxyServiceCondensed -ArgumentList $id,$privileges
    }

    return $Obj
}

Function New-QSProxyServiceSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ListenPort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$AllowHttp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UnencryptedListenPort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$AuthenticationListenPort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$KerberosAuthentication,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$UnencryptedAuthenticationListenPort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SslBrowserCertificateThumbprint,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$KeepAliveTimeoutSeconds,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxHeaderSizeBytes,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxHeaderLines,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ProxyServiceSettingsLogVerbosity]$LogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$UseWsTrace,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$PerformanceLoggingInterval,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$RestListenPort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigCondensed]]$VirtualProxies = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$FormAuthenticationPageTemplate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LoggedOutPageTemplate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ErrorPageTemplate,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ProxyServiceSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ProxyServiceSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ProxyServiceSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ProxyServiceSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$listenPort,$allowHttp,$unencryptedListenPort,$authenticationListenPort,$kerberosAuthentication,$unencryptedAuthenticationListenPort,$sslBrowserCertificateThumbprint,$keepAliveTimeoutSeconds,$maxHeaderSizeBytes,$maxHeaderLines,$logVerbosity,$useWsTrace,$performanceLoggingInterval,$restListenPort,$virtualProxies,$formAuthenticationPageTemplate,$loggedOutPageTemplate,$errorPageTemplate
    }

    return $Obj
}

Function New-QSProxyServiceSettingsLogVerbosity{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditActivityEnum]$LogVerbosityAuditActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditSecurityEnum]$LogVerbosityAuditSecurity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityServiceEnum]$LogVerbosityService,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditEnum]$LogVerbosityAudit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityPerformanceEnum]$LogVerbosityPerformance,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySecurityEnum]$LogVerbositySecurity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySystemEnum]$LogVerbositySystem,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ProxyServiceSettingsLogVerbosity]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ProxyServiceSettingsLogVerbosity]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ProxyServiceSettingsLogVerbosity].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ProxyServiceSettingsLogVerbosity -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$logVerbosityAuditActivity,$logVerbosityAuditSecurity,$logVerbosityService,$logVerbosityAudit,$logVerbosityPerformance,$logVerbositySecurity,$logVerbositySystem
    }

    return $Obj
}

Function New-QSQRSLock{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Hostname,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LockTypeEnum]$LockType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Duration,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.QRSLock]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.QRSLock]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.QRSLock].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.QRSLock -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$hostname,$lockType,$duration
    }

    return $Obj
}

Function New-QSReloadTask{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskTypeEnum]$TaskType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TaskSessionTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxRetries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AppCondensed]$App,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsManuallyTriggered,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsPartialReload,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ReloadTask]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ReloadTask]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ReloadTask].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ReloadTask -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$name,$taskType,$enabled,$taskSessionTimeout,$maxRetries,$tags,$app,$isManuallyTriggered,$operational,$isPartialReload
    }

    return $Obj
}

Function New-QSReloadTaskBundle{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$Task,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]]$CompositeEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]]$SchemaEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ReloadTaskBundle]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ReloadTaskBundle]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ReloadTaskBundle].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ReloadTaskBundle -ArgumentList $schemaPath,$task,$compositeEvents,$schemaEvents
    }

    return $Obj
}

Function New-QSReloadTaskChange{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$Task,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Guid[]]$CompositeEventsToDelete,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Guid[]]$SchemaEventsToDelete,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]]$CompositeEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CompositeEventCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]]$SchemaEvents = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.SchemaEventCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ReloadTaskChange]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ReloadTaskChange]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ReloadTaskChange].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ReloadTaskChange -ArgumentList $schemaPath,$task,$compositeEventsToDelete,$schemaEventsToDelete,$compositeEvents,$schemaEvents
    }

    return $Obj
}

Function New-QSReloadTaskCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskTypeEnum]$TaskType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TaskSessionTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxRetries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ReloadTaskCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ReloadTaskCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ReloadTaskCondensed -ArgumentList $id,$privileges,$name,$taskType,$enabled,$taskSessionTimeout,$maxRetries,$operational
    }

    return $Obj
}

Function New-QSReloadTaskOperational{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$LastExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ReloadTaskOperational]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ReloadTaskOperational]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ReloadTaskOperational].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ReloadTaskOperational -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$lastExecutionResult,$nextExecution
    }

    return $Obj
}

Function New-QSReloadTaskOperationalCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$LastExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ReloadTaskOperationalCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ReloadTaskOperationalCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ReloadTaskOperationalCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ReloadTaskOperationalCondensed -ArgumentList $id,$privileges,$lastExecutionResult,$nextExecution
    }

    return $Obj
}

Function New-QSRepositoryService{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RepositoryServiceSettings]$Settings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.RepositoryService]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.RepositoryService]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.RepositoryService].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.RepositoryService -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$serverNodeConfiguration,$settings,$tags
    }

    return $Obj
}

Function New-QSRepositoryServiceSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RepositoryServiceSettingsExternalCert]$ExternalCertificate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RepositoryServiceSettingsSynchronization]$Synchronization,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RepositoryServiceSettingsCleaningAgent]$CleaningAgent,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RepositoryServiceSettingsLogVerbosity]$LogVerbosity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$UseRuleTrace,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.RepositoryServiceSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.RepositoryServiceSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.RepositoryServiceSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.RepositoryServiceSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$externalCertificate,$synchronization,$cleaningAgent,$logVerbosity,$useRuleTrace
    }

    return $Obj
}

Function New-QSRepositoryServiceSettingsCleaningAgent{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$CleaningInterval,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$DatabaseCleaningThreshold,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$InMemoryCleaningThreshold,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.RepositoryServiceSettingsCleaningAgent]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.RepositoryServiceSettingsCleaningAgent]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.RepositoryServiceSettingsCleaningAgent].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.RepositoryServiceSettingsCleaningAgent -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$cleaningInterval,$databaseCleaningThreshold,$inMemoryCleaningThreshold
    }

    return $Obj
}

Function New-QSRepositoryServiceSettingsExternalCert{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ThumbPrint,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.RepositoryServiceSettingsExternalCert]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.RepositoryServiceSettingsExternalCert]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.RepositoryServiceSettingsExternalCert].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.RepositoryServiceSettingsExternalCert -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$name,$thumbPrint
    }

    return $Obj
}

Function New-QSRepositoryServiceSettingsLogVerbosity{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditActivityEnum]$LogVerbosityAuditActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditSecurityEnum]$LogVerbosityAuditSecurity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityServiceEnum]$LogVerbosityService,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityApplicationEnum]$LogVerbosityApplication,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditEnum]$LogVerbosityAudit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityLicenseEnum]$LogVerbosityLicense,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityManagementConsoleEnum]$LogVerbosityManagementConsole,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityPerformanceEnum]$LogVerbosityPerformance,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySecurityEnum]$LogVerbositySecurity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySynchronizationEnum]$LogVerbositySynchronization,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySystemEnum]$LogVerbositySystem,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityUserManagementEnum]$LogVerbosityUserManagement,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityRuleAuditEnum]$LogVerbosityRuleAudit,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.RepositoryServiceSettingsLogVerbosity]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.RepositoryServiceSettingsLogVerbosity]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.RepositoryServiceSettingsLogVerbosity].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.RepositoryServiceSettingsLogVerbosity -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$logVerbosityAuditActivity,$logVerbosityAuditSecurity,$logVerbosityService,$logVerbosityApplication,$logVerbosityAudit,$logVerbosityLicense,$logVerbosityManagementConsole,$logVerbosityPerformance,$logVerbositySecurity,$logVerbositySynchronization,$logVerbositySystem,$logVerbosityUserManagement,$logVerbosityRuleAudit
    }

    return $Obj
}

Function New-QSRepositoryServiceSettingsSynchronization{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$SynchronizationInterval,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$SnapshotTimeInterval,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$SnapshotSizeInterval,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.RepositoryServiceSettingsSynchronization]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.RepositoryServiceSettingsSynchronization]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.RepositoryServiceSettingsSynchronization].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.RepositoryServiceSettingsSynchronization -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$synchronizationInterval,$snapshotTimeInterval,$snapshotSizeInterval
    }

    return $Obj
}

Function New-QSSchedulerService{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SchedulerServiceSettings]$Settings,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchedulerService]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchedulerService]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchedulerService].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchedulerService -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$serverNodeConfiguration,$settings,$tags
    }

    return $Obj
}

Function New-QSSchedulerServiceCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchedulerServiceCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchedulerServiceCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchedulerServiceCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchedulerServiceCondensed -ArgumentList $id,$privileges
    }

    return $Obj
}

Function New-QSSchedulerServiceSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SchedulerServiceTypeEnum]$SchedulerServiceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxConcurrentEngines,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$EngineTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SchedulerServiceSettingsLogVerbosity]$LogVerbosity,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchedulerServiceSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchedulerServiceSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchedulerServiceSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchedulerServiceSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$schedulerServiceType,$maxConcurrentEngines,$engineTimeout,$logVerbosity
    }

    return $Obj
}

Function New-QSSchedulerServiceSettingsLogVerbosity{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditActivityEnum]$LogVerbosityAuditActivity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditSecurityEnum]$LogVerbosityAuditSecurity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityServiceEnum]$LogVerbosityService,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityApplicationEnum]$LogVerbosityApplication,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityAuditEnum]$LogVerbosityAudit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityPerformanceEnum]$LogVerbosityPerformance,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySecurityEnum]$LogVerbositySecurity,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbositySystemEnum]$LogVerbositySystem,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.LogVerbosityTaskExecutionEnum]$LogVerbosityTaskExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchedulerServiceSettingsLogVerbosity]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchedulerServiceSettingsLogVerbosity]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchedulerServiceSettingsLogVerbosity].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchedulerServiceSettingsLogVerbosity -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$logVerbosityAuditActivity,$logVerbosityAuditSecurity,$logVerbosityService,$logVerbosityApplication,$logVerbosityAudit,$logVerbosityPerformance,$logVerbositySecurity,$logVerbositySystem,$logVerbosityTaskExecution
    }

    return $Obj
}

Function New-QSSchemaEvent{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.EventTypeEnum]$EventType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ReloadTaskCondensed]$ReloadTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserSyncTaskCondensed]$UserSyncTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExternalProgramTaskCondensed]$ExternalProgramTask,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$TimeZone,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.DaylightSavingTimeEnum]$DaylightSavingTime,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$StartDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ExpirationDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$SchemaFilterDescription,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$IncrementDescription,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.IncrementOptionEnum]$IncrementOption,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SchemaEventOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchemaEvent]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchemaEvent]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchemaEvent].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchemaEvent -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$enabled,$eventType,$reloadTask,$userSyncTask,$externalProgramTask,$timeZone,$daylightSavingTime,$startDate,$expirationDate,$schemaFilterDescription,$incrementDescription,$incrementOption,$operational
    }

    return $Obj
}

Function New-QSSchemaEventCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.EventTypeEnum]$EventType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SchemaEventOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchemaEventCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchemaEventCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchemaEventCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchemaEventCondensed -ArgumentList $id,$privileges,$name,$enabled,$eventType,$operational
    }

    return $Obj
}

Function New-QSSchemaEventOperational{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TimesTriggered,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastEventDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchemaEventOperational]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchemaEventOperational]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchemaEventOperational].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchemaEventOperational -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$timesTriggered,$lastEventDate,$nextExecution
    }

    return $Obj
}

Function New-QSSchemaEventOperationalCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TimesTriggered,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SchemaEventOperationalCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SchemaEventOperationalCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SchemaEventOperationalCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SchemaEventOperationalCondensed -ArgumentList $id,$privileges,$timesTriggered,$nextExecution
    }

    return $Obj
}

Function New-QSServerNodeConfiguration{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsCentral,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.NodePurposeEnum]$NodePurpose,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$EngineEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ProxyEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$PrintingEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$SchedulerEnabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Temporaryfilepath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeRoleCondensed]]$Roles = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeRoleCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceClusterCondensed]$ServiceCluster,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$FailoverCandidate,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServerNodeConfiguration]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServerNodeConfiguration]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServerNodeConfiguration].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServerNodeConfiguration -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$name,$hostName,$isCentral,$nodePurpose,$engineEnabled,$proxyEnabled,$printingEnabled,$schedulerEnabled,$tags,$temporaryfilepath,$roles,$serviceCluster,$failoverCandidate
    }

    return $Obj
}

Function New-QSServerNodeConfigurationCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HostName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Temporaryfilepath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeRoleCondensed]]$Roles = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeRoleCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceClusterCondensed]$ServiceCluster,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServerNodeConfigurationCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServerNodeConfigurationCondensed -ArgumentList $id,$privileges,$name,$hostName,$temporaryfilepath,$roles,$serviceCluster
    }

    return $Obj
}

Function New-QSServerNodeCreationContainer{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$Configuration,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServerNodeCreationContainer]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServerNodeCreationContainer]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServerNodeCreationContainer].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServerNodeCreationContainer -ArgumentList $schemaPath,$configuration
    }

    return $Obj
}

Function New-QSServerNodeHeartbeat{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$Timestamp,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServerNodeHeartbeat]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServerNodeHeartbeat]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServerNodeHeartbeat].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServerNodeHeartbeat -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$serverNodeConfiguration,$timestamp
    }

    return $Obj
}

Function New-QSServerNodeRole{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.DefinitionEnum]$Definition,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServerNodeRole]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServerNodeRole]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServerNodeRole].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServerNodeRole -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$definition
    }

    return $Obj
}

Function New-QSServerNodeRoleCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.DefinitionEnum]$Definition,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServerNodeRoleCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServerNodeRoleCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServerNodeRoleCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServerNodeRoleCondensed -ArgumentList $id,$privileges,$definition
    }

    return $Obj
}

Function New-QSServiceCluster{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceClusterSettings]$Settings,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceCluster]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceCluster]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceCluster].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceCluster -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$settings
    }

    return $Obj
}

Function New-QSServiceClusterCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceClusterCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceClusterCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceClusterCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceClusterCondensed -ArgumentList $id,$privileges,$name
    }

    return $Obj
}

Function New-QSServiceClusterSettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.PersistenceModeEnum]$PersistenceMode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceClusterSettingsDbCredentials]$DatabaseCredentials,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceClusterSettingsSharedPersistenceProperties]$SharedPersistenceProperties,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DataCollection,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceClusterSettingsEncryption]$Encryption,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$TasksImpersonation,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceClusterSettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceClusterSettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceClusterSettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceClusterSettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$persistenceMode,$databaseCredentials,$sharedPersistenceProperties,$dataCollection,$encryption,$tasksImpersonation
    }

    return $Obj
}

Function New-QSServiceClusterSettingsDbCredentials{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Password,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceClusterSettingsDbCredentials]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceClusterSettingsDbCredentials]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceClusterSettingsDbCredentials].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceClusterSettingsDbCredentials -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$userName,$password
    }

    return $Obj
}

Function New-QSServiceClusterSettingsEncryption{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$EnableEncryptQvf,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$EnableEncryptQvd,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$EncryptionKeyThumbprint,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceClusterSettingsEncryption]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceClusterSettingsEncryption]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceClusterSettingsEncryption].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceClusterSettingsEncryption -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$enableEncryptQvf,$enableEncryptQvd,$encryptionKeyThumbprint
    }

    return $Obj
}

Function New-QSServiceClusterSettingsSharedPersistenceProperties{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$RootFolder,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AppFolder,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$StaticContentRootFolder,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Connector32RootFolder,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Connector64RootFolder,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ArchivedLogsRootFolder,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DatabaseHost,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$DatabasePort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$SSLPort,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$FailoverTimeout,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceClusterSettingsSharedPersistenceProperties]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceClusterSettingsSharedPersistenceProperties]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceClusterSettingsSharedPersistenceProperties].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceClusterSettingsSharedPersistenceProperties -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$rootFolder,$appFolder,$staticContentRootFolder,$connector32RootFolder,$connector64RootFolder,$archivedLogsRootFolder,$databaseHost,$databasePort,$sSLPort,$failoverTimeout
    }

    return $Obj
}

Function New-QSServiceStatus{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServerNodeConfigurationCondensed]$ServerNodeConfiguration,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceTypeEnum]$ServiceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ServiceStateEnum]$ServiceState,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$Timestamp,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.ServiceStatus]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.ServiceStatus]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.ServiceStatus].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.ServiceStatus -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$serverNodeConfiguration,$serviceType,$serviceState,$timestamp
    }

    return $Obj
}

Function New-QSSharedContent{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Uri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.FileExtensionWhiteListCondensed]$WhiteList,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]]$References = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.StaticContentReferenceCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.SharedContentMetaData]]$MetaData = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.SharedContentMetaData]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SharedContent]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SharedContent]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SharedContent].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SharedContent -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$owner,$name,$type,$description,$uri,$tags,$whiteList,$references,$metaData
    }

    return $Obj
}

Function New-QSSharedContentMetaData{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Key,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Value,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SharedContentMetaData]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SharedContentMetaData]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SharedContentMetaData].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SharedContentMetaData -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$key,$value
    }

    return $Obj
}

Function New-QSStaticContentReference{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DataLocation,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$BlobId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$Size,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$FileName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.StaticContentDataTypeEnum]$StaticContentDataType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LogicalPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExternalPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CachePolicyEnum]$CachePolicy,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ServeOptions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CreationTypeEnum]$CreationType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.StaticContentSecurityTypeEnum]$StaticContentSecurityType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.FileReferenceCondensed]]$Files = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.FileReferenceCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.StaticContentReference]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.StaticContentReference]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.StaticContentReference].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.StaticContentReference -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$dataLocation,$blobId,$size,$fileName,$staticContentDataType,$logicalPath,$externalPath,$cachePolicy,$serveOptions,$creationType,$staticContentSecurityType,$files
    }

    return $Obj
}

Function New-QSStaticContentReferenceCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DataLocation,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LogicalPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExternalPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ServeOptions,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.StaticContentReferenceCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.StaticContentReferenceCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.StaticContentReferenceCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.StaticContentReferenceCondensed -ArgumentList $id,$privileges,$dataLocation,$logicalPath,$externalPath,$serveOptions
    }

    return $Obj
}

Function New-QSStream{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.Stream]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.Stream]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.Stream].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.Stream -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$owner,$name,$tags
    }

    return $Obj
}

Function New-QSStreamCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.StreamCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.StreamCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.StreamCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.StreamCondensed -ArgumentList $id,$privileges,$name
    }

    return $Obj
}

Function New-QSSyncAuditParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SyncAuditParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SyncAuditParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SyncAuditParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SyncAuditParameters -ArgumentList $schemaPath,$resourceType,$resourceFilter
    }

    return $Obj
}

Function New-QSSyncAuditPreviewParameters{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$RuleConditions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SecurityActions]$Actions,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SyncAuditPreviewParameters]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SyncAuditPreviewParameters]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SyncAuditPreviewParameters].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SyncAuditPreviewParameters -ArgumentList $schemaPath,$resourceType,$resourceFilter,$ruleConditions,$actions
    }

    return $Obj
}

Function New-QSSystemInfo{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$SeedDataVersion,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ProductVersion,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DefaultAppVersion,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SystemInfo]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SystemInfo]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SystemInfo].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SystemInfo -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$seedDataVersion,$productVersion,$defaultAppVersion
    }

    return $Obj
}

Function New-QSSystemNotification{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Title,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Message,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Url,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ReloadTaskCondensed]]$ReloadTasks = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ReloadTaskCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TaskExecutionStatus]]$TaskTriggerStatuses = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TaskExecutionStatus]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$TargetGroups,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.UserCondensed]]$TargetUsers = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.UserCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$LastTriggeredDate,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SystemNotification]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SystemNotification]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SystemNotification].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SystemNotification -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$title,$message,$url,$reloadTasks,$taskTriggerStatuses,$targetGroups,$targetUsers,$lastTriggeredDate
    }

    return $Obj
}

Function New-QSSystemRule{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Category,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Subcategory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Rule,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ResourceFilter,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SecurityActions]$Actions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Comment,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Disabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.RuleContextEnum]$RuleContext,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$SeedId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Version,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.SystemRule]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.SystemRule]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.SystemRule].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.SystemRule -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$category,$subcategory,$type,$name,$rule,$resourceFilter,$actions,$comment,$disabled,$ruleContext,$seedId,$version,$tags
    }

    return $Obj
}

Function New-QSTableDefinition{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TableDefinitionColumn]]$Columns = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TableDefinitionColumn]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.TableDefinition]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.TableDefinition]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.TableDefinition].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.TableDefinition -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$type,$columns
    }

    return $Obj
}

Function New-QSTableDefinitionColumn{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ColumnTypeEnum]$ColumnType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Definition,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TableDefinitionListColumn]]$_List = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TableDefinitionListColumn]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.TableDefinitionColumn]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.TableDefinitionColumn]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.TableDefinitionColumn].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.TableDefinitionColumn -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$name,$columnType,$definition,$_list
    }

    return $Obj
}

Function New-QSTableDefinitionListColumn{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ColumnTypeEnum]$ColumnType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Definition,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.TableDefinitionListColumn]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.TableDefinitionListColumn]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.TableDefinitionListColumn].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.TableDefinitionListColumn -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$name,$columnType,$definition
    }

    return $Obj
}

Function New-QSTag{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.Tag]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.Tag]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.Tag].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.Tag -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name
    }

    return $Obj
}

Function New-QSTagCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.TagCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.TagCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.TagCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.TagCondensed -ArgumentList $id,$privileges,$name
    }

    return $Obj
}

Function New-QSTempContent{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserCondensed]$Owner,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$DataLocation,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$BlobId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int64]$Size,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$FileName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.StaticContentDataTypeEnum]$StaticContentDataType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LogicalPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExternalPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CachePolicyEnum]$CachePolicy,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$ServeOptions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ExpirationDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ServeOnce,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AnonymousOwnerUserId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.TempContent]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.TempContent]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.TempContent].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.TempContent -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$owner,$dataLocation,$blobId,$size,$fileName,$staticContentDataType,$logicalPath,$externalPath,$cachePolicy,$serveOptions,$expirationDate,$serveOnce,$anonymousOwnerUserId
    }

    return $Obj
}

Function New-QSUser{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserDirectoryConnectorName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Roles,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.UserAttribute]]$Attributes = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.UserAttribute]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Inactive,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$RemovedExternally,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Blacklisted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DeleteProhibited,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Guid[]]$Favorites,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.User]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.User]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.User].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.User -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$userId,$userDirectory,$userDirectoryConnectorName,$name,$roles,$attributes,$inactive,$removedExternally,$blacklisted,$deleteProhibited,$tags,$favorites
    }

    return $Obj
}

Function New-QSUserAttribute{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AttributeType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AttributeValue,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ExternalId,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserAttribute]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserAttribute]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserAttribute].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserAttribute -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$attributeType,$attributeValue,$externalId
    }

    return $Obj
}

Function New-QSUserCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserDirectoryConnectorName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserCondensed -ArgumentList $id,$privileges,$userId,$userDirectory,$userDirectoryConnectorName,$name
    }

    return $Obj
}

Function New-QSUserDirectory{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserDirectoryName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Configured,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Operational,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$SyncOnlyLoggedInUsers,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SyncStatusEnum]$SyncStatus,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$SyncLastStarted,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$SyncLastSuccessfulEnded,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ConfiguredError,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OperationalError,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.UserDirectorySettings]]$Settings = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.UserDirectorySettings]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.CreationTypeEnum]$CreationType,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserDirectory]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserDirectory]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserDirectory].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserDirectory -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$name,$userDirectoryName,$configured,$operational,$type,$syncOnlyLoggedInUsers,$syncStatus,$syncLastStarted,$syncLastSuccessfulEnded,$configuredError,$operationalError,$settings,$tags,$creationType
    }

    return $Obj
}

Function New-QSUserDirectoryCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserDirectoryCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserDirectoryCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserDirectoryCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserDirectoryCondensed -ArgumentList $id,$privileges,$name,$type
    }

    return $Obj
}

Function New-QSUserDirectorySettings{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Category,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserDirectorySettingTypeEnum]$UserDirectorySettingType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Secret,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Value,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SecretValue,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserDirectorySettings]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserDirectorySettings]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserDirectorySettings].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserDirectorySettings -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$name,$category,$userDirectorySettingType,$secret,$value,$secretValue
    }

    return $Obj
}

Function New-QSUserInput{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Type,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$SelectionSetID,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SecurityActions]$Actions,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$Limit,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$UserFilter,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserInput]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserInput]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserInput].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserInput -ArgumentList $schemaPath,$type,$selectionSetID,$actions,$limit,$userFilter
    }

    return $Obj
}

Function New-QSUserSyncTask{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskTypeEnum]$TaskType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TaskSessionTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxRetries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserDirectoryCondensed]$UserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserSyncTaskOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserSyncTask]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserSyncTask]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserSyncTask].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserSyncTask -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$name,$taskType,$enabled,$taskSessionTimeout,$maxRetries,$tags,$userDirectory,$operational
    }

    return $Obj
}

Function New-QSUserSyncTaskCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Name,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.TaskTypeEnum]$TaskType,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$Enabled,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$TaskSessionTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$MaxRetries,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.UserSyncTaskOperationalCondensed]$Operational,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserSyncTaskCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserSyncTaskCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserSyncTaskCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserSyncTaskCondensed -ArgumentList $id,$privileges,$name,$taskType,$enabled,$taskSessionTimeout,$maxRetries,$operational
    }

    return $Obj
}

Function New-QSUserSyncTaskOperational{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$LastExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserSyncTaskOperational]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserSyncTaskOperational]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserSyncTaskOperational].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserSyncTaskOperational -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$lastExecutionResult,$nextExecution
    }

    return $Obj
}

Function New-QSUserSyncTaskOperationalCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.ExecutionResultCondensed]$LastExecutionResult,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$NextExecution,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.UserSyncTaskOperationalCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.UserSyncTaskOperationalCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.UserSyncTaskOperationalCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.UserSyncTaskOperationalCondensed -ArgumentList $id,$privileges,$lastExecutionResult,$nextExecution
    }

    return $Obj
}

Function New-QSVirtualProxyConfig{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]]$CustomProperties = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.CustomPropertyValue]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Prefix,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AuthenticationModuleRedirectUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionModuleBaseUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LoadBalancingModuleBaseUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$UseStickyLoadBalancing,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeConfigurationCondensed]]$LoadBalancingServerNodes = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeConfigurationCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuthenticationMethodEnum]$AuthenticationMethod,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.HeaderAuthenticationModeEnum]$HeaderAuthenticationMode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HeaderAuthenticationHeaderName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HeaderAuthenticationStaticUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HeaderAuthenticationDynamicUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AnonymousAccessModeEnum]$AnonymousAccessMode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$WindowsAuthenticationEnabledDevicePattern,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionCookieHeaderName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionCookieDomain,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$HasSecureAttributeHttps,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SameSiteAttributeHttpsEnum]$SameSiteAttributeHttps,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$HasSecureAttributeHttp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SameSiteAttributeHttpEnum]$SameSiteAttributeHttp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AdditionalResponseHeaders,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$SessionInactivityTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ExtendedSecurityEnvironment,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$WebsocketCrossOriginWhiteList,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DefaultVirtualProxy,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlMetadataIdP,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlHostUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlEntityId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlAttributeUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlAttributeUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SamlAttributeSigningAlgorithmEnum]$SamlAttributeSigningAlgorithm,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem]]$SamlAttributeMap = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAttributeUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAttributeUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAudience,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtPublicKeyCertificate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem]]$JwtAttributeMap = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MagicLinkHostUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MagicLinkFriendlyName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$SamlSlo,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DisableOidcOptionalAttributesParsing,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcConfigurationEndpointUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcClientId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcClientSecret,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcRealm,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeSub,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeGroups,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeEmail,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeClientId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributePicture,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcScope,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem]]$OidcAttributeMap = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.VirtualProxyConfig]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.VirtualProxyConfig]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.VirtualProxyConfig].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.VirtualProxyConfig -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$privileges,$customProperties,$prefix,$description,$authenticationModuleRedirectUri,$sessionModuleBaseUri,$loadBalancingModuleBaseUri,$useStickyLoadBalancing,$loadBalancingServerNodes,$authenticationMethod,$headerAuthenticationMode,$headerAuthenticationHeaderName,$headerAuthenticationStaticUserDirectory,$headerAuthenticationDynamicUserDirectory,$anonymousAccessMode,$windowsAuthenticationEnabledDevicePattern,$sessionCookieHeaderName,$sessionCookieDomain,$hasSecureAttributeHttps,$sameSiteAttributeHttps,$hasSecureAttributeHttp,$sameSiteAttributeHttp,$additionalResponseHeaders,$sessionInactivityTimeout,$extendedSecurityEnvironment,$websocketCrossOriginWhiteList,$defaultVirtualProxy,$tags,$samlMetadataIdP,$samlHostUri,$samlEntityId,$samlAttributeUserId,$samlAttributeUserDirectory,$samlAttributeSigningAlgorithm,$samlAttributeMap,$jwtAttributeUserId,$jwtAttributeUserDirectory,$jwtAudience,$jwtPublicKeyCertificate,$jwtAttributeMap,$magicLinkHostUri,$magicLinkFriendlyName,$samlSlo,$disableOidcOptionalAttributesParsing,$oidcConfigurationEndpointUri,$oidcClientId,$oidcClientSecret,$oidcRealm,$oidcAttributeSub,$oidcAttributeName,$oidcAttributeGroups,$oidcAttributeEmail,$oidcAttributeClientId,$oidcAttributePicture,$oidcScope,$oidcAttributeMap
    }

    return $Obj
}

Function New-QSVirtualProxyConfigCondensed{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$Privileges,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Prefix,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$Description,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AuthenticationModuleRedirectUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionModuleBaseUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$LoadBalancingModuleBaseUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$UseStickyLoadBalancing,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeConfigurationCondensed]]$LoadBalancingServerNodes = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.ServerNodeConfigurationCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AuthenticationMethodEnum]$AuthenticationMethod,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.HeaderAuthenticationModeEnum]$HeaderAuthenticationMode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HeaderAuthenticationHeaderName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HeaderAuthenticationStaticUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$HeaderAuthenticationDynamicUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.AnonymousAccessModeEnum]$AnonymousAccessMode,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$WindowsAuthenticationEnabledDevicePattern,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionCookieHeaderName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SessionCookieDomain,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$HasSecureAttributeHttps,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SameSiteAttributeHttpsEnum]$SameSiteAttributeHttps,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$HasSecureAttributeHttp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SameSiteAttributeHttpEnum]$SameSiteAttributeHttp,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$AdditionalResponseHeaders,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Int32]$SessionInactivityTimeout,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$ExtendedSecurityEnvironment,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String[]]$WebsocketCrossOriginWhiteList,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DefaultVirtualProxy,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]]$Tags = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.TagCondensed]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlMetadataIdP,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlHostUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlEntityId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlAttributeUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlAttributeUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [QlikSenseCLI.Model.SamlAttributeSigningAlgorithmEnum]$SamlAttributeSigningAlgorithm,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem]]$SamlAttributeMap = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAttributeUserId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAttributeUserDirectory,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAudience,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtPublicKeyCertificate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem]]$JwtAttributeMap = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem]),
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MagicLinkHostUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$MagicLinkFriendlyName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$SamlSlo,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$DisableOidcOptionalAttributesParsing,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcConfigurationEndpointUri,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcClientId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcClientSecret,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcRealm,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeSub,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeGroups,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeEmail,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributeClientId,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttributePicture,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcScope,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem]]$OidcAttributeMap = $(New-Object System.Collections.Generic.List[QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem]),
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.VirtualProxyConfigCondensed]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.VirtualProxyConfigCondensed]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.VirtualProxyConfigCondensed].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.VirtualProxyConfigCondensed -ArgumentList $id,$privileges,$prefix,$description,$authenticationModuleRedirectUri,$sessionModuleBaseUri,$loadBalancingModuleBaseUri,$useStickyLoadBalancing,$loadBalancingServerNodes,$authenticationMethod,$headerAuthenticationMode,$headerAuthenticationHeaderName,$headerAuthenticationStaticUserDirectory,$headerAuthenticationDynamicUserDirectory,$anonymousAccessMode,$windowsAuthenticationEnabledDevicePattern,$sessionCookieHeaderName,$sessionCookieDomain,$hasSecureAttributeHttps,$sameSiteAttributeHttps,$hasSecureAttributeHttp,$sameSiteAttributeHttp,$additionalResponseHeaders,$sessionInactivityTimeout,$extendedSecurityEnvironment,$websocketCrossOriginWhiteList,$defaultVirtualProxy,$tags,$samlMetadataIdP,$samlHostUri,$samlEntityId,$samlAttributeUserId,$samlAttributeUserDirectory,$samlAttributeSigningAlgorithm,$samlAttributeMap,$jwtAttributeUserId,$jwtAttributeUserDirectory,$jwtAudience,$jwtPublicKeyCertificate,$jwtAttributeMap,$magicLinkHostUri,$magicLinkFriendlyName,$samlSlo,$disableOidcOptionalAttributesParsing,$oidcConfigurationEndpointUri,$oidcClientId,$oidcClientSecret,$oidcRealm,$oidcAttributeSub,$oidcAttributeName,$oidcAttributeGroups,$oidcAttributeEmail,$oidcAttributeClientId,$oidcAttributePicture,$oidcScope,$oidcAttributeMap
    }

    return $Obj
}

Function New-QSVirtualProxyConfigJwtAttributeMapItem{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$JwtAttribute,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SenseAttribute,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsMandatory,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.VirtualProxyConfigJwtAttributeMapItem -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$jwtAttribute,$senseAttribute,$isMandatory
    }

    return $Obj
}

Function New-QSVirtualProxyConfigOidcAttributeMapItem{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$OidcAttribute,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SenseAttribute,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsMandatory,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.VirtualProxyConfigOidcAttributeMapItem -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$oidcAttribute,$senseAttribute,$isMandatory
    }

    return $Obj
}

Function New-QSVirtualProxyConfigSamlAttributeMapItem{
    [CmdletBinding(DefaultParameterSetName = 'Default')]
    param
    (
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [Guid]$Id,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$CreatedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [DateTime]$ModifiedDate,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$ModifiedByUserName,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SchemaPath,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SamlAttribute,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [String]$SenseAttribute,
        [Parameter(ParameterSetName = 'Default')]
        [Parameter(ParameterSetName = 'InputObject')]
        [Parameter(ParameterSetName = 'Json')]
        [bool]$IsMandatory,
        [Parameter(ParameterSetName = 'Json', Mandatory = $true, ValueFromPipeline = $true)]
        [string]$Json,
        [Parameter(ParameterSetName = 'InputObject', Mandatory = $true, ValueFromPipeline = $true)]
        [QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem]$InputObject
    )

    if ($PSBoundParameters.ContainsKey("Json") -or $PSBoundParameters.ContainsKey("InputObject"))
    {
        if ($PSBoundParameters.ContainsKey("Json"))
        {
            $Obj = [QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem]::FromJson($Json)
        }
        else
        {
            $Obj = $InputObject
        }
        $Keys = $PSBoundParameters.Keys|Where-Object{$_ -in [QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem].DeclaredProperties.Name}
        foreach($Key in $Keys){
            $Obj.$Key = $PSBoundParameters.$Key
        }
        
    }else{
        $Obj = New-Object QlikSenseCLI.Model.VirtualProxyConfigSamlAttributeMapItem -ArgumentList $id,$createdDate,$modifiedDate,$modifiedByUserName,$schemaPath,$samlAttribute,$senseAttribute,$isMandatory
    }

    return $Obj
}


# SIG # Begin signature block
# MIIjYwYJKoZIhvcNAQcCoIIjVDCCI1ACAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUI7HiZ94wWw0/RugUWBxF9wFX
# oVqggh2JMIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0B
# AQsFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
# VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk
# IElEIFJvb3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQsw
# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
# ZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQg
# Q29kZSBTaWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
# +NOzHH8OEa9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ
# 1DcZ17aq8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0
# sSgmuyRpwsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6s
# cKKrzn/pfMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4Tz
# rGdOtcT3jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg
# 0A9kczyen6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIB
# ADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUH
# AQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYI
# KwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFz
# c3VyZWRJRFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0
# LmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaG
# NGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RD
# QS5jcmwwTwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0
# dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYE
# FFrEuXsqCqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6en
# IZ3zbcgPMA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06
# GsTvMGHXfgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5j
# DhNLrddfRHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgC
# PC6Ro8AlEeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIy
# sjaKJAL+L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4Gb
# T8aTEAb8B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHvMIIFSjCC
# BDKgAwIBAgIQB38QKBeqiI8co2ATwj0vNTANBgkqhkiG9w0BAQsFADByMQswCQYD
# VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGln
# aWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29k
# ZSBTaWduaW5nIENBMB4XDTIxMDQwOTAwMDAwMFoXDTI0MDYwNDIzNTk1OVowgYcx
# CzAJBgNVBAYTAlNFMRQwEgYDVQQIDAtTa8OlbmUgbMOkbjENMAsGA1UEBxMETHVu
# ZDEiMCAGA1UEChMZUWxpa1RlY2ggSW50ZXJuYXRpb25hbCBBQjELMAkGA1UECxMC
# SVQxIjAgBgNVBAMTGVFsaWtUZWNoIEludGVybmF0aW9uYWwgQUIwggEiMA0GCSqG
# SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDYyGPBrXt3ZdTWJojPlexTeThI36L55FR3
# Fd7TJi9UfXn8J2lvp586Emth1PW4k8jGYwsgcP7D4nmJs3PSc+IR505y4So1Cz7c
# Dunut2KZgI/45kjnlv2Q0QwtdiAD9boxlgBLFVUBoQwGMveiDQuuW0JKhNJmQwC+
# 1GQQzuTzUIPbL4BdXHvFOLT0NYbDFTJ/KwDzsKOUiDORVDXu5fFOSUZAE7GYo2QT
# Tuf0HGKk6rkYg44gBRi+SPaz3G4oq689zT0Ity/mJnE4kpuY3pAdzVgBhSQpx3Ug
# 8xZemjSRg+GE7XjL6UilZhnzriVe6YoriNcEWUvOfcgVXRCUsrftAgMBAAGjggHE
# MIIBwDAfBgNVHSMEGDAWgBRaxLl7KgqjpepxA8Bg+S32ZXUOWDAdBgNVHQ4EFgQU
# VUZGnvW/GX8LG+meOrL2+19n2qwwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoG
# CCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGGL2h0dHA6Ly9jcmwzLmRpZ2ljZXJ0
# LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMDWgM6Axhi9odHRwOi8vY3JsNC5k
# aWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNybDBLBgNVHSAERDBCMDYG
# CWCGSAGG/WwDATApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNv
# bS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYwJAYIKwYBBQUHMAGGGGh0
# dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcwAoZCaHR0cDovL2NhY2Vy
# dHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRENvZGVTaWduaW5n
# Q0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAIaAO83KHzZ9
# HfClJfSidE11Oy7hb1ukkGjRGa81y1xqGuyZhEamvNVKhMmIcc20l5pS2KTaoFnj
# n10ZLsgpmRXZYsFzgtyO+V+pPKqf2jCqzbrK5ewkltgAqQUS+laopD22jSA97vyG
# pI6haJooe5+n62OLl59Y4AhrBP8zvKSHIDNhzBjV9IDybSsNk5cAbs84FXqP6L2q
# afG3II5n8MGQXfhFaT9V7k/IzpNfo060xddwOUYbIq9wS5vIX13WnEuX2OcjQyn5
# ZW5EGDDVx5hFVoZzclTBpyrmHPAw+XbwQxHxp9cVtdtoelt/mTfAJ40aHhDlrDXA
# aiLVEDvTw18wggWNMIIEdaADAgECAhAOmxiO+dAt5+/bUOIIQBhaMA0GCSqGSIb3
# DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAX
# BgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lDZXJ0IEFzc3Vy
# ZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBaFw0zMTExMDkyMzU5NTlaMGIx
# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
# dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBH
# NDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL/mkHNo3rvkXUo8MCIw
# aTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3EMB/zG6Q4FutWxpdtHauyefLK
# EdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKyunWZanMylNEQRBAu34LzB4Tm
# dDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsFxl7sWxq868nPzaw0QF+xembu
# d8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU15zHL2pNe3I6PgNq2kZhAkHnD
# eMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJBMtfbBHMqbpEBfCFM1LyuGwN1
# XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObURWBf3JFxGj2T3wWmIdph2PVld
# QnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6nj3cAORFJYm2mkQZK37AlLTS
# YW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxBYKqxYxhElRp2Yn72gLD76GSm
# M9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5SUUd0viastkF13nqsX40/ybzT
# QRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+xq4aLT8LWRV+dIPyhHsXAj6Kx
# fgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIBNjAPBgNVHRMBAf8EBTADAQH/
# MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwPTzAfBgNVHSMEGDAWgBRF66Kv
# 9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMCAYYweQYIKwYBBQUHAQEEbTBr
# MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
# MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
# RFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNl
# cnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAECjAIMAYG
# BFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0NcVec4X6CjdBs9thbX979XB72a
# rKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnovLbc47/T/gLn4offyct4kvFID
# yE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65ZyoUi0mcudT6cGAxN3J0TU53/o
# Wajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFWjuyk1T3osdz9HNj0d1pcVIxv
# 76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPFmCLBsln1VWvPJ6tsds5vIy30
# fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9ztwGpn1eqXijiuZQwggauMIIE
# lqADAgECAhAHNje3JFR82Ees/ShmKl5bMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
# BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
# Y2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0y
# MjAzMjMwMDAwMDBaFw0zNzAzMjIyMzU5NTlaMGMxCzAJBgNVBAYTAlVTMRcwFQYD
# VQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBH
# NCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0EwggIiMA0GCSqGSIb3DQEB
# AQUAA4ICDwAwggIKAoICAQDGhjUGSbPBPXJJUVXHJQPE8pE3qZdRodbSg9GeTKJt
# oLDMg/la9hGhRBVCX6SI82j6ffOciQt/nR+eDzMfUBMLJnOWbfhXqAJ9/UO0hNoR
# 8XOxs+4rgISKIhjf69o9xBd/qxkrPkLcZ47qUT3w1lbU5ygt69OxtXXnHwZljZQp
# 09nsad/ZkIdGAHvbREGJ3HxqV3rwN3mfXazL6IRktFLydkf3YYMZ3V+0VAshaG43
# IbtArF+y3kp9zvU5EmfvDqVjbOSmxR3NNg1c1eYbqMFkdECnwHLFuk4fsbVYTXn+
# 149zk6wsOeKlSNbwsDETqVcplicu9Yemj052FVUmcJgmf6AaRyBD40NjgHt1bicl
# kJg6OBGz9vae5jtb7IHeIhTZgirHkr+g3uM+onP65x9abJTyUpURK1h0QCirc0PO
# 30qhHGs4xSnzyqqWc0Jon7ZGs506o9UD4L/wojzKQtwYSH8UNM/STKvvmz3+Drhk
# Kvp1KCRB7UK/BZxmSVJQ9FHzNklNiyDSLFc1eSuo80VgvCONWPfcYd6T/jnA+bIw
# pUzX6ZhKWD7TA4j+s4/TXkt2ElGTyYwMO1uKIqjBJgj5FBASA31fI7tk42PgpuE+
# 9sJ0sj8eCXbsq11GdeJgo1gJASgADoRU7s7pXcheMBK9Rp6103a50g5rmQzSM7TN
# sQIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUuhbZ
# bU2FL3MpdpovdYxqII+eyG8wHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4c
# D08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMIMHcGCCsGAQUF
# BwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEG
# CCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRU
# cnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5k
# aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNybDAgBgNVHSAEGTAX
# MAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJKoZIhvcNAQELBQADggIBAH1ZjsCT
# tm+YqUQiAX5m1tghQuGwGC4QTRPPMFPOvxj7x1Bd4ksp+3CKDaopafxpwc8dB+k+
# YMjYC+VcW9dth/qEICU0MWfNthKWb8RQTGIdDAiCqBa9qVbPFXONASIlzpVpP0d3
# +3J0FNf/q0+KLHqrhc1DX+1gtqpPkWaeLJ7giqzl/Yy8ZCaHbJK9nXzQcAp876i8
# dU+6WvepELJd6f8oVInw1YpxdmXazPByoyP6wCeCRK6ZJxurJB4mwbfeKuv2nrF5
# mYGjVoarCkXJ38SNoOeY+/umnXKvxMfBwWpx2cYTgAnEtp/Nh4cku0+jSbl3ZpHx
# cpzpSwJSpzd+k1OsOx0ISQ+UzTl63f8lY5knLD0/a6fxZsNBzU+2QJshIUDQtxMk
# zdwdeDrknq3lNHGS1yZr5Dhzq6YBT70/O3itTK37xJV77QpfMzmHQXh6OOmc4d0j
# /R0o08f56PGYX/sr2H7yRp11LB4nLCbbbxV7HhmLNriT1ObyF5lZynDwN7+YAN8g
# Fk8n+2BnFqFmut1VwDophrCYoCvtlUG3OtUVmDG0YgkPCr2B2RP+v6TR81fZvAT6
# gt4y3wSJ8ADNXcL50CN/AAvkdgIm2fBldkKmKYcJRyvmfxqkhQ/8mJb2VVQrH4D6
# wPIOK+XW+6kvRBVK5xMOHds3OBqhK/bt1nz8MIIGwDCCBKigAwIBAgIQDE1pckuU
# +jwqSj0pB4A9WjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzEXMBUGA1UE
# ChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQg
# UlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMB4XDTIyMDkyMTAwMDAwMFoX
# DTMzMTEyMTIzNTk1OVowRjELMAkGA1UEBhMCVVMxETAPBgNVBAoTCERpZ2lDZXJ0
# MSQwIgYDVQQDExtEaWdpQ2VydCBUaW1lc3RhbXAgMjAyMiAtIDIwggIiMA0GCSqG
# SIb3DQEBAQUAA4ICDwAwggIKAoICAQDP7KUmOsap8mu7jcENmtuh6BSFdDMaJqzQ
# HFUeHjZtvJJVDGH0nQl3PRWWCC9rZKT9BoMW15GSOBwxApb7crGXOlWvM+xhiumm
# KNuQY1y9iVPgOi2Mh0KuJqTku3h4uXoW4VbGwLpkU7sqFudQSLuIaQyIxvG+4C99
# O7HKU41Agx7ny3JJKB5MgB6FVueF7fJhvKo6B332q27lZt3iXPUv7Y3UTZWEaOOA
# y2p50dIQkUYp6z4m8rSMzUy5Zsi7qlA4DeWMlF0ZWr/1e0BubxaompyVR4aFeT4M
# XmaMGgokvpyq0py2909ueMQoP6McD1AGN7oI2TWmtR7aeFgdOej4TJEQln5N4d3C
# raV++C0bH+wrRhijGfY59/XBT3EuiQMRoku7mL/6T+R7Nu8GRORV/zbq5Xwx5/PC
# UsTmFntafqUlc9vAapkhLWPlWfVNL5AfJ7fSqxTlOGaHUQhr+1NDOdBk+lbP4PQK
# 5hRtZHi7mP2Uw3Mh8y/CLiDXgazT8QfU4b3ZXUtuMZQpi+ZBpGWUwFjl5S4pkKa3
# YWT62SBsGFFguqaBDwklU/G/O+mrBw5qBzliGcnWhX8T2Y15z2LF7OF7ucxnEwea
# wXjtxojIsG4yeccLWYONxu71LHx7jstkifGxxLjnU15fVdJ9GSlZA076XepFcxyE
# ftfO4tQ6dwIDAQABo4IBizCCAYcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQC
# MAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwIAYDVR0gBBkwFzAIBgZngQwBBAIw
# CwYJYIZIAYb9bAcBMB8GA1UdIwQYMBaAFLoW2W1NhS9zKXaaL3WMaiCPnshvMB0G
# A1UdDgQWBBRiit7QYfyPMRTtlwvNPSqUFN9SnDBaBgNVHR8EUzBRME+gTaBLhklo
# dHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0MDk2
# U0hBMjU2VGltZVN0YW1waW5nQ0EuY3JsMIGQBggrBgEFBQcBAQSBgzCBgDAkBggr
# BgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFgGCCsGAQUFBzAChkxo
# dHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0
# MDk2U0hBMjU2VGltZVN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBV
# qioa80bzeFc3MPx140/WhSPx/PmVOZsl5vdyipjDd9Rk/BX7NsJJUSx4iGNVCUY5
# APxp1MqbKfujP8DJAJsTHbCYidx48s18hc1Tna9i4mFmoxQqRYdKmEIrUPwbtZ4I
# MAn65C3XCYl5+QnmiM59G7hqopvBU2AJ6KO4ndetHxy47JhB8PYOgPvk/9+dEKfr
# ALpfSo8aOlK06r8JSRU1NlmaD1TSsht/fl4JrXZUinRtytIFZyt26/+YsiaVOBmI
# RBTlClmia+ciPkQh0j8cwJvtfEiy2JIMkU88ZpSvXQJT657inuTTH4YBZJwAwula
# dHUNPeF5iL8cAZfJGSOA1zZaX5YWsWMMxkZAO85dNdRZPkOaGK7DycvD+5sTX2q1
# x+DzBcNZ3ydiK95ByVO5/zQQZ/YmMph7/lxClIGUgp2sCovGSxVK05iQRWAzgOAj
# 3vgDpPZFR+XOuANCR+hBNnF3rf2i6Jd0Ti7aHh2MWsgemtXC8MYiqE+bvdgcmlHE
# L5r2X6cnl7qWLoVXwGDneFZ/au/ClZpLEQLIgpzJGgV8unG1TnqZbPTontRamMif
# v427GFxD9dAq6OJi7ngE273R+1sKqHB+8JeEeOMIA11HLGOoJTiXAdI/Otrl5fbm
# m9x+LMz/F0xNAKLY1gEOuIvu5uByVYksJxlh9ncBjDGCBUQwggVAAgEBMIGGMHIx
# CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3
# dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJ
# RCBDb2RlIFNpZ25pbmcgQ0ECEAd/ECgXqoiPHKNgE8I9LzUwCQYFKw4DAhoFAKBw
# MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwG
# CisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBRBZl06
# g8Hxi0agTJQrYCBhwyUuYDANBgkqhkiG9w0BAQEFAASCAQBFAqcY5Ho3UStl+9Xr
# SrfBxtFGgvkf6B742XmG/dZWulVKBAd6u0hi3bFqX/03I5Tq8tbXV9eeHrNr+ZPs
# iXgXfYWqoAB1b0+sEnYGMtWloh+/ymTMUsWkj5unuwLQ6rzfCmyqyduDYapD/m1f
# DPWzzyq1KmUc/SPF9JR+nMUkRtORyH5DJSHVrI2tZ0Ho5fZmMImz+evN76oKP/3a
# kbb/K7lS4lCNALLD7uqvMQfmfneGWW1Naf3JrxxC1hhTHp1xMmVfo9bNC1MJHyli
# iiFC+nMkBG4SeCPSWVjReoA/Z+rNSGln2AQ3u41GiXlHgy1tKWAvaDOy7+Kd9dvc
# dtUCoYIDIDCCAxwGCSqGSIb3DQEJBjGCAw0wggMJAgEBMHcwYzELMAkGA1UEBhMC
# VVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBU
# cnVzdGVkIEc0IFJTQTQwOTYgU0hBMjU2IFRpbWVTdGFtcGluZyBDQQIQDE1pckuU
# +jwqSj0pB4A9WjANBglghkgBZQMEAgEFAKBpMBgGCSqGSIb3DQEJAzELBgkqhkiG
# 9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIyMTIyMjAyMzg0MlowLwYJKoZIhvcNAQkE
# MSIEIFKUyh/xTFD11FqWOYKB14A19tKWVU8kM88BndzrA8L9MA0GCSqGSIb3DQEB
# AQUABIICADZdvEU3DuHW1Dr5LVRlYag72KOq1Hp6c5rLF99w4GjnDlHPUcuDtvy1
# MoG1U82bUZDvyYNeder1QZyRHgZIno2ocjq3oajOhBgFu9YYMarxZT8Fr7MSIJ7Z
# Lg6ntfLr6izquPiheTWMqgLVyawsweZ5ymjkDInRa/lE1kIYNpYsVTvOdY43Grkr
# EElsZ6Aaeyra13JWoez6PMtn5wJAN+jH4WKuqdJ7nGrbAeNYB9k9O6+GnHdLKo61
# M+xPqL6/mfzjbo3Co5KdmLEoOGzb/KzKa6vsk6vQCKSw5ZTYIJhv3L/H4rbxqyOo
# 5T6k/4Gp7iU9a1uH3+N4u9ritMop603SRQKHcPArc1a+q4YAeTOQFdVza+7Jr6VF
# p2kDar5CNIsXBZQw7eZU5T7LXXHuhknQiAZQtO/vnecdhThRxzAw8jXpH1GX3KUT
# igmZKpqo28uwrRK1130Sa0qyzSlOmzsH6o45khE9w8hHBhygeKefSUbvdDUzf3Gv
# yiVtrWkqVkUasCwbU7Wbnf0s7855RRUdnRFgzgEFTRZPWzLIc7zdRRtWy7XSTgZe
# PDevtkjQqSOSqBsLh5nJZOWvuvW9tn69XOwBJNC9rCTeTQ/vBXgq+mvvSs8Tixd4
# IlfQbiNsKz5oDdsbKOzMWtB1dO8gXakWno2keoCQU8eRBKYPGTMv
# SIG # End signature block