exports/Update-SysManApplication.ps1

<#
.Synopsis
Partially updates an existing Application. Does not require all attributes to be set. Note that only attribute not present in the payload will be ignored. Note: Attributes with null values will be treated as attribute assignments.
.Description
Partially updates an existing Application. Does not require all attributes to be set. Note that only attribute not present in the payload will be ignored. Note: Attributes with null values will be treated as attribute assignments.
.Link
https://docs.microsoft.com/en-us/powershell/module/sysman.webapi/update-sysmanapplication
#>

function Update-SysManApplication {
[OutputType('SysMan.Powershell.Models.IApplication', 'SysMan.Powershell.Models.IApiErrorMessage')]
[CmdletBinding(DefaultParameterSetName='Patch', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[SysMan.Powershell.Description('Partially updates an existing Application. Does not require all attributes to be set. Note that only attribute not present in the payload will be ignored. Note: Attributes with null values will be treated as attribute assignments.')]
param(
    [Parameter(Mandatory, HelpMessage='The id of the Application')]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    ${Id},

    [Parameter(ParameterSetName='Patch', ValueFromPipeline, HelpMessage='Patches an existing application')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IBodyParameterApplicationPatchRequestBody]
    ${Cmd},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The target deployment configurations')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IApplicationDeploymentConfiguration[]]
    ${DeploymentConfigurations},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The description')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${Description},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='General message')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${GeneralMessage},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='Describes if the Application has a general message')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${HasGeneralMessage},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The application requires a license when installed')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${HasLicense},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='A description over the requierd license')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${LicenseDescription},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The name')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${Name},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='If the application is installed on a client before the OS was redeployed the application should be installed againautomatically')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${ReinstallOnDeployment},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='If the general message should be visible when the application is installed')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${ShowGeneralMessageOnInstallation},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='If the general message should be visible when the application is uninstalled')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${ShowGeneralMessageOnUninstallation},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='If the license description should be visible when the application is installed')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${ShowLicenseDescriptionOnInstallation},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='If the license description should be visible when the application is uninstalled')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${ShowLicenseDescriptionOnUninstallation},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The version the Application has')]
    [SysMan.Powershell.Category('Body')]
    [System.String]
    ${Version},

    [Parameter(DontShow, HelpMessage='Wait for .NET debugger to attach')]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    ${Break},

    [Parameter(DontShow, HelpMessage='SendAsync Pipeline Steps to be appended to the front of the pipeline')]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    ${HttpPipelineAppend},

    [Parameter(DontShow, HelpMessage='SendAsync Pipeline Steps to be prepended to the front of the pipeline')]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [SysMan.Powershell.Runtime.SendAsyncStep[]]
    ${HttpPipelinePrepend},

    [Parameter(DontShow, HelpMessage='The URI for the proxy server to use')]
    [SysMan.Powershell.Category('Runtime')]
    [System.Uri]
    ${Proxy},

    [Parameter(DontShow, HelpMessage='Credentials for a proxy server to use for the remote call')]
    [ValidateNotNull()]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.PSCredential]
    ${ProxyCredential},

    [Parameter(DontShow, HelpMessage='Use the default credentials for the proxy')]
    [SysMan.Powershell.Category('Runtime')]
    [System.Management.Automation.SwitchParameter]
    ${ProxyUseDefaultCredentials}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PsCmdlet.ParameterSetName
        $mapping = @{
            Patch = 'SysMan.WebApi.private\Update-SysManApplication_Patch';
            PatchExpanded = 'SysMan.WebApi.private\Update-SysManApplication_PatchExpanded';
        }
        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($myInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {
        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {
        throw
    }
}

end {
    try {
        $steppablePipeline.End()
    } catch {
        throw
    }
}
}