Public/Teams/Get-MMTeam.ps1

# Получение команды (team) MatterMost

function Get-MMTeam {
    <#
    .SYNOPSIS
        Returns a MatterMost team by ID, name, all teams, or filtered by expression.
    .EXAMPLE
        Get-MMTeam -All
    .EXAMPLE
        Get-MMTeam -TeamId 'abc123'
    .EXAMPLE
        Get-MMTeam -Name 'testteam'
    .EXAMPLE
        Get-MMTeam -Filter { $_.name -like 'dev*' }
    #>

    [OutputType('MMTeam')]
    [CmdletBinding(DefaultParameterSetName = 'All')]
    param(
        [Parameter(ParameterSetName = 'All')]
        [switch]$All,

        [Parameter(Mandatory, ParameterSetName = 'ById', ValueFromPipelineByPropertyName)]
        [Alias('id')]
        [string]$TeamId,

        [Parameter(Mandatory, ParameterSetName = 'ByName', Position = 0)]
        [string]$Name,

        [Parameter(Mandatory, ParameterSetName = 'Filter')]
        [scriptblock]$Filter
    )

    process {
        switch ($PSCmdlet.ParameterSetName) {
            'ById'   { Invoke-MMRequest -Endpoint "teams/$TeamId" | ConvertTo-MMTeam }
            'ByName' { Invoke-MMRequest -Endpoint "teams/name/$Name" | ConvertTo-MMTeam }
            'All'    { Get-MMTeamList | ConvertTo-MMTeam }
            'Filter' { Get-MMTeamList | ConvertTo-MMTeam | Where-Object $Filter }
        }
    }
}