public/casemgmt.ps1
function Edit-FalconNgsCaseNotificationGroup { <# .SYNOPSIS Modify a Falcon NGSIEM case notification group .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Name Notification group name .PARAMETER Description Notification group description .PARAMETER Channel Objects containing 'channels' properties ('channel_id', 'channel_name', 'recipients', 'type') .PARAMETER Id Notification group identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Edit-FalconNgsCaseNotificationGroup #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/notification-groups/v1:patch',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:patch',ValueFromPipelineByPropertyName, Position=1)] [string]$Name, [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:patch',ValueFromPipelineByPropertyName, Position=2)] [string]$Description, [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:patch',ValueFromPipelineByPropertyName, Position=3)] [Alias('channels')] [object[]]$Channel, [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:patch',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline,Position=4)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [string]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('channels','description','id','name') }} } } process { Invoke-Falcon @Param -UserInput $PSBoundParameters } } function Edit-FalconNgsCaseSla { <# .SYNOPSIS Modify a Falcon NGSIEM case SLA .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Name SLA name .PARAMETER Description SLA description .PARAMETER Goal Objects containing 'goals' properties ('duration_seconds', 'escalation_policy', 'type') .PARAMETER Id SLA identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Edit-FalconNgsCaseSla #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/slas/v1:patch',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:patch',ValueFromPipelineByPropertyName,Position=1)] [string]$Name, [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:patch',ValueFromPipelineByPropertyName,Position=2)] [string]$Description, [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:patch',ValueFromPipelineByPropertyName,Position=3)] [Alias('goals')] [object[]]$Goal, [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:patch',Mandatory,ValueFromPipelineByPropertyName, ValueFromPipeline,Position=4)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [string]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('description','goals','id','name') }} } } process { Invoke-Falcon @Param -UserInput $PSBoundParameters } } function Edit-FalconNgsCaseTemplate { <# .SYNOPSIS Modify a Falcon NGSIEM case template .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Name Case template name .PARAMETER Description Case template description .PARAMETER SlaId SLA identifier .PARAMETER Field Objects containing 'fields' properties ('data_type', 'input_type', 'multivalued', 'name', 'options', 'required') .PARAMETER Id Case template identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Edit-FalconNgsCaseTemplate #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/templates/v1:patch',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:patch',ValueFromPipelineByPropertyName, Position=1)] [string]$Name, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:patch',ValueFromPipelineByPropertyName, Position=2)] [string]$Description, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:patch',ValueFromPipelineByPropertyName, Position=3)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('sla_id')] [string]$SlaId, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:patch',ValueFromPipelineByPropertyName, Position=4)] [Alias('fields')] [object[]]$Field, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:patch',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline,Position=5)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [string]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('description','fields','id','name','sla_id') }} } } process { if ($PSBoundParameters.Field) { # Select required properties under 'fields' and 'options' [PSCustomObject[]]$PSBoundParameters.Field = @($PSBoundParameters.Field).foreach{ @([PSCustomObject]$_ | Select-Object data_type,input_type,multivalued,name,options,required).foreach{ if ($_.options) { [PSCustomObject[]]$_.options = @($_.options | Select-Object id,value) } $_ } } } Invoke-Falcon @Param -UserInput $PSBoundParameters } } function Get-FalconNgsCaseField { <# .SYNOPSIS Search for Falcon NGSIEM case fields .DESCRIPTION Requires 'Case Templates: Read'. .PARAMETER Id Field identifier .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconNgsCaseField #> [CmdletBinding(DefaultParameterSetName='/casemgmt/queries/fields/v1:get',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/fields/v1:get',Mandatory,ValueFromPipelineByPropertyName, ValueFromPipeline)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id, [Parameter(ParameterSetName='/casemgmt/queries/fields/v1:get',Position=1)] [ValidateScript({Test-FqlStatement $_})] [string]$Filter, [Parameter(ParameterSetName='/casemgmt/queries/fields/v1:get',Position=2)] [int32]$Limit, [Parameter(ParameterSetName='/casemgmt/queries/fields/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/casemgmt/queries/fields/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/casemgmt/queries/fields/v1:get')] [switch]$All, [Parameter(ParameterSetName='/casemgmt/queries/fields/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }} else { Invoke-Falcon @Param -UserInput $PSBoundParameters } } end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function Get-FalconNgsCaseNotificationGroup { <# .SYNOPSIS Search for Falcon NGSIEM case notification groups .DESCRIPTION Requires 'Case Templates: Read'. .PARAMETER Id Notification group identifier .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconNgsCaseNotificationGroup #> [CmdletBinding(DefaultParameterSetName='/casemgmt/queries/notification-groups/v1:get',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:get',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id, [Parameter(ParameterSetName='/casemgmt/queries/notification-groups/v1:get',Position=1)] [ValidateScript({Test-FqlStatement $_})] [string]$Filter, [Parameter(ParameterSetName='/casemgmt/queries/notification-groups/v1:get',Position=2)] [int32]$Limit, [Parameter(ParameterSetName='/casemgmt/queries/notification-groups/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/casemgmt/queries/notification-groups/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/casemgmt/queries/notification-groups/v1:get')] [switch]$All, [Parameter(ParameterSetName='/casemgmt/queries/notification-groups/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }} else { Invoke-Falcon @Param -UserInput $PSBoundParameters } } end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function Get-FalconNgsCaseSla { <# .SYNOPSIS Search for Falcon NGSIEM case SLAs .DESCRIPTION Requires 'Case Templates: Read'. .PARAMETER Id SLA identifier .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconNgsCaseSla #> [CmdletBinding(DefaultParameterSetName='/casemgmt/queries/slas/v1:get',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:get',Mandatory,ValueFromPipelineByPropertyName, ValueFromPipeline)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id, [Parameter(ParameterSetName='/casemgmt/queries/slas/v1:get',Position=1)] [ValidateScript({Test-FqlStatement $_})] [string]$Filter, [Parameter(ParameterSetName='/casemgmt/queries/slas/v1:get',Position=2)] [int32]$Limit, [Parameter(ParameterSetName='/casemgmt/queries/slas/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/casemgmt/queries/slas/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/casemgmt/queries/slas/v1:get')] [switch]$All, [Parameter(ParameterSetName='/casemgmt/queries/slas/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }} else { Invoke-Falcon @Param -UserInput $PSBoundParameters } } end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function Get-FalconNgsCaseTemplate { <# .SYNOPSIS Search for Falcon NGSIEM case templates .DESCRIPTION Requires 'Case Templates: Read'. .PARAMETER Id Case template identifier .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconNgsCaseTemplate #> [CmdletBinding(DefaultParameterSetName='/casemgmt/queries/templates/v1:get',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:get',Mandatory,ValueFromPipelineByPropertyName, ValueFromPipeline)] [Alias('ids')] [string[]]$Id, [Parameter(ParameterSetName='/casemgmt/queries/templates/v1:get',Position=1)] [ValidateScript({Test-FqlStatement $_})] [string]$Filter, [Parameter(ParameterSetName='/casemgmt/queries/templates/v1:get',Position=2)] [int32]$Limit, [Parameter(ParameterSetName='/casemgmt/queries/templates/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/casemgmt/queries/templates/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/casemgmt/queries/templates/v1:get')] [switch]$All, [Parameter(ParameterSetName='/casemgmt/queries/templates/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }} else { Invoke-Falcon @Param -UserInput $PSBoundParameters } } end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function Get-FalconNgsCaseTemplateSnapshot { <# .SYNOPSIS Search for Falcon NGSIEM case template snapshots .DESCRIPTION Requires 'Case Templates: Read'. .PARAMETER Id Case template snapshot identifier .PARAMETER TemplateId Template identifiers to return the latest snapshot .PARAMETER Version Retrieve a specific template version, or provide zero to return the latest snapshot .PARAMETER Filter Falcon Query Language expression to limit results .PARAMETER Limit Maximum number of results per request .PARAMETER Offset Position to begin retrieving results .PARAMETER Detailed Retrieve detailed information .PARAMETER All Repeat requests until all available results are retrieved .PARAMETER Total Display total result count instead of results .LINK https://github.com/crowdstrike/psfalcon/wiki/Get-FalconNgsCaseTemplateSnapshot #> [CmdletBinding(DefaultParameterSetName='/casemgmt/queries/template-snapshots/v1:get',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/template-snapshots/v1:get',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id, [Parameter(ParameterSetName='/casemgmt/entities/template-snapshots/v1:get',Position=1)] [Alias('template_ids')] [string[]]$TemplateId, [Parameter(ParameterSetName='/casemgmt/entities/template-snapshots/v1:get',Position=2)] [Alias('versions')] [int32[]]$Version, [Parameter(ParameterSetName='/casemgmt/queries/template-snapshots/v1:get',Position=1)] [ValidateScript({Test-FqlStatement $_})] [string]$Filter, [Parameter(ParameterSetName='/casemgmt/queries/template-snapshots/v1:get',Position=2)] [int32]$Limit, [Parameter(ParameterSetName='/casemgmt/queries/template-snapshots/v1:get')] [int32]$Offset, [Parameter(ParameterSetName='/casemgmt/queries/template-snapshots/v1:get')] [switch]$Detailed, [Parameter(ParameterSetName='/casemgmt/queries/template-snapshots/v1:get')] [switch]$All, [Parameter(ParameterSetName='/casemgmt/queries/template-snapshots/v1:get')] [switch]$Total ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }} else { Invoke-Falcon @Param -UserInput $PSBoundParameters } } end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function New-FalconNgsCaseNotificationGroup { <# .SYNOPSIS Create a Falcon NGSIEM case notification group .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Name Notification group name .PARAMETER Description Notification group description .PARAMETER Channel Objects containing 'channels' properties ('channel_id', 'channel_name', 'recipients', 'type') .LINK https://github.com/crowdstrike/psfalcon/wiki/New-FalconNgsCaseNotificationGroup #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/notification-groups/v1:post',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:post',Mandatory, ValueFromPipelineByPropertyName,Position=1)] [string]$Name, [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:post',ValueFromPipelineByPropertyName, Position=2)] [string]$Description, [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:post',ValueFromPipelineByPropertyName, Position=3)] [Alias('channels')] [object[]]$Channel ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('channels','description','name') }} } } process { Invoke-Falcon @Param -UserInput $PSBoundParameters } } function New-FalconNgsCaseSla { <# .SYNOPSIS Create a Falcon NGSIEM case SLA .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Name SLA name .PARAMETER Description SLA description .PARAMETER Goal Objects containing 'goals' properties ('duration_seconds', 'escalation_policy', 'type') .LINK https://github.com/crowdstrike/psfalcon/wiki/New-FalconNgsCaseSla #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/slas/v1:post',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:post',Mandatory,ValueFromPipelineByPropertyName, Position=1)] [string]$Name, [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:post',ValueFromPipelineByPropertyName,Position=2)] [string]$Description, [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:post',ValueFromPipelineByPropertyName,Position=3)] [Alias('goals')] [object[]]$Goal ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('description','goals','name') }} } } process { Invoke-Falcon @Param -UserInput $PSBoundParameters } } function New-FalconNgsCaseTemplate { <# .SYNOPSIS Create a Falcon NGSIEM case template .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Name Case template name .PARAMETER Description Case template description .PARAMETER SlaId SLA identifier .PARAMETER Field Objects containing 'fields' properties ('data_type', 'input_type', 'multivalued', 'name', 'options', 'required') .LINK https://github.com/crowdstrike/psfalcon/wiki/New-FalconNgsCaseTemplate #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/templates/v1:post',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:post',Mandatory,ValueFromPipelineByPropertyName, Position=1)] [string]$Name, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:post',ValueFromPipelineByPropertyName,Position=2)] [string]$Description, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:post',ValueFromPipelineByPropertyName,Position=3)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('sla_id')] [string]$SlaId, [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:post',ValueFromPipelineByPropertyName,Position=4)] [Alias('fields')] [object[]]$Field ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name Endpoint = $PSCmdlet.ParameterSetName Format = @{ Body = @{ root = @('description','fields','name','sla_id') }} } } process { if ($PSBoundParameters.Field) { [PSCustomObject[]]$PSBoundParameters.Field = @($PSBoundParameters.Field).foreach{ # Select required properties under 'fields' and 'options' @([PSCustomObject]$_ | Select-Object data_type,input_type,multivalued,name,options,required).foreach{ if ($_.options) { [PSCustomObject[]]$_.options = @($_.options | Select-Object value) } $_ } } } Invoke-Falcon @Param -UserInput $PSBoundParameters } } function Remove-FalconNgsCaseNotificationGroup { <# .SYNOPSIS Remove Falcon NGSIEM case notification groups .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Id Notification group identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Remove-FalconNgsCaseNotificationGroup #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/notification-groups/v1:delete',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/notification-groups/v1:delete',Mandatory, ValueFromPipelineByPropertyName,ValueFromPipeline,Position=1)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function Remove-FalconNgsCaseSla { <# .SYNOPSIS Remove Falcon NGSIEM case SLAs .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Id SLA identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Remove-FalconNgsCaseSla #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/slas/v1:delete',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/slas/v1:delete',Mandatory,ValueFromPipelineByPropertyName, ValueFromPipeline,Position=1)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } function Remove-FalconNgsCaseTemplate { <# .SYNOPSIS Remove Falcon NGSIEM case templates .DESCRIPTION Requires 'Case Templates: Write'. .PARAMETER Id Case template identifier .LINK https://github.com/crowdstrike/psfalcon/wiki/Remove-FalconNgsCaseTemplate #> [CmdletBinding(DefaultParameterSetName='/casemgmt/entities/templates/v1:delete',SupportsShouldProcess)] param( [Parameter(ParameterSetName='/casemgmt/entities/templates/v1:delete',Mandatory,ValueFromPipelineByPropertyName, ValueFromPipeline,Position=1)] [ValidatePattern('^[a-fA-F0-9]{32}$')] [Alias('ids')] [string[]]$Id ) begin { $Param = @{ Command = $MyInvocation.MyCommand.Name; Endpoint = $PSCmdlet.ParameterSetName } [System.Collections.Generic.List[string]]$List = @() } process { if ($Id) { @($Id).foreach{ $List.Add($_) }}} end { if ($List) { $PSBoundParameters['Id'] = @($List) Invoke-Falcon @Param -UserInput $PSBoundParameters } } } |