CloudTargetAssessment.psm1

#Requires -Version 7.0
#Requires -PSEdition Core,Desktop
#Requires -Assembly lib\DuckDB.NET.Data.dll
#Requires -Module @{'ModuleName'='PSFramework';'ModuleVersion'='1.14.457';'GUID'='8028b914-132b-431f-baa9-94a6952f21ff'}

<#
.SYNOPSIS
    CloudTargetAssessment
.DESCRIPTION
    Avaliação de segurança do seu ambiente Microsoft 365, com relatório em português e recomendações da Cloud Target.
.NOTES
    ModuleVersion: 1.0.1-preview
    GUID: 787ea539-d50a-45ab-8448-b2a676842f8b
    Author: Cloud Target
    CompanyName: Cloud Target
    Copyright: (c) Cloud Target. All rights reserved. Based on microsoft/zerotrustassessment (MIT).
.FUNCTIONALITY
    Clear-CtRequiredModule, Connect-CtAssessment, Disconnect-CtAssessment, Get-CtCurrentLicense, Get-CtExportStatistics, Get-CtGraphScope, Get-CtTest, Get-CtTestStatistics, Invoke-CtAssessment, Invoke-CtAzureRequest, Invoke-CtAzureResourceGraphRequest, Invoke-CtGraphRequest
.LINK
    https://github.com/genesisz27/alvozero
#>


#region NestedModules Script(s)

#endregion

# To give a module-wide constant point of reference
$script:ModuleRoot = $PSScriptRoot
[string[]] $script:ConnectedService = @()
[string[]] $script:CurrentLicense = @()

# Load PowerShell Classes
foreach ($file in Get-ChildItem -Path "$script:ModuleRoot\classes" -Recurse -Filter "*.ps1") {
    try { . $file.FullName }
    catch { Write-PSFMessage -Level Error -Message "Failed to import file {0}" -StringValues $file.FullName -ErrorRecord $_ -Target $file }
}

# Load Non-Public commands
foreach ($file in Get-ChildItem -Path "$script:ModuleRoot\private" -Recurse -Filter "*.ps1") {
    try { . $file.FullName }
    catch { Write-PSFMessage -Level Error -Message "Failed to import file {0}" -StringValues $file.FullName -ErrorRecord $_ -Target $file }
}

# Load Public commands
foreach ($file in Get-ChildItem -Path "$script:ModuleRoot\public" -Recurse -Filter "*.ps1") {
    try { . $file.FullName }
    catch { Write-PSFMessage -Level Error -Message "Failed to import file {0}" -StringValues $file.FullName -ErrorRecord $_ -Target $file }
}

# Execute Startup scripts
foreach ($file in Get-ChildItem -Path "$script:ModuleRoot\scripts" -Recurse -Filter "*.ps1") {
    try { . $file.FullName }
    catch { Write-PSFMessage -Level Error -Message "Failed to import file {0}" -StringValues $file.FullName -ErrorRecord $_ -Target $file }
}

# Ready the Tests
foreach ($file in Get-ChildItem -Path "$script:ModuleRoot\tests" -Recurse -Filter "*.ps1") {
    try { . $file.FullName }
    catch { Write-PSFMessage -Level Error -Message "Failed to import file {0}" -StringValues $file.FullName -ErrorRecord $_ -Target $file }
}