NetScalerToolkit.Configuration/Public/ns-functions-config-ntp.ps1
|
# Generated NetScalerToolkit Configuration bundle for category 'ntp'. # region Invoke-NSAddNTPServer function Invoke-NSAddNTPServer { <# .SYNOPSIS Creates a NetScaler ntpserver resource. .DESCRIPTION Configuration for NTP server resource. .PARAMETER AutoKey Use the Autokey protocol for key management for this server, with the cryptographic values (for example, symmetric key, host and public certificate files, and sign key) generated by the ntp-keygen utility. To require authentication for communication with the server, you must set either the value of this parameter or the key parameter. .PARAMETER Key Key to use for encrypting authentication fields. All packets sent to and received from the server must include authentication fields encrypted by using this key. To require authentication for communication with the server, you must set either the value of this parameter or the autokey parameter. Minimum value = 1 Maximum value = 65534 .PARAMETER MaxPoll Maximum time after which the NTP server must poll the NTP messages. In seconds, expressed as a power of 2. Minimum value = 4 Maximum value = 17 .PARAMETER MinPoll Minimum time after which the NTP server must poll the NTP messages. In seconds, expressed as a power of 2. Minimum value = 4 Maximum value = 17 .PARAMETER ServerIp IP address of the NTP server. Minimum length = 1 .PARAMETER ServerName Fully qualified domain name of the NTP server. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSAddNTPServer -ServerIp 'example' -PassThru .EXAMPLE Invoke-NSAddNTPServer -ServerIp 'example' -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [bool] $AutoKey, [Parameter()] [int] $Key, [Parameter()] [int] $MaxPoll, [Parameter()] [int] $MinPoll, [Parameter(Position = 0)] [string] $ServerIp, [Parameter()] [string] $ServerName, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('AutoKey')) { $properties['autokey'] = $AutoKey } if ($PSBoundParameters.ContainsKey('Key')) { $properties['key'] = $Key } if ($PSBoundParameters.ContainsKey('MaxPoll')) { $properties['maxpoll'] = $MaxPoll } if ($PSBoundParameters.ContainsKey('MinPoll')) { $properties['minpoll'] = $MinPoll } if ($PSBoundParameters.ContainsKey('ServerIp')) { $properties['serverip'] = $ServerIp } if ($PSBoundParameters.ContainsKey('ServerName')) { $properties['servername'] = $ServerName } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess("$ServerIp", 'Create ntpserver')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type ntpserver -Payload @{ ntpserver = $body } -RawResponse if ($PassThru) { return Invoke-NSGetNTPServer -ServerIp $ServerIp -Session $Session } return $response } } # endregion Invoke-NSAddNTPServer # region Invoke-NSDeleteNTPServer function Invoke-NSDeleteNTPServer { <# .SYNOPSIS Removes a NetScaler ntpserver resource. .DESCRIPTION Configuration for NTP server resource. .PARAMETER ServerIp IP address of the NTP server. Minimum length = 1 .PARAMETER ServerName Fully qualified domain name of the NTP server. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSDeleteNTPServer -ServerIp 'example' -ServerName 'example' -Confirm:$false .EXAMPLE Invoke-NSGetNTPServer -ServerIp 'ntpserver_example' | Invoke-NSDeleteNTPServer -Confirm:$false .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')] param( [Parameter(Mandatory, Position = 0, ValueFromPipelineByPropertyName)] [string] $ServerIp, [Parameter()] [string] $ServerName, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) $argumentParts = @() if ($PSBoundParameters.ContainsKey('ServerName')) { $argumentParts += 'servername:' + $ServerName } if ($argumentParts.Count -gt 0) { $query.args = $argumentParts -join ',' } if ($PSCmdlet.ShouldProcess("$ServerIp", 'Delete ntpserver')) { Invoke-NSRestRequest @transportParameters -Session $Session -Method DELETE -Task config -Type ntpserver -Resource $ServerIp -Query $query -RawResponse } } } # endregion Invoke-NSDeleteNTPServer # region Invoke-NSGetNTPParam function Invoke-NSGetNTPParam { <# .SYNOPSIS Gets NetScaler ntpparam configuration. .DESCRIPTION Configuration for NTP parameter resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetNTPParam .EXAMPLE Invoke-NSGetNTPParam -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'ntpparam' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetNTPParam # region Invoke-NSGetNTPServer function Invoke-NSGetNTPServer { <# .SYNOPSIS Gets NetScaler ntpserver configuration. .DESCRIPTION Configuration for NTP server resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Count Returns only the number of matching resources. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetNTPServer .EXAMPLE Invoke-NSGetNTPServer -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter(ParameterSetName = 'Count')] [switch] $Count, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } if ($Count) { $query.count = 'yes' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'ntpserver' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetNTPServer # region Invoke-NSGetNTPStatus function Invoke-NSGetNTPStatus { <# .SYNOPSIS Gets NetScaler ntpstatus configuration. .DESCRIPTION Configuration for ntp status resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetNTPStatus .EXAMPLE Invoke-NSGetNTPStatus -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'ntpstatus' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetNTPStatus # region Invoke-NSGetNTPSync function Invoke-NSGetNTPSync { <# .SYNOPSIS Gets NetScaler ntpsync configuration. .DESCRIPTION Configuration for NTP sync resource. .PARAMETER ViewSummary Requests the NITRO summary view. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .EXAMPLE Invoke-NSGetNTPSync .EXAMPLE Invoke-NSGetNTPSync -Filter @{ servicetype = 'HTTP' } .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(DefaultParameterSetName = 'All')] param( [Parameter(ParameterSetName = 'All')] [hashtable] $Filter, [Parameter(ParameterSetName = 'All')] [switch] $ViewSummary, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $query = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($Filter) { $query.filter = (($Filter.GetEnumerator() | Sort-Object Name | ForEach-Object { "{0}:{1}" -f $_.Key, $_.Value }) -join ',') } if ($ViewSummary) { $query.view = 'summary' } $request = @{ Session = $Session Method = 'GET' Task = 'config' Type = 'ntpsync' Query = $query } foreach ($key in $transportParameters.Keys) { $request[$key] = $transportParameters[$key] } Invoke-NSRestRequest @request } } # endregion Invoke-NSGetNTPSync # region Invoke-NSUnsetNTPParam function Invoke-NSUnsetNTPParam { <# .SYNOPSIS Clears one or more NetScaler ntpparam resource properties. .DESCRIPTION Configuration for NTP parameter resource. .PARAMETER Authentication Apply NTP authentication, which enables the NTP client (Citrix ADC) to verify that the server is in fact known and trusted. Default value: YES Possible values = YES, NO .PARAMETER AutoKeyLogsec Autokey protocol requires the keys to be refreshed periodically. This parameter specifies the interval between regenerations of new session keys. In seconds, expressed as a power of 2. Default value: 12 Minimum value = 0 Maximum value = 32 .PARAMETER Revokelogsec Interval between re-randomizations of the autokey seeds to prevent brute-force attacks on the autokey algorithms. Default value: 16 Minimum value = 0 Maximum value = 32 .PARAMETER TrustedKey Key identifiers that are trusted for server authentication with symmetric key cryptography in the keys file. Minimum value = 1 Maximum value = 65534 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUnsetNTPParam -Authentication YES -PassThru .EXAMPLE Invoke-NSUnsetNTPParam -Authentication YES -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [ValidateSet('YES', 'NO')] [switch] $Authentication, [Parameter()] [switch] $AutoKeyLogsec, [Parameter()] [switch] $Revokelogsec, [Parameter()] [switch] $TrustedKey, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = @{} if ($PSBoundParameters.ContainsKey('Authentication')) { $body['authentication'] = $true } if ($PSBoundParameters.ContainsKey('AutoKeyLogsec')) { $body['autokeylogsec'] = $true } if ($PSBoundParameters.ContainsKey('Revokelogsec')) { $body['revokelogsec'] = $true } if ($PSBoundParameters.ContainsKey('TrustedKey')) { $body['trustedkey'] = $true } if ($body.Count -le 0) { throw 'Specify at least one property switch to clear.' } if ($PSCmdlet.ShouldProcess('ntpparam', 'Clear ntpparam properties')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type ntpparam -Action unset -Payload @{ ntpparam = $body } -RawResponse return $response } } } # endregion Invoke-NSUnsetNTPParam # region Invoke-NSUnsetNTPServer function Invoke-NSUnsetNTPServer { <# .SYNOPSIS Clears one or more NetScaler ntpserver resource properties. .DESCRIPTION Configuration for NTP server resource. .PARAMETER ServerIp IP address of the NTP server. Minimum length = 1 .PARAMETER AutoKey Use the Autokey protocol for key management for this server, with the cryptographic values (for example, symmetric key, host and public certificate files, and sign key) generated by the ntp-keygen utility. To require authentication for communication with the server, you must set either the value of this parameter or the key parameter. .PARAMETER Key Key to use for encrypting authentication fields. All packets sent to and received from the server must include authentication fields encrypted by using this key. To require authentication for communication with the server, you must set either the value of this parameter or the autokey parameter. Minimum value = 1 Maximum value = 65534 .PARAMETER MaxPoll Maximum time after which the NTP server must poll the NTP messages. In seconds, expressed as a power of 2. Minimum value = 4 Maximum value = 17 .PARAMETER MinPoll Minimum time after which the NTP server must poll the NTP messages. In seconds, expressed as a power of 2. Minimum value = 4 Maximum value = 17 .PARAMETER PreferredNTPServer Preferred NTP server. The Citrix ADC chooses this NTP server for time synchronization among a set of correctly operating hosts. Default value: NO Possible values = YES, NO .PARAMETER ServerName Fully qualified domain name of the NTP server. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUnsetNTPServer -ServerIp 'example' -AutoKey -PassThru .EXAMPLE Invoke-NSUnsetNTPServer -ServerIp 'example' -AutoKey -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter(Mandatory, Position = 0, ValueFromPipelineByPropertyName)] [string] $ServerIp, [Parameter()] [switch] $AutoKey, [Parameter()] [switch] $Key, [Parameter()] [switch] $MaxPoll, [Parameter()] [switch] $MinPoll, [Parameter()] [ValidateSet('YES', 'NO')] [switch] $PreferredNTPServer, [Parameter()] [switch] $ServerName, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) process { $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $body = @{ serverip = $ServerIp } if ($PSBoundParameters.ContainsKey('AutoKey')) { $body['autokey'] = $true } if ($PSBoundParameters.ContainsKey('Key')) { $body['key'] = $true } if ($PSBoundParameters.ContainsKey('MaxPoll')) { $body['maxpoll'] = $true } if ($PSBoundParameters.ContainsKey('MinPoll')) { $body['minpoll'] = $true } if ($PSBoundParameters.ContainsKey('PreferredNTPServer')) { $body['preferredntpserver'] = $true } if ($PSBoundParameters.ContainsKey('ServerName')) { $body['servername'] = $true } if ($body.Count -le 1) { throw 'Specify at least one property switch to clear.' } if ($PSCmdlet.ShouldProcess("$ServerIp", 'Clear ntpserver properties')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method POST -Task config -Type ntpserver -Action unset -Payload @{ ntpserver = $body } -RawResponse if ($PassThru) { return Invoke-NSGetNTPServer -ServerIp $ServerIp -Session $Session } return $response } } } # endregion Invoke-NSUnsetNTPServer # region Invoke-NSUpdateNTPParam function Invoke-NSUpdateNTPParam { <# .SYNOPSIS Updates a NetScaler ntpparam resource. .DESCRIPTION Configuration for NTP parameter resource. .PARAMETER Authentication Apply NTP authentication, which enables the NTP client (Citrix ADC) to verify that the server is in fact known and trusted. Default value: YES Possible values = YES, NO .PARAMETER AutoKeyLogsec Autokey protocol requires the keys to be refreshed periodically. This parameter specifies the interval between regenerations of new session keys. In seconds, expressed as a power of 2. Default value: 12 Minimum value = 0 Maximum value = 32 .PARAMETER Revokelogsec Interval between re-randomizations of the autokey seeds to prevent brute-force attacks on the autokey algorithms. Default value: 16 Minimum value = 0 Maximum value = 32 .PARAMETER TrustedKey Key identifiers that are trusted for server authentication with symmetric key cryptography in the keys file. Minimum value = 1 Maximum value = 65534 .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUpdateNTPParam -PassThru .EXAMPLE Invoke-NSUpdateNTPParam -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [ValidateSet('YES', 'NO')] [string] $Authentication, [Parameter()] [int] $AutoKeyLogsec, [Parameter()] [int] $Revokelogsec, [Parameter()] [string] $TrustedKey, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('Authentication')) { $properties['authentication'] = $Authentication } if ($PSBoundParameters.ContainsKey('AutoKeyLogsec')) { $properties['autokeylogsec'] = $AutoKeyLogsec } if ($PSBoundParameters.ContainsKey('Revokelogsec')) { $properties['revokelogsec'] = $Revokelogsec } if ($PSBoundParameters.ContainsKey('TrustedKey')) { $properties['trustedkey'] = $TrustedKey } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess('ntpparam', 'Update ntpparam')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method PUT -Task config -Type ntpparam -Payload @{ ntpparam = $body } -RawResponse return $response } } # endregion Invoke-NSUpdateNTPParam # region Invoke-NSUpdateNTPServer function Invoke-NSUpdateNTPServer { <# .SYNOPSIS Updates a NetScaler ntpserver resource. .DESCRIPTION Configuration for NTP server resource. .PARAMETER AutoKey Use the Autokey protocol for key management for this server, with the cryptographic values (for example, symmetric key, host and public certificate files, and sign key) generated by the ntp-keygen utility. To require authentication for communication with the server, you must set either the value of this parameter or the key parameter. .PARAMETER Key Key to use for encrypting authentication fields. All packets sent to and received from the server must include authentication fields encrypted by using this key. To require authentication for communication with the server, you must set either the value of this parameter or the autokey parameter. Minimum value = 1 Maximum value = 65534 .PARAMETER MaxPoll Maximum time after which the NTP server must poll the NTP messages. In seconds, expressed as a power of 2. Minimum value = 4 Maximum value = 17 .PARAMETER MinPoll Minimum time after which the NTP server must poll the NTP messages. In seconds, expressed as a power of 2. Minimum value = 4 Maximum value = 17 .PARAMETER PreferredNTPServer Preferred NTP server. The Citrix ADC chooses this NTP server for time synchronization among a set of correctly operating hosts. Default value: NO Possible values = YES, NO .PARAMETER ServerIp IP address of the NTP server. Minimum length = 1 .PARAMETER ServerName Fully qualified domain name of the NTP server. .PARAMETER Session The NetScaler session. If omitted, the current default session is used. .PARAMETER IgnoreNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ReturnNullOnNotFound Returns null instead of throwing for known NITRO not-found responses. .PARAMETER ThrowOnWarning Treats NITRO warning responses as terminating errors. .PARAMETER PassThru Returns the updated resource after the operation completes. .EXAMPLE Invoke-NSUpdateNTPServer -ServerIp 'example' -PassThru .EXAMPLE Invoke-NSUpdateNTPServer -ServerIp 'example' -WhatIf .OUTPUTS System.Management.Automation.PSCustomObject .NOTES Generated from NetScaler NITRO API metadata. Generated: 2026-06-01 21:28 Supported metadata versions: 13.1, 14.1. #> [CmdletBinding(SupportsShouldProcess)] param( [Parameter()] [bool] $AutoKey, [Parameter()] [int] $Key, [Parameter()] [int] $MaxPoll, [Parameter()] [int] $MinPoll, [Parameter()] [ValidateSet('YES', 'NO')] [string] $PreferredNTPServer, [Parameter(Position = 0)] [string] $ServerIp, [Parameter()] [string] $ServerName, [Parameter()] [psobject] $Session = (Get-NSSession), [Parameter()] [switch] $IgnoreNotFound, [Parameter()] [switch] $ReturnNullOnNotFound, [Parameter()] [switch] $ThrowOnWarning, [Parameter()] [switch] $PassThru ) $metadataVersion = Resolve-NSMetadataVersion -Session $Session -SupportedVersion @('13.1', '14.1') $transportParameters = @{} if ($PSBoundParameters.ContainsKey('IgnoreNotFound')) { $transportParameters.IgnoreNotFound = $IgnoreNotFound } if ($PSBoundParameters.ContainsKey('ReturnNullOnNotFound')) { $transportParameters.ReturnNullOnNotFound = $ReturnNullOnNotFound } if ($PSBoundParameters.ContainsKey('ThrowOnWarning')) { $transportParameters.ThrowOnWarning = $ThrowOnWarning } $properties = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) if ($PSBoundParameters.ContainsKey('AutoKey')) { $properties['autokey'] = $AutoKey } if ($PSBoundParameters.ContainsKey('Key')) { $properties['key'] = $Key } if ($PSBoundParameters.ContainsKey('MaxPoll')) { $properties['maxpoll'] = $MaxPoll } if ($PSBoundParameters.ContainsKey('MinPoll')) { $properties['minpoll'] = $MinPoll } if ($PSBoundParameters.ContainsKey('PreferredNTPServer')) { $properties['preferredntpserver'] = $PreferredNTPServer } if ($PSBoundParameters.ContainsKey('ServerIp')) { $properties['serverip'] = $ServerIp } if ($PSBoundParameters.ContainsKey('ServerName')) { $properties['servername'] = $ServerName } $body = [System.Collections.Generic.Dictionary[string, object]]::new([System.StringComparer]::Ordinal) foreach ($key in $properties.Keys) { if ($null -ne $properties[$key] -and (-not ($properties[$key] -is [string]) -or $properties[$key] -ne '')) { $body[$key] = $properties[$key] } } if ($PSCmdlet.ShouldProcess("$ServerIp", 'Update ntpserver')) { $response = Invoke-NSRestRequest @transportParameters -Session $Session -Method PUT -Task config -Type ntpserver -Payload @{ ntpserver = $body } -RawResponse if ($PassThru) { return Invoke-NSGetNTPServer -ServerIp $ServerIp -Session $Session } return $response } } # endregion Invoke-NSUpdateNTPServer # SIG # Begin signature block # MIImdwYJKoZIhvcNAQcCoIImaDCCJmQCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCs/NMkDO7GBvYW # piu1r/sh94eEyKH3gD6EmdYOZUEv+aCCIAowggYUMIID/KADAgECAhB6I67aU2mW # D5HIPlz0x+M/MA0GCSqGSIb3DQEBDAUAMFcxCzAJBgNVBAYTAkdCMRgwFgYDVQQK # Ew9TZWN0aWdvIExpbWl0ZWQxLjAsBgNVBAMTJVNlY3RpZ28gUHVibGljIFRpbWUg # U3RhbXBpbmcgUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5 # WjBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSwwKgYD # VQQDEyNTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFIzNjCCAaIwDQYJ # KoZIhvcNAQEBBQADggGPADCCAYoCggGBAM2Y2ENBq26CK+z2M34mNOSJjNPvIhKA # VD7vJq+MDoGD46IiM+b83+3ecLvBhStSVjeYXIjfa3ajoW3cS3ElcJzkyZlBnwDE # JuHlzpbN4kMH2qRBVrjrGJgSlzzUqcGQBaCxpectRGhhnOSwcjPMI3G0hedv2eNm # GiUbD12OeORN0ADzdpsQ4dDi6M4YhoGE9cbY11XxM2AVZn0GiOUC9+XE0wI7CQKf # OUfigLDn7i/WeyxZ43XLj5GVo7LDBExSLnh+va8WxTlA+uBvq1KO8RSHUQLgzb1g # bL9Ihgzxmkdp2ZWNuLc+XyEmJNbD2OIIq/fWlwBp6KNL19zpHsODLIsgZ+WZ1AzC # s1HEK6VWrxmnKyJJg2Lv23DlEdZlQSGdF+z+Gyn9/CRezKe7WNyxRf4e4bwUtrYE # 2F5Q+05yDD68clwnweckKtxRaF0VzN/w76kOLIaFVhf5sMM/caEZLtOYqYadtn03 # 4ykSFaZuIBU9uCSrKRKTPJhWvXk4CllgrwIDAQABo4IBXDCCAVgwHwYDVR0jBBgw # FoAU9ndq3T/9ARP/FqFsggIv0Ao9FCUwHQYDVR0OBBYEFF9Y7UwxeqJhQo1SgLqz # YZcZojKbMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1Ud # JQQMMAoGCCsGAQUFBwMIMBEGA1UdIAQKMAgwBgYEVR0gADBMBgNVHR8ERTBDMEGg # P6A9hjtodHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNUaW1lU3Rh # bXBpbmdSb290UjQ2LmNybDB8BggrBgEFBQcBAQRwMG4wRwYIKwYBBQUHMAKGO2h0 # dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY1RpbWVTdGFtcGluZ1Jv # b3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTAN # BgkqhkiG9w0BAQwFAAOCAgEAEtd7IK0ONVgMnoEdJVj9TC1ndK/HYiYh9lVUacah # RoZ2W2hfiEOyQExnHk1jkvpIJzAMxmEc6ZvIyHI5UkPCbXKspioYMdbOnBWQUn73 # 3qMooBfIghpR/klUqNxx6/fDXqY0hSU1OSkkSivt51UlmJElUICZYBodzD3M/SFj # eCP59anwxs6hwj1mfvzG+b1coYGnqsSz2wSKr+nDO+Db8qNcTbJZRAiSazr7KyUJ # Go1c+MScGfG5QHV+bps8BX5Oyv9Ct36Y4Il6ajTqV2ifikkVtB3RNBUgwu/mSiSU # ice/Jp/q8BMk/gN8+0rNIE+QqU63JoVMCMPY2752LmESsRVVoypJVt8/N3qQ1c6F # ibbcRabo3azZkcIdWGVSAdoLgAIxEKBeNh9AQO1gQrnh1TA8ldXuJzPSuALOz1Uj # b0PCyNVkWk7hkhVHfcvBfI8NtgWQupiaAeNHe0pWSGH2opXZYKYG4Lbukg7HpNi/ # KqJhue2Keak6qH9A8CeEOB7Eob0Zf+fU+CCQaL0cJqlmnx9HCDxF+3BLbUufrV64 # EbTI40zqegPZdA+sXCmbcZy6okx/SjwsusWRItFA3DE8MORZeFb6BmzBtqKJ7l93 # 9bbKBy2jvxcJI98Va95Q5JnlKor3m0E7xpMeYRriWklUPsetMSf2NvUQa/E5vVye # fQIwggZFMIIELaADAgECAhAIMk+dt9qRb2Pk8qM8Xl1RMA0GCSqGSIb3DQEBCwUA # MFYxCzAJBgNVBAYTAlBMMSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMu # QS4xJDAiBgNVBAMTG0NlcnR1bSBDb2RlIFNpZ25pbmcgMjAyMSBDQTAeFw0yNDA0 # MDQxNDA0MjRaFw0yNzA0MDQxNDA0MjNaMGsxCzAJBgNVBAYTAk5MMRIwEAYDVQQH # DAlTY2hpam5kZWwxIzAhBgNVBAoMGkpvaG4gQmlsbGVrZW5zIENvbnN1bHRhbmN5 # MSMwIQYDVQQDDBpKb2huIEJpbGxla2VucyBDb25zdWx0YW5jeTCCAaIwDQYJKoZI # hvcNAQEBBQADggGPADCCAYoCggGBAMslntDbSQwHZXwFhmibivbnd0Qfn6sqe/6f # os3pKzKxEsR907RkDMet2x6RRg3eJkiIr3TFPwqBooyXXgK3zxxpyhGOcuIqyM9J # 28DVf4kUyZHsjGO/8HFjrr3K1hABNUszP0o7H3o6J31eqV1UmCXYhQlNoW9FOmRC # 1amlquBmh7w4EKYEytqdmdOBavAD5Xq4vLPxNP6kyA+B2YTtk/xM27TghtbwFGKn # u9Vwnm7dFcpLxans4ONt2OxDQOMA5NwgcUv/YTpjhq9qoz6ivG55NRJGNvUXsM3w # 2o7dR6Xh4MuEGrTSrOWGg2A5EcLH1XqQtkF5cZnAPM8W/9HUp8ggornWnFVQ9/6M # ga+ermy5wy5XrmQpN+x3u6tit7xlHk1Hc+4XY4a4ie3BPXG2PhJhmZAn4ebNSBwN # Hh8z7WTT9X9OFERepGSytZVeEP7hgyptSLcuhpwWeR4QdBb7dV++4p3PsAUQVHFp # wkSbrRTv4EiJ0Lcz9P1HPGFoHiFAQQIDAQABo4IBeDCCAXQwDAYDVR0TAQH/BAIw # ADA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY2NzY2EyMDIxLmNybC5jZXJ0dW0u # cGwvY2NzY2EyMDIxLmNybDBzBggrBgEFBQcBAQRnMGUwLAYIKwYBBQUHMAGGIGh0 # dHA6Ly9jY3NjYTIwMjEub2NzcC1jZXJ0dW0uY29tMDUGCCsGAQUFBzAChilodHRw # Oi8vcmVwb3NpdG9yeS5jZXJ0dW0ucGwvY2NzY2EyMDIxLmNlcjAfBgNVHSMEGDAW # gBTddF1MANt7n6B0yrFu9zzAMsBwzTAdBgNVHQ4EFgQUO6KtBpOBgmrlANVAnyiQ # C6W6lJwwSwYDVR0gBEQwQjAIBgZngQwBBAEwNgYLKoRoAYb2dwIFAQQwJzAlBggr # BgEFBQcCARYZaHR0cHM6Ly93d3cuY2VydHVtLnBsL0NQUzATBgNVHSUEDDAKBggr # BgEFBQcDAzAOBgNVHQ8BAf8EBAMCB4AwDQYJKoZIhvcNAQELBQADggIBAEQsN8wg # PMdWVkwHPPTN+jKpdns5AKVFjcn00psf2NGVVgWWNQBIQc9lEuTBWb54IK6Ga3hx # QRZfnPNo5HGl73YLmFgdFQrFzZ1lnaMdIcyh8LTWv6+XNWfoyCM9wCp4zMIDPOs8 # LKSMQqA/wRgqiACWnOS4a6fyd5GUIAm4CuaptpFYr90l4Dn/wAdXOdY32UhgzmSu # xpUbhD8gVJUaBNVmQaRqeU8y49MxiVrUKJXde1BCrtR9awXbqembc7Nqvmi60tYK # lD27hlpKtj6eGPjkht0hHEsgzU0Fxw7ZJghYG2wXfpF2ziN893ak9Mi/1dmCNmor # GOnybKYfT6ff6YTCDDNkod4egcMZdOSv+/Qv+HAeIgEvrxE9QsGlzTwbRtbm6gwY # YcVBs/SsVUdBn/TSB35MMxRhHE5iC3aUTkDbceo/XP3uFhVL4g2JZHpFfCSu2TQr # rzRn2sn07jfMvzeHArCOJgBW1gPqR3WrJ4hUxL06Rbg1gs9tU5HGGz9KNQMfQFQ7 # 0Wz7UIhezGcFcRfkIfSkMmQYYpsc7rfzj+z0ThfDVzzJr2dMOFsMlfj1T6l22GBq # 9XQx0A4lcc5Fl9pRxbOuHHWFqIBD/BCEhwniOCySzqENd2N+oz8znKooSISStnkN # aYXt6xblJF2dx9Dn89FK7d1IquNxOwt0tI5dMIIGYjCCBMqgAwIBAgIRAKQpO24e # 3denNAiHrXpOtyQwDQYJKoZIhvcNAQEMBQAwVTELMAkGA1UEBhMCR0IxGDAWBgNV # BAoTD1NlY3RpZ28gTGltaXRlZDEsMCoGA1UEAxMjU2VjdGlnbyBQdWJsaWMgVGlt # ZSBTdGFtcGluZyBDQSBSMzYwHhcNMjUwMzI3MDAwMDAwWhcNMzYwMzIxMjM1OTU5 # WjByMQswCQYDVQQGEwJHQjEXMBUGA1UECBMOV2VzdCBZb3Jrc2hpcmUxGDAWBgNV # BAoTD1NlY3RpZ28gTGltaXRlZDEwMC4GA1UEAxMnU2VjdGlnbyBQdWJsaWMgVGlt # ZSBTdGFtcGluZyBTaWduZXIgUjM2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC # CgKCAgEA04SV9G6kU3jyPRBLeBIHPNyUgVNnYayfsGOyYEXrn3+SkDYTLs1crcw/ # ol2swE1TzB2aR/5JIjKNf75QBha2Ddj+4NEPKDxHEd4dEn7RTWMcTIfm492TW22I # 8LfH+A7Ehz0/safc6BbsNBzjHTt7FngNfhfJoYOrkugSaT8F0IzUh6VUwoHdYDpi # ln9dh0n0m545d5A5tJD92iFAIbKHQWGbCQNYplqpAFasHBn77OqW37P9BhOASdmj # p3IijYiFdcA0WQIe60vzvrk0HG+iVcwVZjz+t5OcXGTcxqOAzk1frDNZ1aw8nFhG # EvG0ktJQknnJZE3D40GofV7O8WzgaAnZmoUn4PCpvH36vD4XaAF2CjiPsJWiY/j2 # xLsJuqx3JtuI4akH0MmGzlBUylhXvdNVXcjAuIEcEQKtOBR9lU4wXQpISrbOT8ux # +96GzBq8TdbhoFcmYaOBZKlwPP7pOp5Mzx/UMhyBA93PQhiCdPfIVOCINsUY4U23 # p4KJ3F1HqP3H6Slw3lHACnLilGETXRg5X/Fp8G8qlG5Y+M49ZEGUp2bneRLZoyHT # yynHvFISpefhBCV0KdRZHPcuSL5OAGWnBjAlRtHvsMBrI3AAA0Tu1oGvPa/4yeei # Ayu+9y3SLC98gDVbySnXnkujjhIh+oaatsk/oyf5R2vcxHahajMCAwEAAaOCAY4w # ggGKMB8GA1UdIwQYMBaAFF9Y7UwxeqJhQo1SgLqzYZcZojKbMB0GA1UdDgQWBBSI # YYyhKjdkgShgoZsx0Iz9LALOTzAOBgNVHQ8BAf8EBAMCBsAwDAYDVR0TAQH/BAIw # ADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDBKBgNVHSAEQzBBMDUGDCsGAQQBsjEB # AgEDCDAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZn # gQwBBAIwSgYDVR0fBEMwQTA/oD2gO4Y5aHR0cDovL2NybC5zZWN0aWdvLmNvbS9T # ZWN0aWdvUHVibGljVGltZVN0YW1waW5nQ0FSMzYuY3JsMHoGCCsGAQUFBwEBBG4w # bDBFBggrBgEFBQcwAoY5aHR0cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVi # bGljVGltZVN0YW1waW5nQ0FSMzYuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2Nz # cC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAYEAAoE+pIZyUSH5ZakuPVKK # 4eWbzEsTRJOEjbIu6r7vmzXXLpJx4FyGmcqnFZoa1dzx3JrUCrdG5b//LfAxOGy9 # Ph9JtrYChJaVHrusDh9NgYwiGDOhyyJ2zRy3+kdqhwtUlLCdNjFjakTSE+hkC9F5 # ty1uxOoQ2ZkfI5WM4WXA3ZHcNHB4V42zi7Jk3ktEnkSdViVxM6rduXW0jmmiu71Z # pBFZDh7Kdens+PQXPgMqvzodgQJEkxaION5XRCoBxAwWwiMm2thPDuZTzWp/gUFz # i7izCmEt4pE3Kf0MOt3ccgwn4Kl2FIcQaV55nkjv1gODcHcD9+ZVjYZoyKTVWb4V # qMQy/j8Q3aaYd/jOQ66Fhk3NWbg2tYl5jhQCuIsE55Vg4N0DUbEWvXJxtxQQaVR5 # xzhEI+BjJKzh3TQ026JxHhr2fuJ0mV68AluFr9qshgwS5SpN5FFtaSEnAwqZv3IS # +mlG50rK7W3qXbWwi4hmpylUfygtYLEdLQukNEX1jiOKMIIGgjCCBGqgAwIBAgIQ # NsKwvXwbOuejs902y8l1aDANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UEBhMCVVMx # EzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYD # VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBS # U0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjEwMzIyMDAwMDAwWhcNMzgw # MTE4MjM1OTU5WjBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1p # dGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3Qg # UjQ2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiJ3YuUVnnR3d6Lkm # gZpUVMB8SQWbzFoVD9mUEES0QUCBdxSZqdTkdizICFNeINCSJS+lV1ipnW5ihkQy # C0cRLWXUJzodqpnMRs46npiJPHrfLBOifjfhpdXJ2aHHsPHggGsCi7uE0awqKggE # /LkYw3sqaBia67h/3awoqNvGqiFRJ+OTWYmUCO2GAXsePHi+/JUNAax3kpqstbl3 # vcTdOGhtKShvZIvjwulRH87rbukNyHGWX5tNK/WABKf+Gnoi4cmisS7oSimgHUI0 # Wn/4elNd40BFdSZ1EwpuddZ+Wr7+Dfo0lcHflm/FDDrOJ3rWqauUP8hsokDoI7D/ # yUVI9DAE/WK3Jl3C4LKwIpn1mNzMyptRwsXKrop06m7NUNHdlTDEMovXAIDGAvYy # nPt5lutv8lZeI5w3MOlCybAZDpK3Dy1MKo+6aEtE9vtiTMzz/o2dYfdP0KWZwZIX # bYsTIlg1YIetCpi5s14qiXOpRsKqFKqav9R1R5vj3NgevsAsvxsAnI8Oa5s2oy25 # qhsoBIGo/zi6GpxFj+mOdh35Xn91y72J4RGOJEoqzEIbW3q0b2iPuWLA911cRxgY # 5SJYubvjay3nSMbBPPFsyl6mY4/WYucmyS9lo3l7jk27MAe145GWxK4O3m3gEFEI # kv7kRmefDR7Oe2T1HxAnICQvr9sCAwEAAaOCARYwggESMB8GA1UdIwQYMBaAFFN5 # v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBT2d2rdP/0BE/8WoWyCAi/QCj0U # JTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUEDDAKBggr # BgEFBQcDCDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/aHR0 # cDovL2NybC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25B # dXRob3JpdHkuY3JsMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0cDov # L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEADr5lQe1oRLjl # ocXUEYfktzsljOt+2sgXke3Y8UPEooU5y39rAARaAdAxUeiX1ktLJ3+lgxtoLQhn # 5cFb3GF2SSZRX8ptQ6IvuD3wz/LNHKpQ5nX8hjsDLRhsyeIiJsms9yAWnvdYOdEM # q1W61KE9JlBkB20XBee6JaXx4UBErc+YuoSb1SxVf7nkNtUjPfcxuFtrQdRMRi/f # InV/AobE8Gw/8yBMQKKaHt5eia8ybT8Y/Ffa6HAJyz9gvEOcF1VWXG8OMeM7Vy7B # s6mSIkYeYtddU1ux1dQLbEGur18ut97wgGwDiGinCwKPyFO7ApcmVJOtlw9FVJxw # /mL1TbyBns4zOgkaXFnnfzg4qbSvnrwyj1NiurMp4pmAWjR+Pb/SIduPnmFzbSN/ # G8reZCL4fvGlvPFk4Uab/JVCSmj59+/mB2Gn6G/UYOy8k60mKcmaAZsEVkhOFuoj # 4we8CYyaR9vd9PGZKSinaZIkvVjbH/3nlLb0a7SBIkiRzfPfS9T+JesylbHa1LtR # V9U/7m0q7Ma2CQ/t392ioOssXW7oKLdOmMBl14suVFBmbzrt5V5cQPnwtd3UOTpS # 9oCG+ZZheiIvPgkDmA8FzPsnfXW5qHELB43ET7HHFHeRPRYrMBKjkb8/IN7Po0d0 # hQoF4TeMM+zYAJzoKQnVKOLg8pZVPT8wgga5MIIEoaADAgECAhEAmaOACiZVO2Wr # 3G6EprPqOTANBgkqhkiG9w0BAQwFADCBgDELMAkGA1UEBhMCUEwxIjAgBgNVBAoT # GVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0 # aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0 # d29yayBDQSAyMB4XDTIxMDUxOTA1MzIxOFoXDTM2MDUxODA1MzIxOFowVjELMAkG # A1UEBhMCUEwxITAfBgNVBAoTGEFzc2VjbyBEYXRhIFN5c3RlbXMgUy5BLjEkMCIG # A1UEAxMbQ2VydHVtIENvZGUgU2lnbmluZyAyMDIxIENBMIICIjANBgkqhkiG9w0B # AQEFAAOCAg8AMIICCgKCAgEAnSPPBDAjO8FGLOczcz5jXXp1ur5cTbq96y34vuTm # flN4mSAfgLKTvggv24/rWiVGzGxT9YEASVMw1Aj8ewTS4IndU8s7VS5+djSoMcbv # IKck6+hI1shsylP4JyLvmxwLHtSworV9wmjhNd627h27a8RdrT1PH9ud0IF+njvM # k2xqbNTIPsnWtw3E7DmDoUmDQiYi/ucJ42fcHqBkbbxYDB7SYOouu9Tj1yHIohzu # C8KNqfcYf7Z4/iZgkBJ+UFNDcc6zokZ2uJIxWgPWXMEmhu1gMXgv8aGUsRdaCtVD # 2bSlbfsq7BiqljjaCun+RJgTgFRCtsuAEw0pG9+FA+yQN9n/kZtMLK+Wo837Q4QO # ZgYqVWQ4x6cM7/G0yswg1ElLlJj6NYKLw9EcBXE7TF3HybZtYvj9lDV2nT8mFSkc # SkAExzd4prHwYjUXTeZIlVXqj+eaYqoMTpMrfh5MCAOIG5knN4Q/JHuurfTI5XDY # O962WZayx7ACFf5ydJpoEowSP07YaBiQ8nXpDkNrUA9g7qf/rCkKbWpQ5boufUnq # 1UiYPIAHlezf4muJqxqIns/kqld6JVX8cixbd6PzkDpwZo4SlADaCi2JSplKShBS # ND36E/ENVv8urPS0yOnpG4tIoBGxVCARPCg1BnyMJ4rBJAcOSnAWd18Jx5n858JS # qPECAwEAAaOCAVUwggFRMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFN10XUwA # 23ufoHTKsW73PMAywHDNMB8GA1UdIwQYMBaAFLahVDkCw6A/joq8+tT4HKbROg79 # MA4GA1UdDwEB/wQEAwIBBjATBgNVHSUEDDAKBggrBgEFBQcDAzAwBgNVHR8EKTAn # MCWgI6Ahhh9odHRwOi8vY3JsLmNlcnR1bS5wbC9jdG5jYTIuY3JsMGwGCCsGAQUF # BwEBBGAwXjAoBggrBgEFBQcwAYYcaHR0cDovL3N1YmNhLm9jc3AtY2VydHVtLmNv # bTAyBggrBgEFBQcwAoYmaHR0cDovL3JlcG9zaXRvcnkuY2VydHVtLnBsL2N0bmNh # Mi5jZXIwOQYDVR0gBDIwMDAuBgRVHSAAMCYwJAYIKwYBBQUHAgEWGGh0dHA6Ly93 # d3cuY2VydHVtLnBsL0NQUzANBgkqhkiG9w0BAQwFAAOCAgEAdYhYD+WPUCiaU58Q # 7EP89DttyZqGYn2XRDhJkL6P+/T0IPZyxfxiXumYlARMgwRzLRUStJl490L94C9L # GF3vjzzH8Jq3iR74BRlkO18J3zIdmCKQa5LyZ48IfICJTZVJeChDUyuQy6rGDxLU # UAsO0eqeLNhLVsgw6/zOfImNlARKn1FP7o0fTbj8ipNGxHBIutiRsWrhWM2f8pXd # d3x2mbJCKKtl2s42g9KUJHEIiLni9ByoqIUul4GblLQigO0ugh7bWRLDm0CdY9rN # LqyA3ahe8WlxVWkxyrQLjH8ItI17RdySaYayX3PhRSC4Am1/7mATwZWwSD+B7eMc # ZNhpn8zJ+6MTyE6YoEBSRVrs0zFFIHUR08Wk0ikSf+lIe5Iv6RY3/bFAEloMU+vU # BfSouCReZwSLo8WdrDlPXtR0gicDnytO7eZ5827NS2x7gCBibESYkOh1/w1tVxTp # V2Na3PR7nxYVlPu1JPoRZCbH86gc96UTvuWiOruWmyOEMLOGGniR+x+zPF/2DaGg # K2W1eEJfo2qyrBNPvF7wuAyQfiFXLwvWHamoYtPZo0LHuH8X3n9C+xN4YaNjt2yw # zOr+tKyEVAotnyU9vyEVOaIYMk3IeBrmFnn0gbKeTTyYeEEUz/Qwt4HOUBCrW602 # NCmvO1nm+/80nLy5r0AZvCQxaQ4xggXDMIIFvwIBATBqMFYxCzAJBgNVBAYTAlBM # MSEwHwYDVQQKExhBc3NlY28gRGF0YSBTeXN0ZW1zIFMuQS4xJDAiBgNVBAMTG0Nl # cnR1bSBDb2RlIFNpZ25pbmcgMjAyMSBDQQIQCDJPnbfakW9j5PKjPF5dUTANBglg # hkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEMMQowCKACgAChAoAAMBkGCSqGSIb3 # DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEV # MC8GCSqGSIb3DQEJBDEiBCDChEEbG8n0kEniIu9rzgRwo9Tnh6VplQjeblIpRHIH # MTANBgkqhkiG9w0BAQEFAASCAYCWHVRB3Ep95Kddo3ldQfoDgqSsOfF12w4h4z70 # ko2Az0W1aN8LJlzBlcjAvEk4cMcChnbANzG4IFE9yd6qlgZdQgrNfiWUSVuSuEzA # dM5k68hRAOndTdh7jC3B0xSlfJMUe5U+aMAwrRHp8NNkW5IcCuLq18z6RQVtKts5 # aFGcS0Nv+YEtEOkUzM/aGGEI1XnBuH5ADuWS56mAKvciRTmyybWCdAI9MsE52yXP # pjc1hNZrTmtDxLEk8njRVjpgqZTO2mYN89jLQAOe+Kpqes0c0WWi+ZhWd6pb2yKp # 4HnQvSobGunx6VyFxOf/IUNEP1J0H+/Fn8sGTrflRpzKaeRWmno3r9TAqhGt/ZZy # wc4E0N4NSwaYyQ9XibsKEyRQooQa83X4yW7JqLwy/7ZJtTuHTO7PxmP0E9mYCTIL # GD+n4VlpZAVf5miGhrCRxqJheG1j/OQHp7nlcspeddZY/aOE1sR+xvNxSSP4fCyr # PtmJEG2o15GGkYfJhwI+8tqANTWhggMjMIIDHwYJKoZIhvcNAQkGMYIDEDCCAwwC # AQEwajBVMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSww # KgYDVQQDEyNTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIENBIFIzNgIRAKQp # O24e3denNAiHrXpOtyQwDQYJYIZIAWUDBAICBQCgeTAYBgkqhkiG9w0BCQMxCwYJ # KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNjA2MDExOTU1NTlaMD8GCSqGSIb3 # DQEJBDEyBDBPOALiBk/SrCOmN13nqsar2E3nLV4HjMvPIut/XMx76w3vA5oeNi+T # Izz1KUdqDO8wDQYJKoZIhvcNAQEBBQAEggIAd4OBGOo0DUOAw1mYuUade1rtjTgs # fIn2pXmqGWZvAqaPJfrdQqE6+kECRZ72i5NXpyBoFZbjbICDajLVXqslKHOUQSTp # EfWtGPdkYTb9QJhlKKEzQkAo79i0VTAFcU6Mdf1SIoG+4J1DMp/Gxw33Cy8uFoqK # 51IVoOBCnsDAKvCd421jVErypsMyqj3cPqdLNfqre5xVafGg3++uqA8w3QkOQSYA # vBEMeGYlLgWptjzqOaL+YvyWjMIHL1L+lnGfnxJbfd88plyDNPRptI/Tvs+NBrBL # CskeLaue5uOSa42yaP95hSGSXSrnM8THLIxPmQrzSXR0gZ5wU7NwSRiMuMPDPRPU # Eqc2hJEu+g0kBDQdwQ0REFGDFdHZT+PjhNyUcB0a6jTpm+ACR2IOKAiM4t7qa9wM # gl/0NEsyvBgKDW2i5vpRvESYE0ko1Q7hcTUTM/hUJapq7tb9ZYS8DHAP0ZDl36Gm # N9JiIzVbGVsGHpSkACviRheA3cphGYJPEDzhSq5NvhXkjPVSYxjvITwuhrKEc+qh # hhhXMqj2rh3Yy9+Hpo8t3F8ps8Ll2zHwK7Z1kOsCJMNPimAcbNpWE8+u/Q9We/nQ # Fj6OtKcl4LqN0UC0WmeNUctGBKM8Ep6MmOSM4hNhgo2NANtl3uN4pvIPBAtvDpmH # n6jzWHQ5YWs3BHA= # SIG # End signature block |