functions/Set-CustomerSetting.ps1
<#
.SYNOPSIS Get all settings for a Customer. .DESCRIPTION This will list all settings for a Customer. .PARAMETER CustomerId The id of the Customer for which the settings should be listed. .PARAMETER tanssUrl The URL of an instance of TANSS. .PARAMETER defaultLanguage The language of this customers reports and other automatically generated stuff. ValidateSet = de or en .PARAMETER timezone The timezone this customer is based. .PARAMETER AuthToken Either a session or an API key. If no AuthToken is provided the global Server-Eye session will be used if available. .EXAMPLE Set-SECustomerSetting -CustomerId "3e2c14de-c28f-4297-826a-cc645b725be2" -TANSSURL "https://tanss.kraemer-it.de" CustomerId : 3e2c14de-c28f-4297-826a-cc645b725be2 CustomerName : Wortmann Demo (gesponsert) TANSSURL : https://tanss.kraemer-it.de defaultLanguage : de timezone : Europe/Berlin .EXAMPLE Get-SECustomer -Filter "Wortmann*"| Set-SECustomerSetting -TANSSURL "https://tanss.kraemer-it.de" CustomerId : 3e2c14de-c28f-4297-826a-cc645b725be2 CustomerName : Wortmann Demo (gesponsert) TANSSURL : https://tanss.kraemer-it.de defaultLanguage : de timezone : Europe/Berlin .EXAMPLE Get-SECustomer -Filter "Wortmann*"| Set-SECustomerSetting -defaultLanguage en CustomerId : 3e2c14de-c28f-4297-826a-cc645b725be2 CustomerName : Wortmann Demo (gesponsert) TANSSURL : https://tanss.kraemer-it.de defaultLanguage : en timezone : Europe/Berlin .LINK https://api.server-eye.de/docs/2/ #> function Set-CustomerSetting { [CmdletBinding()] Param( [parameter(ValueFromPipelineByPropertyName, Mandatory = $true)] $CustomerId, [parameter(ValueFromPipelineByPropertyName, Mandatory = $false)] $tanssUrl, [parameter(ValueFromPipelineByPropertyName, Mandatory = $false)] [ValidateSet('de','en')] $defaultLanguage, [parameter(ValueFromPipelineByPropertyName, Mandatory = $false)] $timezone, [Parameter(Mandatory = $false)] $AuthToken ) Begin { $AuthToken = Test-SEAuth -AuthToken $AuthToken } Process { if (!$tanssUrl -and !$defaultLanguage -and !$timezone) { Write-Error -Message "No Parameter to change was given. Please provide on of the following Parameters tanssUrl, defaultLanguage or timezone" -ErrorAction Stop -Category InvalidArgument }else{ SetSettingByCustomer -customerId $CustomerId -auth $AuthToken -tanssUrl $tanssUrl -defaultLanguage $defaultLanguage -timezone $timezone } } End { } } function SetSettingByCustomer ($customerId, $auth, $tanssUrl, $defaultLanguage, $timezone) { $currentSetting = Get-SECustomerSetting -AuthToken $AuthToken -customerId $customerID if (!$tanssUrl) { $tanssUrl = $currentSetting.TANSSURL } If (!$defaultLanguage){ $defaultLanguage = $currentSetting.defaultLanguage } If (!$timezone){ $timezone = $currentSetting.timezone } $setting = Set-SeApiCustomerSetting -cId $customerId -AuthToken $auth -tanssUrl $tanssUrl -defaultLanguage $defaultLanguage -timezone $timezone $Customer = Get-SECustomer -CustomerId $customerId [PSCustomObject]@{ CustomerId = $setting.cid CustomerName = $Customer.Name TANSSURL = $setting.TANSSURL defaultLanguage = $setting.defaultLanguage timezone = $setting.timezone } } |