Public/Set-P1AdapterParameter.ps1

function Set-P1AdapterParameter {
    <#
    .Synopsis
    Set one parameter for the adapter.
 
    .Description
    Set an adapter parameter by name.
    Call Set-P1AdapterParameter without parameters to get a list of valid names.
    Some names are specific to some adapters.
 
    .Parameter Tenant
    The target tenant.
 
    .Parameter Name
    The parameter name.
 
    .Parameter Value
    The parameter value.
 
    .Example
    # Set the SynchroniztionTick parameter to 5 seconds
    Set-P1AdapterParameter -Tenant Prod -Name SynchronizationTick -Value 5
    #>

    [cmdletbinding()]
    param( 
        [string] $Tenant,
        [string] $Name,
        [string] $Value
    )
    Process
    {
        if ($Tenant -eq "" -and $Name -eq "" -and $Value -eq "") {
            Write-P1AdapterParametersList
            return
        }

        Write-Section "Set adapter parameter for tenant $Tenant, parameter $Name to value $Value"
        if (!(Test-Tenant $Tenant)) {
            Write-Warning "Tenant $Tenant does not exist."
            Write-Warning "Operation canceled."
            return;
        }

        if ($Name -eq "") {
            Write-Warning "Parameter name must be set"
            return;
        }

        if ($Value -eq "") {
            Write-Warning "Parameter value must be set. Value must be true or false for boolean values."
            return;
        }

        $info = Get-TenantInfo $Tenant
        $adapterType = $info.Adapter
        if ($adapterType -eq "") {
            Write-Warning "No adapter define for tenant $Tenant"
            return
        }

        Write-Verbose "Adapter type is $adapterType"

        if ($adapterType -ne "NAV" -and $adapterType -ne "REST") {
            Write-Warning "Adapter type $adapterType is undefined or unrecognized"
            return
        }

        if ($adapterType -eq "NAV") {
            Set-NAVAdapterParameter $Tenant $Name $Value
        }

        if ($adapterType -eq "REST") {
            Set-RESTAdapterParameter $Tenant $Name $Value
        }
    }
}