Private/Set-ADCMonitorToService.ps1

function Set-ADCMonitorToService {
    <#
.SYNOPSIS
    Sets (Binds) a Monitor to a Load Balancing Service.
.DESCRIPTION
    Sets (Binds) a Monitor to a Load Balancing Service.
.PARAMETER Session
    The Citrix ADC Session to execute the function against.
.PARAMETER ServiceName
    The Load Balancing Service Name.
.PARAMETER MonitorName
    The Monitor to bind to the Load Balancing Service.
.NOTES
    Creation Date: 20/06/2018
.CHANGE CONTROL
    Name Version Date Change Detail
    David Brett 1.0 29/03/2018 Function Creation
.EXAMPLE
    Set-ADCMonitorToService -ServiceName "svc_citrix_storefront_443" -MonitorName "mon_citrix_storefront_443" -Verbose
#>


    [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'Medium')]
    Param (
        $Session = $script:session,
        [parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName)]
        [string[]]$ServiceName = (Read-Host -Prompt 'Enter Service Name'),
        [string[]]$MonitorName = (Read-Host -Prompt 'Enter Monitor Name')
    )

    begin {
        $PayLoad = @{
            name         = "$ServiceName"
            monitor_name = "$MonitorName"
        }
    }

    process {
        try {
            if ($Force -or $PSCmdlet.ShouldProcess("ShouldProcess?")) {
                Invoke-ADCRestAPI -Session $Session -Method POST -Type "service_lbmonitor_binding" -Payload $PayLoad -Action Add
                write-verbose "Monitor ($MonitorName) bound to Service ($ServiceName)"
            }
        }
        catch {
            write-verbose "Monitor ($MonitorName) could not be bound to Service ($ServiceName)" 
        }
    }

    end {
    }

}