Public/New-CollectionGroupLink.ps1
|
<# .SYNOPSIS Gets collection group links from the Fortytwo Collections API. .DESCRIPTION This function retrieves collections from the Fortytwo Collections API. It supports pagination to handle large result sets. #> function New-CollectionGroupLink { [CmdletBinding(DefaultParameterSetName = "Default")] param ( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ValidatePattern("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", ErrorMessage = "Id must be a valid GUID.")] # Is a guid connector object id [string] $CollectionId, [Parameter(Mandatory = $true, ValueFromPipeline = $true)] [ValidatePattern("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$", ErrorMessage = "Id must be a valid GUID.")] # Is a guid connector object id [string] $EntraIDGroupObjectId ) process { if (-not $Script:APIRoot -or -not $Script:AccessTokenProfile) { throw "Not connected to Fortytwo Collections. Please run Connect-Collections first." } $Uri = "$Script:APIRoot" -f "group-link", "/group-links" Write-Verbose "Request URI: $Uri" $body = @{ collectionId = $CollectionId entraGroupId = $EntraIDGroupObjectId } | ConvertTo-Json $result = Invoke-RestMethod -Uri $Uri -Headers (Get-CollectionHeader) -Method POST -Body $body -ContentType "application/json" if ($result.isSuccess) { Write-Verbose "Successfully created collection group link with CollectionId: $CollectionId and EntraIDGroupObjectId: $EntraIDGroupObjectId" } } } |