Framework/Core/SVT/SVTResourceResolver.ps1

Set-StrictMode -Version Latest

class SVTResourceResolver: AzSKRoot
{
    [string[]] $ResourceNames = @();
    [string] $ResourceType = "";
    [ResourceTypeName] $ResourceTypeName = [ResourceTypeName]::All;
    [Hashtable] $Tag = $null;
    [string] $TagName = "";
    [string[]] $TagValue = "";
    hidden [string[]] $ResourceGroups = @();
    [ResourceTypeName] $ExcludeResourceTypeName = [ResourceTypeName]::All;
    [string[]] $ExcludeResourceNames=@();
    [SVTResource[]] $ExcludedResources=@();
    [string] $ExcludeResourceWarningMessage=[string]::Empty
    [string[]] $ExcludeResourceGroupNames=@();
    [string[]] $ExcludedResourceGroupNames=@();
    [string] $ExcludeResourceGroupWarningMessage=[string]::Empty
    [SVTResource[]] $SVTResources = @();
    [int] $SVTResourcesFoundCount=0;
    
    [string] $ResourcePath;
    [string] $environmentName;
    [bool] $AdminScan;
    hidden [string[]] $ProjectNames = @();
    hidden [string[]] $BuildNames = @();
    hidden [string[]] $ReleaseNames = @();
    hidden [string[]] $AgentPools = @();
    SVTResourceResolver([string]$environmentName, $Admin, $ScanAllArtifacts): Base($environmentName)
    {
        $this.environmentName = $environmentName
        $this.AdminScan = $Admin

        if($ScanAllArtifacts)
        {
        <#
            $this.ProjectNames = "*"
            $this.BuildNames = "*"
            $this.ReleaseNames = "*"
            $this.AgentPools = "*"
        #>

        }        
    }

    [void] LoadResourcesForScan()
    {
        $svtResource = [SVTResource]::new();
        $svtResource.ResourceName = $this.environmentName;
        $svtResource.ResourceType = "PowerPlatform.Environment";
        $svtResource.ResourceId = "Organization/$($this.environmentName)/Environment"
        $svtResource.ResourceTypeMapping = ([SVTMapping]::AzSKPowerPlatformResourceMappping |
                                        Where-Object { $_.ResourceType -eq $svtResource.ResourceType } |
                                        Select-Object -First 1)
        $this.SVTResources +=$svtResource
           
        $this.SVTResourcesFoundCount = $this.SVTResources.Count
    }
}