Modules/Private/2.ProcessingFunctions/Invoke-ARISubJob.ps1

<#
.Synopsis
Module responsible for invoking subscription processing jobs.
 
.DESCRIPTION
This module starts jobs to process Azure subscriptions and their associated resources, either in automation or manual mode.
 
.Link
https://github.com/microsoft/ARI/Modules/Private/2.ProcessingFunctions/Invoke-ARISubJob.ps1
 
.COMPONENT
This PowerShell Module is part of Azure Resource Inventory (ARI).
 
.NOTES
Version: 3.6.0
First Release Date: 15th Oct, 2024
Authors: Claudio Merola
#>


function Invoke-ARISubJob {
    Param($Subscriptions, $Automation, $Resources, $CostData, $ARIModule, $Debug)
    if ($Debug.IsPresent)
        {
            $DebugPreference = 'Continue'
            $ErrorActionPreference = 'Continue'
        }
    else
        {
            $ErrorActionPreference = "silentlycontinue"
        }

    if ($Automation.IsPresent)
        {
            Write-Output ('Starting Subscription Job')
            Start-ThreadJob -Name 'Subscriptions' -ScriptBlock {

                import-module $($args[2])

                $SubResult = Start-ARISubscriptionJob -Subscriptions $($args[0]) -Resources $($args[1]) -CostData $($args[3])

                $SubResult

            } -ArgumentList $Subscriptions, $Resources, $ARIModule, $CostData | Out-Null
        }
    else
        {
            Write-Debug ((get-date -Format 'yyyy-MM-dd_HH_mm_ss')+' - '+'Starting Subscription Job.')
            Start-Job -Name 'Subscriptions' -ScriptBlock {

                import-module $($args[2])

                $SubResult = Start-ARISubscriptionJob -Subscriptions $($args[0]) -Resources $($args[1]) -CostData $($args[3])

                $SubResult

            } -ArgumentList $Subscriptions, $Resources, $ARIModule, $CostData | Out-Null
        }

}