Public/Connectors/Set-SIAConnectorMaintenanceMode.ps1

function Set-SIAConnectorMaintenanceMode {
    <#
    .SYNOPSIS
        Sets a SIA connector's maintenance mode.
    .DESCRIPTION
        Calls the Put connector maintenance operation, putting the connector
        into or out of maintenance mode.
    .PARAMETER Id
        The connector's id, as returned by Get-SIAConnector.
    .PARAMETER Maintenance
        Whether the connector should be in maintenance mode.
    .EXAMPLE
        Set-SIAConnectorMaintenanceMode -Id 'CMSConnector_51051e8b' -Maintenance $true

        Puts the specified connector into maintenance mode.
    .EXAMPLE
        Set-SIAConnectorMaintenanceMode -Id 'CMSConnector_51051e8b' -Maintenance $false

        Takes the specified connector out of maintenance mode.
    .INPUTS
        psSIA.Connector
    .OUTPUTS
        psSIA.ConnectorMaintenance
    .LINK
        https://api-docs.cyberark.com/secure-infra-access/docs/sia-connector-api
    #>

    [CmdletBinding(SupportsShouldProcess)]
    [OutputType('psSIA.ConnectorMaintenance')]
    param(
        [Parameter(Mandatory, ValueFromPipelineByPropertyName)]
        [string]$Id,

        [Parameter(Mandatory)]
        [bool]$Maintenance
    )

    process {
        $action = if ($Maintenance) { 'Enter' } else { 'Exit' }
        if ($PSCmdlet.ShouldProcess($Id, "$action connector maintenance mode")) {
            Invoke-SIARequest -Method PUT -Path "/api/connectors/$Id/maintenance" -Body @{ maintenance = $Maintenance } |
                ConvertFrom-SIAResponse -TypeName 'psSIA.ConnectorMaintenance'
        }
    }
}