DscResources/SharePoint/SharePoint.schema.psm1

# (2024-01-11 01:11:24) Generated using Microsoft365DSC v1.24.110.1
Configuration 'SharePoint'
{
    param
    (
        [Parameter(Mandatory = $true)]
        [System.String]
        $ApplicationId,

        [Parameter(Mandatory = $true)]
        [System.String]
        $TenantId,

        [Parameter(Mandatory = $true)]
        [System.String]
        $CertificateThumbprint
    )

    Import-DscResource -ModuleName Microsoft365DSC

    if ($ConfigurationData.NonNodeData.SharePoint.ContainsKey('AccessControlSettings'))
    {
        $resourceTitle = 'AccessControlSettingsDefaults'

        $parameters = $ConfigurationData.NonNodeData.SharePoint.AccessControlSettings
        $parameters.IsSingleInstance = 'Yes'
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOAccessControlSettings' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($App in $ConfigurationData.NonNodeData.SharePoint.Apps)
    {
        $resourceTitle = 'SPOApp-{0}-{1}' -f $App.Identity,$App.Path

        $parameters = $App
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOApp' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    if ($ConfigurationData.NonNodeData.SharePoint.ContainsKey('BrowserIdleSignout'))
    {
        $resourceTitle = 'BrowserIdleSignoutDefaults'

        $parameters = $ConfigurationData.NonNodeData.SharePoint.BrowserIdleSignout
        $parameters.IsSingleInstance = 'Yes'
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOBrowserIdleSignout' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    if ($ConfigurationData.NonNodeData.SharePoint.ContainsKey('HomeSite'))
    {
        $resourceTitle = 'HomeSiteDefaults'

        $parameters = $ConfigurationData.NonNodeData.SharePoint.HomeSite
        $parameters.IsSingleInstance = 'Yes'
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOHomeSite' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($HubSite in $ConfigurationData.NonNodeData.SharePoint.HubSites)
    {
        $resourceTitle = 'SPOHubSite-{0}' -f $HubSite.Url

        $parameters = $HubSite
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOHubSite' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($OrgAssetsLibrary in $ConfigurationData.NonNodeData.SharePoint.OrgAssetsLibraries)
    {
        $resourceTitle = 'SPOOrgAssetsLibrary-{0}' -f $OrgAssetsLibrary.LibraryUrl

        $parameters = $OrgAssetsLibrary
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOOrgAssetsLibrary' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($PropertyBag in $ConfigurationData.NonNodeData.SharePoint.PropertyBags)
    {
        $resourceTitle = 'SPOPropertyBag-{0}-{1}-{2}' -f $PropertyBag.Url,$PropertyBag.Key,$PropertyBag.Value

        $parameters = $PropertyBag
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOPropertyBag' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SearchManagedProperty in $ConfigurationData.NonNodeData.SharePoint.SearchManagedProperties)
    {
        $resourceTitle = 'SPOSearchManagedProperty-{0}-{1}' -f $SearchManagedProperty.Name,$SearchManagedProperty.Type

        $parameters = $SearchManagedProperty
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSearchManagedProperty' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SearchResultSource in $ConfigurationData.NonNodeData.SharePoint.SearchResultSources)
    {
        $resourceTitle = 'SPOSearchResultSource-{0}' -f $SearchResultSource.Name

        $parameters = $SearchResultSource
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSearchResultSource' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    if ($ConfigurationData.NonNodeData.SharePoint.ContainsKey('SharingSettings'))
    {
        $resourceTitle = 'SharingSettingsDefaults'

        $parameters = $ConfigurationData.NonNodeData.SharePoint.SharingSettings
        $parameters.IsSingleInstance = 'Yes'
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSharingSettings' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($Site in $ConfigurationData.NonNodeData.SharePoint.Sites)
    {
        $resourceTitle = 'SPOSite-{0}' -f $Site.Url

        $parameters = $Site
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSite' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SiteAuditSettingsItems in $ConfigurationData.NonNodeData.SharePoint.SiteAuditSettingsItems)
    {
        $resourceTitle = 'SPOSiteAuditSettings-{0}' -f $SiteAuditSettingsItems.Url

        $parameters = $SiteAuditSettingsItems
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSiteAuditSettings' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SiteDesign in $ConfigurationData.NonNodeData.SharePoint.SiteDesigns)
    {
        $resourceTitle = 'SPOSiteDesign-{0}' -f $SiteDesign.Title

        $parameters = $SiteDesign
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSiteDesign' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SiteDesignRights in $ConfigurationData.NonNodeData.SharePoint.SiteDesignRightss)
    {
        $resourceTitle = 'SPOSiteDesignRights-{0}-{1}' -f $SiteDesignRights.SiteDesignTitle,$SiteDesignRights.Rights

        $parameters = $SiteDesignRights
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSiteDesignRights' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SiteGroup in $ConfigurationData.NonNodeData.SharePoint.SiteGroups)
    {
        $resourceTitle = 'SPOSiteGroup-{0}-{1}' -f $SiteGroup.Identity,$SiteGroup.Url

        $parameters = $SiteGroup
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSiteGroup' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($SiteScript in $ConfigurationData.NonNodeData.SharePoint.SiteScripts)
    {
        $resourceTitle = 'SPOSiteScript-{0}' -f $SiteScript.Title

        $parameters = $SiteScript
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOSiteScript' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($StorageEntity in $ConfigurationData.NonNodeData.SharePoint.StorageEntities)
    {
        $resourceTitle = 'SPOStorageEntity-{0}' -f $StorageEntity.Key

        $parameters = $StorageEntity
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOStorageEntity' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($TenantCdnEnabled in $ConfigurationData.NonNodeData.SharePoint.TenantCdnEnableds)
    {
        $resourceTitle = 'SPOTenantCdnEnabled-{0}' -f $TenantCdnEnabled.CdnType

        $parameters = $TenantCdnEnabled
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOTenantCdnEnabled' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($TenantCdnPolicy in $ConfigurationData.NonNodeData.SharePoint.TenantCdnPolicies)
    {
        $resourceTitle = 'SPOTenantCdnPolicy-{0}' -f $TenantCdnPolicy.CDNType

        $parameters = $TenantCdnPolicy
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOTenantCdnPolicy' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    if ($ConfigurationData.NonNodeData.SharePoint.ContainsKey('TenantSettings'))
    {
        $resourceTitle = 'TenantSettingsDefaults'

        $parameters = $ConfigurationData.NonNodeData.SharePoint.TenantSettings
        $parameters.IsSingleInstance = 'Yes'
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        (Get-DscSplattedResource -ResourceName 'SPOTenantSettings' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($Theme in $ConfigurationData.NonNodeData.SharePoint.Themes)
    {
        $resourceTitle = 'SPOTheme-{0}' -f $Theme.Name

        $parameters = $Theme
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        if ($parameters.ContainsKey('Palette'))
        {
            $parameters.Palette = $parameters.Palette | ForEach-Object {
                if ($_.ContainsKey('UniqueId'))
                {
                    $_.Remove('UniqueId')
                }

                (Get-DscSplattedResource -ResourceName 'MSFT_SPOThemePaletteProperty' -Properties $_ -NoInvoke).Invoke($_)
            }
        }

        (Get-DscSplattedResource -ResourceName 'SPOTheme' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }

    foreach ($UserProfileProperty in $ConfigurationData.NonNodeData.SharePoint.UserProfileProperties)
    {
        $resourceTitle = 'SPOUserProfileProperty-{0}' -f $UserProfileProperty.UserName

        $parameters = $UserProfileProperty
        $parameters.ApplicationId = $ApplicationId
        $parameters.TenantId = $TenantId
        $parameters.CertificateThumbprint = $CertificateThumbprint

        if ($parameters.ContainsKey('UniqueId'))
        {
            $parameters.Remove('UniqueId')
        }
        if ($parameters.ContainsKey('Properties'))
        {
            $parameters.Properties = $parameters.Properties | ForEach-Object {
                if ($_.ContainsKey('UniqueId'))
                {
                    $_.Remove('UniqueId')
                }

                (Get-DscSplattedResource -ResourceName 'MSFT_SPOUserProfilePropertyInstance' -Properties $_ -NoInvoke).Invoke($_)
            }
        }

        (Get-DscSplattedResource -ResourceName 'SPOUserProfileProperty' -ExecutionName $resourceTitle -Properties $parameters -NoInvoke).Invoke($parameters)
    }
}