Modules/IdLE.Steps.DirectorySync/Public/Get-IdleStepMetadataCatalog.ps1
|
function Get-IdleStepMetadataCatalog { <# .SYNOPSIS Returns metadata for DirectorySync step types. .DESCRIPTION This function provides a metadata catalog mapping Step.Type to metadata objects for directory sync step types owned by this step pack. Each metadata object contains RequiredCapabilities (array of capability identifiers). The metadata is used during plan building to derive required provider capabilities for each step, removing the need to declare RequiresCapabilities in workflow definitions. .OUTPUTS Hashtable (case-insensitive) mapping Step.Type (string) to metadata (hashtable). .EXAMPLE $metadata = Get-IdleStepMetadataCatalog $metadata['IdLE.Step.TriggerDirectorySync'].RequiredCapabilities # Returns: @('IdLE.DirectorySync.Trigger', 'IdLE.DirectorySync.Status') #> [CmdletBinding()] param() $catalog = [hashtable]::new([System.StringComparer]::OrdinalIgnoreCase) # IdLE.Step.TriggerDirectorySync - requires trigger and status capabilities # Note: Even when With.Wait = $false, we advertise Status capability to keep planning deterministic $catalog['IdLE.Step.TriggerDirectorySync'] = @{ RequiredCapabilities = @('IdLE.DirectorySync.Trigger', 'IdLE.DirectorySync.Status') } return $catalog } |