Skip to content

Commit

Permalink
Merge pull request #5716 from NikCharlebois/Streamline-Export
Browse files Browse the repository at this point in the history
Updated Export logic
  • Loading branch information
NikCharlebois authored Feb 3, 2025
2 parents 6515c89 + 6f41679 commit d448493
Show file tree
Hide file tree
Showing 8 changed files with 235 additions and 21 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

* AADConditionalAccessPolicy
* Changed the InsiderRiskTypes property to a string array.
* MISC
* Changed the CIMInstance logic of various resources to us common logic.

# 1.25.129.3

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1598,9 +1598,29 @@ function Export-TargetResource
{
$Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode `
-Results $Results

if ($Results.Permissions.Count -gt 0)
{
$Results.Permissions = Get-M365DSCAzureADAppPermissionsAsString $Results.Permissions
$complexMapping = @(
@{
Name = 'Permissions'
CimInstanceName = 'MSFT_AADApplicationPermission'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.Permissions `
-CIMInstanceName 'MSFT_AADApplicationPermission' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.Permissions = $complexTypeStringResult
}
else
{
$Results.Remove('Permissions') | Out-Null
}
}

if ($null -ne $Results.Api)
Expand Down Expand Up @@ -1733,7 +1753,6 @@ function Export-TargetResource
}
}


if ($null -ne $Results.KeyCredentials)
{
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
Expand Down Expand Up @@ -1793,16 +1812,20 @@ function Export-TargetResource
if ($null -ne $Results.Permissions)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'Permissions'
-ParameterName 'Permissions' `
-IsCIMArray:$True
}

if ($Results.OptionalClaims)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'OptionalClaims' -IsCIMArray:$False
}

if ($Results.OnPremisesPublishing)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'OnPremisesPublishing' -IsCIMArray:$False
}

if ($Results.AuthenticationBehaviors)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'AuthenticationBehaviors' -IsCIMArray:$False
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -954,10 +954,21 @@ function Export-TargetResource
$Results.Remove('ValidOperatingSystemBuildRanges') | Out-Null
}
}
if ($Results.Assignments)
if ($null -ne $Results.Assignments)
{
$complexTypeStringResult = Get-M365DSCAssignmentsAsString -Params $Results.Assignments
if ($complexTypeStringResult)
$complexMapping = @(
@{
Name = 'Assignments'
CimInstanceName = 'MSFT_DeviceManagementConfigurationPolicyAssignments'
sRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.Assignments `
-CIMInstanceName 'MSFT_DeviceManagementConfigurationPolicyAssignments' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.Assignments = $complexTypeStringResult
}
Expand All @@ -971,18 +982,22 @@ function Export-TargetResource
-ModulePath $PSScriptRoot `
-Results $Results `
-Credential $Credential

if ($Results.ValidOperatingSystemBuildRanges)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'ValidOperatingSystemBuildRanges'
}

if ($Results.Assignments)
{
$isCIMArray = $false
if ($Results.Assignments.getType().Fullname -like '*[[\]]')
{
$isCIMArray = $true
}
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'Assignments' -IsCIMArray:$isCIMArray
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'Assignments' `
-IsCIMArray:$isCIMArray
}

$dscContent += $currentDSCBlock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -673,9 +673,28 @@ function Export-TargetResource

if ($Results -is [System.Collections.Hashtable] -and $Results.Count -gt 1)
{
if ($Results.Rules.Count -gt 0)
if ($null -ne $Results.Rules)
{
$Results.Rules = Get-M365DSCTenantIsolationRule $Results.Rules
$complexMapping = @(
@{
Name = 'Rules'
CimInstanceName = 'MSFT_PPTenantRule'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.Rules `
-CIMInstanceName 'MSFT_PPTenantRule' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.Rules = $complexTypeStringResult
}
else
{
$Results.Remove('Rules') | Out-Null
}
}
$Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode `
-Results $Results
Expand All @@ -688,7 +707,8 @@ function Export-TargetResource
if ($null -ne $Results.Rules)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'Rules'
-ParameterName 'Rules' `
-IsCIMArray:$True
}
$dscContent += $currentDSCBlock

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -856,7 +856,26 @@ function Export-TargetResource

if ($null -ne $Results.AdvancedSettings)
{
$Results.AdvancedSettings = ConvertTo-AdvancedSettingsString -AdvancedSettings $Results.AdvancedSettings
$complexMapping = @(
@{
Name = 'AdvancedSettings'
CimInstanceName = 'MSFT_SCLabelSetting'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.AdvancedSettings `
-CIMInstanceName 'MSFT_SCLabelSetting' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.AdvancedSettings = $complexTypeStringResult
}
else
{
$Results.Remove('AdvancedSettings') | Out-Null
}
}

$Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode `
Expand All @@ -868,7 +887,9 @@ function Export-TargetResource
-Credential $Credential
if ($null -ne $Results.AdvancedSettings)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'AdvancedSettings'
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'AdvancedSettings' `
-IsCIMArray:$True
}

Write-Host $Global:M365DSCEmojiGreenCheckMark
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1598,35 +1598,121 @@ function Export-TargetResource

if ($null -ne $Results.AdvancedSettings)
{
$Results.AdvancedSettings = ConvertTo-AdvancedSettingsString -AdvancedSettings $Results.AdvancedSettings
$complexMapping = @(
@{
Name = 'AdvancedSettings'
CimInstanceName = 'MSFT_SCLabelSetting'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.AdvancedSettings `
-CIMInstanceName 'MSFT_SCLabelSetting' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.AdvancedSettings = $complexTypeStringResult
}
else
{
$Results.Remove('AdvancedSettings') | Out-Null
}
}

if ($null -ne $Results.LocaleSettings)
{
$Results.LocaleSettings = ConvertTo-LocaleSettingsString -LocaleSettings $Results.LocaleSettings
$complexMapping = @(
@{
Name = 'LocaleSettings'
CimInstanceName = 'MSFT_SCLabelLocaleSettings'
IsRequired = $False
}
@{
Name = 'LabelSettings'
CimInstanceName = 'MSFT_SCLabelSetting'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.LocaleSettings `
-CIMInstanceName 'MSFT_SCLabelLocaleSettings' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.LocaleSettings = $complexTypeStringResult
}
else
{
$Results.Remove('LocaleSettings') | Out-Null
}
}

if ($null -ne $Results.AutoLabelingSettings)
{
$Results.AutoLabelingSettings = ConvertTo-AutoLabelingSettingsString -AutoLabelingSettings $Results.AutoLabelingSettings
$complexMapping = @(
@{
Name = 'AutoLabelingSettings'
CimInstanceName = 'MSFT_SCSLAutoLabelingSettings'
IsRequired = $False
}
@{
Name = 'Groups'
CimInstanceName = 'MSFT_SCSLSensitiveInformationGroup'
IsRequired = $False
}
@{
Name = 'SensitiveInformationType'
CimInstanceName = 'MSFT_SCSLSensitiveInformationType'
IsRequired = $False
}
@{
Name = 'TrainableClassifier'
CimInstanceName = 'MSFT_SCSLTrainableClassifiers'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.AutoLabelingSettings `
-CIMInstanceName 'MSFT_SCSLAutoLabelingSettings' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.AutoLabelingSettings = $complexTypeStringResult
}
else
{
$Results.Remove('AutoLabelingSettings') | Out-Null
}
}

$Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode `
-Results $Results
$currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName `
-ConnectionMode $ConnectionMode `
-ModulePath $PSScriptRoot `
-Results $Results `
-Credential $Credential

if ($null -ne $Results.AdvancedSettings)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'AdvancedSettings'
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'AdvancedSettings' `
-IsCIMArray:$True
}
if ($null -ne $Results.LocaleSettings)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'LocaleSettings'
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'LocaleSettings' `
-IsCIMArray:$True
}
if ($null -ne $Results.AutoLabelingSettings)
{
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock -ParameterName 'AutoLabelingSettings'
$currentDSCBlock = Convert-DSCStringParamToVariable -DSCBlock $currentDSCBlock `
-ParameterName 'AutoLabelingSettings' `
-IsCIMArray:$True
}

Write-Host $Global:M365DSCEmojiGreenCheckMark
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,29 @@ function Export-TargetResource
$Results = Get-TargetResource @Params
$Results = Update-M365DSCExportAuthenticationResults -ConnectionMode $ConnectionMode `
-Results $Results
$Results.Palette = ConvertTo-SPOThemePalettePropertyString $Results.Palette
if ($null -ne $Results.Palette)
{
$complexMapping = @(
@{
Name = 'OptionalClaims'
CimInstanceName = 'MSFT_SPOThemePaletteProperty'
IsRequired = $False
}
)
$complexTypeStringResult = Get-M365DSCDRGComplexTypeToString `
-ComplexObject $Results.Palette `
-CIMInstanceName 'MSFT_SPOThemePaletteProperty' `
-ComplexTypeMapping $complexMapping

if (-not [String]::IsNullOrWhiteSpace($complexTypeStringResult))
{
$Results.Palette = $complexTypeStringResult
}
else
{
$Results.Remove('Palette') | Out-Null
}
}
$currentDSCBlock = Get-M365DSCExportContentForResource -ResourceName $ResourceName `
-ConnectionMode $ConnectionMode `
-ModulePath $PSScriptRoot `
Expand Down
Loading

0 comments on commit d448493

Please sign in to comment.