Public/Teams/Set-MMTeam.ps1
|
# Обновление команды (team) MatterMost function Set-MMTeam { <# .SYNOPSIS Обновляет параметры команды MatterMost (PUT /teams/{id}/patch). .EXAMPLE Set-MMTeam -TeamId 'abc123' -DisplayName 'New Name' .EXAMPLE Get-MMTeam -Name 'myteam' | Set-MMTeam -Description 'Updated description' .EXAMPLE Set-MMTeam -TeamId 'abc123' -AllowOpenInvite $true .EXAMPLE Set-MMTeam -TeamId 'abc123' -Properties @{ new_field = 'value' } #> [CmdletBinding()] param( [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [Alias('id')] [string]$TeamId, [string]$DisplayName, [string]$Description, [string]$CompanyName, [string]$InviteId, [nullable[bool]]$AllowOpenInvite, # Произвольные поля — для новых или незадокументированных свойств API [hashtable]$Properties ) process { $paramMap = @{ DisplayName = 'display_name' Description = 'description' CompanyName = 'company_name' InviteId = 'invite_id' AllowOpenInvite = 'allow_open_invite' } $body = @{} foreach ($param in $paramMap.Keys) { if ($PSBoundParameters.ContainsKey($param)) { $body[$paramMap[$param]] = $PSBoundParameters[$param] } } if ($Properties) { foreach ($key in $Properties.Keys) { $body[$key] = $Properties[$key] } } Invoke-MMRequest -Endpoint "teams/$TeamId/patch" -Method PUT -Body $body | Add-MMTypeName -TypeName 'MatterMost.Team' } } |