DSC Composite Resources for Microsoft 365 management with PowerShell Desired State Configuration (DSC).
DscConfig.M365 provides an abstraction layer between the Microsoft365DSC resources and the deployment framework in Microsoft365DscWorkshop. It creates DSC composite resources from the Microsoft365DSC resources to simplify configuration management and deployment of Microsoft 365 resources.
This module is part of a complete solution that requires:
- Microsoft365DSC - The underlying DSC resource module for Microsoft 365
 - Microsoft365DscWorkshop - The deployment framework for managing configurations
 
Important: DscConfig.M365 is not meant to be installed separately. It is automatically included as a dependency by Microsoft365DscWorkshop through its PSDepend configuration in the RequiredModules.psd1 file.
This project serves as the middle layer in a three-tier architecture for Microsoft 365 configuration management:
- Microsoft365DSC - The foundation layer providing the DSC resources that interact with Microsoft 365 APIs
 - DscConfig.M365 (this project) - The abstraction layer creating composite resources with simplified interfaces
 - Microsoft365DscWorkshop - The orchestration layer that consumes these composite resources for deployment
 
By separating these concerns, the solution provides a more maintainable and scalable approach to Microsoft 365 configuration management.
The module dynamically generates DSC composite resources (prefixed with 'c') for each Microsoft365DSC resource. It creates two types of composite resources based on the resource structure:
- Scalar resources - For singleton resources (with 
IsSingleInstanceproperty) - Array resources - For resources that can have multiple instances
 
Important: DscConfig.M365 is designed to work with Microsoft365DscWorkshop and is not intended for standalone use.
See the
documentation for details on getting started.
The module creates composite resources for all Microsoft365DSC resources. These resources are dynamically generated during the build process and are not stored in the repository.
For a full list of available resources, see Available Resources.
Please read our Contributing Guide and our Code of Conduct.
This project is licensed under the MIT License.