Public/Get-GW2AchievementGroups.ps1

<#
.SYNOPSIS
Retrieves achievement groups from the Guild Wars 2 API.
 
.DESCRIPTION
Calls the Guild Wars 2 API v2 /achievements/groups endpoint.
Returns an array of achievement group IDs.
 
.PARAMETER Ids
An array of achievement group IDs to retrieve.
 
.PARAMETER Lang
The language to use for the response. Valid values are "en", "de", "fr", "ja", "ko", "zh".
 
.EXAMPLE
Get-GW2AchievementGroups
Returns an array of achievement group IDs.
 
.NOTES
- Requires network access to api.guildwars2.com.
- This is a public endpoint and does not require an API key.
#>

function Get-GW2AchievementGroups {
    param (
        [Parameter(Mandatory = $false)]
        [string[]]$Ids,
        [Parameter(Mandatory = $false)]
        [ValidateSet("en", "de", "fr", "ja", "ko", "zh")]
        [string]$Lang
    )

    $url = "https://api.guildwars2.com/v2/achievements/groups"
    if ($Ids) {
        # Join IDs with commas for the query parameter
        $idString = $Ids -join ','
        $url = $url + "?ids=$idString"
    } 
    if ($Lang) {
        $url = $url + "&lang=$Lang"
    }
    $response = Invoke-RestMethod -Uri $url -Method Get
    return $response
}