exports/Update-SysManDeploymentRole.ps1

<#
.Synopsis
Partially updates an existing Deployment Role. 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 Deployment Role. 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-sysmandeploymentrole
#>

function Update-SysManDeploymentRole {
[OutputType('SysMan.Powershell.Models.IRoleIdentity', 'SysMan.Powershell.Models.IApiErrorMessage')]
[CmdletBinding(DefaultParameterSetName='Patch', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
[SysMan.Powershell.Description('Partially updates an existing Deployment Role. 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 Deployment Role')]
    [SysMan.Powershell.Category('Path')]
    [System.Int64]
    ${Id},

    [Parameter(ParameterSetName='Patch', ValueFromPipeline, HelpMessage='Partial update of deployment role')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IBodyParameterDeploymentRolePatchRequestBody]
    ${Cmd},

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The category id')]
    [SysMan.Powershell.Category('Body')]
    [System.Int64]
    ${CategoryId},

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

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='If the role should be an internal role or not. Internal roles are not visible to users in most services')]
    [SysMan.Powershell.Category('Body')]
    [System.Management.Automation.SwitchParameter]
    ${IsInternal},

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

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

    [Parameter(ParameterSetName='PatchExpanded', HelpMessage='The variable state to save to the role (the variable list will be saved as is, any existing variables that are not part of the list will be removed)')]
    [SysMan.Powershell.Category('Body')]
    [SysMan.Powershell.Models.IRoleVariable[]]
    ${Variables},

    [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-SysManDeploymentRole_Patch';
            PatchExpanded = 'SysMan.WebApi.private\Update-SysManDeploymentRole_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
    }
}
}