M365Documentation.psd1

#
# Module manifest for module 'M365Documentation'
#
# Generated by: Thomas Kurth
#
# Generated on: 09.10.2026
#

@{

# Script module or binary module file associated with this manifest.
RootModule = 'M365Documentation.psm1'

# Version number of this module.
ModuleVersion = '3.7.0'

# Supported PSEditions
# CompatiblePSEditions = @()

# ID used to uniquely identify this module
GUID = '10231a0d-b6a4-2a27-a726-e3b223ad0aa9'

# Author of this module
Author = 'Thomas Kurth'

# Company or vendor of this module
CompanyName = 'WorkplaceNinjas'

# Copyright statement for this module
Copyright = '(c) 2026 Thomas Kurth. All rights reserved.'

# Description of the functionality provided by this module
Description = 'Automatic Documentation of M365 to simplify the life of admins and consultants.'

# Minimum version of the PowerShell engine required by this module
PowerShellVersion = '7.0'

# Name of the PowerShell host required by this module
# PowerShellHostName = ''

# Minimum version of the PowerShell host required by this module
# PowerShellHostVersion = ''

# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# DotNetFrameworkVersion = ''

# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
# ClrVersion = ''

# Processor architecture (None, X86, Amd64) required by this module
# ProcessorArchitecture = ''

# Modules that must be imported into the global environment prior to importing this module
RequiredModules = @('MSAL.PS', 
               @{ModuleName = 'PSWriteOffice'; ModuleVersion = '1.0.2'; })

# Assemblies that must be loaded prior to importing this module
# RequiredAssemblies = @()

# Script files (.ps1) that are run in the caller's environment prior to importing this module.
# ScriptsToProcess = @()

# Type files (.ps1xml) to be loaded when importing this module
# TypesToProcess = @()

# Format files (.ps1xml) to be loaded when importing this module
# FormatsToProcess = @()

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = 'Connect-M365Doc', 'Get-M365Doc', 'Get-M365DocValidSection', 
               'Invoke-M365DocTranslationUI', 'New-M365DocAppRegistration', 
               'Optimize-M365Doc', 'Test-M365DocConnection', 'Write-M365DocCsv', 
               'Write-M365DocHTML', 'Write-M365DocJson', 'Write-M365DocMD', 
               'Write-M365DocWord'

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()

# Variables to export from this module
# VariablesToExport = @()

# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
AliasesToExport = @()

# DSC resources to export from this module
# DscResourcesToExport = @()

# List of all modules packaged with this module
# ModuleList = @()

# List of all files packaged with this module
# FileList = @()

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        Tags = 'Intune','Windows','M365','Documentation','MEM','MSGraph','AzureAD','EntraID','ConditionalAccess'

        # A URL to the license for this module.
        LicenseUri = 'https://github.com/ThomasKur/M365Documentation/blob/main/LICENSE'

        # A URL to the main website for this project.
        ProjectUri = 'https://github.com/ThomasKur/M365Documentation'

        # A URL to an icon representing this module.
        IconUri = 'https://raw.githubusercontent.com/ThomasKur/M365Documentation/main/Logo/M365DocumentationLogo.png'

        # ReleaseNotes of this module
        ReleaseNotes = ' 3.7.0
 
- Skip empty or whitespace-only section and object headings in Word export while preserving their content.
- Resolve transposed Word object headings from displayName, Display Name, M_DisplayName, or M_Display Name, skipping titles that duplicate the section heading.
- Skip absent nested sections during documentation optimization, matching the existing top-level behavior when collectors return no data.
- Fix #85: Update Word export to the PSWriteOffice 1.0.2 API and require version 1.0.2 or later. Remove the concrete Word document parameter type dependency. Older PSWriteOffice versions are no longer supported; restart PowerShell after upgrading.
- Enforce the PSWriteOffice minimum version for direct module-script imports and load the manifest in local test scripts so dependency checks cannot be bypassed.
- Support PSWriteOffice 3.0.8 as well as 1.0.2 by updating the table of contents through the shared document API rather than the renamed cmdlet.
- Fix #88: Add User.Read.All, AuditLog.Read.All and Policy.Read.PermissionGrant application permissions for guest sign-in activity and Consent Governance documentation.
- Request both delegated and application permissions where available in New-M365DocAppRegistration using the live Graph permission catalog, validate that every required permission resolves, and fix application role consent assignment. Warn when permissions resolve only as delegated and cannot be used by app-only tokens.
- Existing app registrations must have the missing application permissions added and admin consent granted, followed by acquiring a new token; they are not automatically updated.
- Correct "sufficiant" to "sufficient" in the Microsoft Graph Forbidden warning.
- Continue tenant documentation when Microsoft Graph returns AadPremiumLicenseRequired, with a licensing-specific warning identifying the skipped request.
- Fix CAE endpoint 404 error as feature is no longer a seperate API endpoint
- Fix Cloud Print printer subsection titles being executed as commands instead of strings.
- Replace the retired Information Protection labels endpoint with the beta sensitivity labels API, using organization labels for app-only authentication and user labels for interactive authentication. Request InformationProtectionPolicy.Read for delegated access and skip unsupported US Government clouds with a warning.
- Add a Copilot component for Copilot policy settings, admin limited mode, and agent identity blueprints with communication configuration.
- Add AgentIdentityBlueprint.Read.All and AgentCommunicationConfiguration.ReadWrite.All to the application registration permissions for agent identity blueprint documentation.
 
 
 
 To see the complete history, checkout the Release Notes on Github'


        # Prerelease string of this module
        # Prerelease = ''

        # Flag to indicate whether the module requires explicit user acceptance for install/update/save
        # RequireLicenseAcceptance = $false

        # External dependent modules of this module
        ExternalModuleDependencies = @('MSAL.PS','PSWriteOffice')

    } # End of PSData hashtable

 } # End of PrivateData hashtable

# HelpInfo URI of this module
# HelpInfoURI = ''

# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
# DefaultCommandPrefix = ''

}