usergroup/Get-HubUserGroup.ps1

function Get-HubUserGroup {
    <#
      .SYNOPSIS
        Obtains user groups defined on the hub instance
      .DESCRIPTION
        
      .EXAMPLE
  #>

    [OutputType([BlackDuck.Hub.UserGroup])]
    Param(
        #The maximum number of groups to return
        [Parameter(HelpMessage='The maximum number of user groups to return')]
        [int] $Limit = $hubDefaultLimit,

        #If set, only active user grousp will be returned
        [Parameter(HelpMessage='If set, only active user groups will be returned')]
        [switch] $ActiveOnly,

        #A custom query (e.g. a substring of the group name)
        [Parameter(HelpMessage='Query narowing the range of results to return', ParameterSetName="Query")]
        [string] $Query,

        #The name of the group to return
        [Parameter(HelpMessage='The name of the user group to look up', ParameterSetName="ByName")]
        [string] $Name
    )


    VerifyHubLogin

    $url="${Global:hubUrl}/api/usergroups?limit=${Limit}"

    if ($ActiveOnly) {
        $url="${url}&activeOnly=true"
    }

    if ($Name){
        $Query = $Name
    }
    if ($Query){
        $url="${url}&q=${Query}"
    }

    $raw=Invoke-RestMethod -Uri $url @Global:hubInvocationParams     
    $items = $raw.items

    #Remove surplus matches that may have resulted in query lookup for a specific name
    if ($Name) {
        $items = $items | Where-Object {$_.name -eq $Name}
    }
    
    return $items | ForEach-Object { 
        [BlackDuck.Hub.UserGroup]::Parse($_)
    }
}