Private/DataCollection/ConvertTo-PolicyCustomExtensions.ps1
|
function ConvertTo-PolicyCustomExtensions { <#! .SYNOPSIS Converts access package policy custom extension stage settings into a normalized collection. .DESCRIPTION The Access Package Documentor converter expects custom extensions to be provided per-policy as an array of objects with: - id - stage - customExtension (expanded) This helper converts Graph's customExtensionStageSettings array into that shape. .PARAMETER PolicyId The assignment policy id. .PARAMETER StageSettings The customExtensionStageSettings array from Microsoft Graph. .OUTPUTS System.Object[] #> [CmdletBinding()] param( [Parameter(Mandatory)][ValidateNotNullOrEmpty()][string]$PolicyId, [Parameter(Mandatory)][ValidateNotNull()][object[]]$StageSettings ) $converted = @() $stageIdx = 0 foreach ($s in @($StageSettings)) { $stageIdx++ $ss = if ($s -is [psobject]) { $s } else { ConvertTo-PSCustomObjectRecursive $s } $converted += [pscustomobject]@{ id = if ($ss.id) { $ss.id } else { ("{0}-stage-{1}" -f $PolicyId, $stageIdx) } stage = $ss.stage customExtension = $ss.customExtension } } return ,$converted } |