diff --git a/CHANGELOG.md b/CHANGELOG.md
index d279a3a2..2a30771c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,8 @@
title: "Desired State Configuration changelog"
description: >-
A log of the changes for releases of DSCv3.
-ms.date: 03/06/2024
+ms.topic: whats-new
+ms.date: 06/24/2024
---
# Changelog
@@ -45,7 +46,7 @@ This section includes a summary of user-facing changes since the last release. F
changes since the last release, see the [diff on GitHub][unreleased].
-[unreleased]: https://github.com/PowerShell/DSC/compare/v3.0.0-preview.7...main
+[unreleased]: https://github.com/PowerShell/DSC/compare/v3.0.0-preview.8...main
+
+
+## [v3.0.0-preview.8][release-v3.0.0-preview.8] - 2024-06-19
+
+This section includes a summary of changes for the `preview.8` release. For the full list of changes
+in this release, see the [diff on GitHub][compare-v3.0.0-preview.8].
+
+
+[release-v3.0.0-preview.8]: https://github.com/PowerShell/DSC/releases/tag/v3.0.0-preview.8 "Link to the DSC v3.0.0-preview.8 release on GitHub"
+[compare-v3.0.0-preview.8]: https://github.com/PowerShell/DSC/compare/v3.0.0-preview.7...v3.0.0-preview.8
+
+### Changed
+
+- Changed the `Microsoft.DSC/PowerShell` adapter to only handle PowerShell DSC Resources
+ implemented as classes and remove the dependency on the **PSDesiredStateConfiguration** module.
+ The `Microsoft.Windows/WindowsPowerShell` adapter continues to work with classic PSDSC resources.
+ Neither adapter supports composite PSDSC resources. This change simplified the code and coincided
+ with ensuring that the `Microsoft.DSC/PowerShell` adapter works correctly on Linux and macOS as
+ well as Windows. This change also brought performance improvements to the adapter, speeding up
+ resource invocation and discovery.
+
+ Related work items
+
+ - Issues: _None_.
+ - PRs:
+ - [#435][#435]
+ - [#439][#439]
+
+
+
### Added
-- Added the [`--what-if` (`-w`)][ur-aa] option to the [dsc config set][cmd-cset] command. When you
+- Added the [`--what-if` (`-w`)][p8-01] option to the [dsc config set][cmd-cset] command. When you
call `dsc config set` with the `--what-if` option, DSC doesn't actually invoke the resources to
enforce the desired state. Instead, it returns the expected output for the command, showing the
before and after state for each resource instance.
The output for the `dsc config set` operation with the `--what-if` operation is the same as an
- [actual configuration set operation][ur-ab], except that the metadata field
- [executionType][ur-ac] is set to `WhatIf` instead of `Actual`.
+ [actual configuration set operation][p8-02], except that the metadata field
+ [executionType][p8-03] is set to `WhatIf` instead of `Actual`.
By default, the generated output is synthetic, based on the results of the resources' `test`
- operation. Resources can define the [whatIf][ur-ad] property in their resource manifest to
+ operation. Resources can define the [whatIf][p8-04] property in their resource manifest to
participate in what-if operations, reporting more specifically how they will change the system.
For example, participating resources could indicate whether an actual set operation will require
a reboot or whether the current user has the correct permissions to manage that resource
instance.
- Participating resources have the [WhatIf capability][ur-ae].
+ Participating resources have the [WhatIf capability][p8-05].
Related work items
@@ -99,21 +130,23 @@ changes since the last release, see the [diff on GitHub][unreleased].
-- Added support for [importer resources][ur-af]. These resources resolve external sources to a
+- Added support for [importer resources][p8-06]. These resources resolve external sources to a
nested DSC Configuration document. The resolved instances are processed as nested resource
instances.
This required some updates to the schemas, all backwards-compatible:
- - Added a new [resourceKind][ur-ag] named `Import`.
- - Added the [resolve][ur-ah] command to resource manifests.
- - Added the new [`Resolve`][ur-ai] capability, returned in the output for the
+ - Added a new [resourceKind][p8-07] named `Import`.
+ - Added the [resolve][p8-08] command to resource manifests.
+ - Added the new [`Resolve`][p8-09] capability, returned in the output for the
[dsc resource list][cmd-rlist] command when DSC discovers an importer resource.
Related work items
- Issues: [#429][#429]
- - PRs: [#412][#412]
+ - PRs:
+ - [#412][#412]
+ - [#464][#464]
@@ -207,9 +240,20 @@ changes since the last release, see the [diff on GitHub][unreleased].
+- Added the `Microsoft.DSC.Experimental/SystemctlService` class-based PSDSC resource. It has the
+ `Get` and `Export` [capabilities][p8-10]. You can use it on Linux systems that manage services
+ with SystemD and `systemctl`. In this release, it doesn't support setting services.
+
+ Related work items
+
+ - Issues: _None_.
+ - PRs: [#454][#454]
+
+
+
### Fixed
-- Fixed the JSON Schema for [exit codes][ur-fa] in the resource manifest to support negative
+- Fixed the JSON Schema for [exit codes][p8-11] in the resource manifest to support negative
integers. Prior to this release, the DSC engine supported negative exit codes but the JSON Schema
forbid them.
@@ -243,17 +287,18 @@ changes since the last release, see the [diff on GitHub][unreleased].
-
-[ur-aa]: ./docs/reference/cli/config/set.md#-w---what-if
-[ur-ab]: ./docs/reference/schemas/outputs/config/set.md
-[ur-ac]: ./docs/reference/schemas/metadata/Microsoft.DSC/properties.md#executiontype
-[ur-ad]: ./docs/reference/schemas/resource/manifest/whatif.md
-[ur-ae]: ./docs/reference/schemas/outputs/resource/list.md#capability-whatif
-[ur-af]: ./docs/reference/schemas/definitions/resourceKind.md#importer-resources
-[ur-ag]: ./docs/reference/schemas/definitions/resourceKind.md
-[ur-ah]: ./docs/reference/schemas/resource/manifest/resolve.md
-[ur-ai]: ./docs/reference/schemas/outputs/resource/list.md#capability-resolve
-[ur-fa]: ./docs/reference/schemas/resource/manifest/root.md#exitcodes
+
+[p8-01]: ./docs/reference/cli/config/set.md#-w---what-if
+[p8-02]: ./docs/reference/schemas/outputs/config/set.md
+[p8-03]: ./docs/reference/schemas/metadata/Microsoft.DSC/properties.md#executiontype
+[p8-04]: ./docs/reference/schemas/resource/manifest/whatif.md
+[p8-05]: ./docs/reference/schemas/outputs/resource/list.md#capability-whatif
+[p8-06]: ./docs/reference/schemas/definitions/resourceKind.md#importer-resources
+[p8-07]: ./docs/reference/schemas/definitions/resourceKind.md
+[p8-08]: ./docs/reference/schemas/resource/manifest/resolve.md
+[p8-09]: ./docs/reference/schemas/outputs/resource/list.md#capability-resolve
+[p8-10]: ./docs/reference/schemas/outputs/resource/list.md#capabilities
+[p8-11]: ./docs/reference/schemas/resource/manifest/root.md#exitcodes
## [v3.0.0-preview.7][release-v3.0.0-preview.7] - 2024-04-22
@@ -309,10 +354,12 @@ in this release, see the [diff on GitHub][compare-v3.0.0-preview.7].
-- In this release, the term `DSC Resource Provider` is
- replaced with the more semantically accurate `DSC Resource Adapter`. These resources enable users
- to leverage resources that don't define a DSC Resource Manifest with DSC, like PSDSC resources -
- they're _adapters_ between DSCv3 and resources defined in a different way.
+-
+
+ In this release, the term `DSC Resource Provider` is replaced with the more semantically accurate
+ `DSC Resource Adapter`. These resources enable users to leverage resources that don't define a
+ DSC Resource Manifest with DSC, like PSDSC resources - they're _adapters_ between DSCv3 and
+ resources defined in a different way.
Beyond using different terminology in the documentation, this change also renamed the resource
manifest property `provider` to [adapter][p7-01], and the `requires` property in the output for
@@ -1522,9 +1569,13 @@ For the full list of changes in this release, see the [diff on GitHub][compare-v
[#431]: https://github.com/PowerShell/DSC/issues/431
[#432]: https://github.com/PowerShell/DSC/issues/432
[#434]: https://github.com/PowerShell/DSC/issues/434
+[#435]: https://github.com/PowerShell/DSC/issues/435
[#438]: https://github.com/PowerShell/DSC/issues/438
+[#439]: https://github.com/PowerShell/DSC/issues/439
[#441]: https://github.com/PowerShell/DSC/issues/441
[#444]: https://github.com/PowerShell/DSC/issues/444
+[#454]: https://github.com/PowerShell/DSC/issues/454
+[#464]: https://github.com/PowerShell/DSC/issues/464
[#45]: https://github.com/PowerShell/DSC/issues/45
[#49]: https://github.com/PowerShell/DSC/issues/49
[#57]: https://github.com/PowerShell/DSC/issues/57
diff --git a/docs/reference/cli/config/get.md b/docs/reference/cli/config/get.md
index 0b584899..ee78b0ea 100644
--- a/docs/reference/cli/config/get.md
+++ b/docs/reference/cli/config/get.md
@@ -1,6 +1,6 @@
---
description: Command line reference for the 'dsc config get' command
-ms.date: 01/17/2024
+ms.date: 06/24/2024
ms.topic: reference
title: dsc config get
---
@@ -52,7 +52,7 @@ document saved as `example.dsc.config.yaml`.
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Windows only
- type: DSC/AssertionGroup
+ type: Microsoft.DSC/Assertion
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
@@ -64,9 +64,9 @@ resources:
type: Microsoft.Windows/Registry
properties:
keyPath: HKCU\example
- _ensure: Present
+ _exist: true
dependsOn:
- - '[DSC/Assertion]Windows only'
+ - "[resourceId('Microsoft.DSC/Assertion', 'Windows only')"
```
```sh
diff --git a/docs/reference/cli/config/set.md b/docs/reference/cli/config/set.md
index 8049354d..307137e8 100644
--- a/docs/reference/cli/config/set.md
+++ b/docs/reference/cli/config/set.md
@@ -1,6 +1,6 @@
---
description: Command line reference for the 'dsc config set' command
-ms.date: 01/17/2024
+ms.date: 06/24/2024
ms.topic: reference
title: dsc config set
---
@@ -53,7 +53,7 @@ The command inspects the resource instances defined in the configuration documen
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Windows only
- type: DSC/AssertionGroup
+ type: Microsoft.DSC/Assertion
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
@@ -65,9 +65,9 @@ resources:
type: Microsoft.Windows/Registry
properties:
keyPath: HKCU\example
- _ensure: Present
+ _exist: true
dependsOn:
- - '[DSC/Assertion]Windows only'
+ - "[resourceId('Microsoft.DSC/Assertion', 'Windows only')"
```
```sh
diff --git a/docs/reference/cli/config/test.md b/docs/reference/cli/config/test.md
index f4cc22f4..9d5df35c 100644
--- a/docs/reference/cli/config/test.md
+++ b/docs/reference/cli/config/test.md
@@ -1,6 +1,6 @@
---
description: Command line reference for the 'dsc config test' command
-ms.date: 01/17/2024
+ms.date: 06/24/2024
ms.topic: reference
title: dsc config test
---
@@ -52,7 +52,7 @@ resource instances defined in the configuration document saved as `example.dsc.c
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
- name: Windows only
- type: DSC/AssertionGroup
+ type: Microsoft.DSC/Assertion
properties:
$schema: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/config/document.json
resources:
@@ -64,9 +64,9 @@ resources:
type: Microsoft.Windows/Registry
properties:
keyPath: HKCU\example
- _ensure: Present
+ _exist: true
dependsOn:
- - '[DSC/Assertion]Windows only'
+ - "[resourceId('Microsoft.DSC/Assertion', 'Windows only')"
```
```sh
diff --git a/docs/reference/cli/resource/list.md b/docs/reference/cli/resource/list.md
index 8223f22e..557222cb 100644
--- a/docs/reference/cli/resource/list.md
+++ b/docs/reference/cli/resource/list.md
@@ -1,6 +1,6 @@
---
description: Command line reference for the 'dsc resource list' command
-ms.date: 08/04/2023
+ms.date: 06/24/2024
ms.topic: reference
title: dsc resource list
---
@@ -45,26 +45,20 @@ dsc resource list
```
```Output
-Type Kind Version Caps RequireAdapter Description
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
-Microsoft.DSC.Transitional/RunCommandOnSet Resource 0.1.0 gs----- Takes a single-command line to execute on DSC set operation
-Microsoft.DSC/Assertion Group 0.1.0 gs-t--- `test` will be invoked for all resources in the supplied configuration.
-Microsoft.DSC/Group Group 0.1.0 gs-t--- All resources in the supplied configuration is treated as a group.
-Microsoft.DSC/Include Import 0.1.0 ------r Allows including a configuration file contents into current configuration.
-Microsoft.DSC/Parallel Group 0.1.0 gs-t--- All resources in the supplied configuration run concurrently.
-Microsoft.DSC/PowerShell Adapter 0.1.0 gs-t-e- Resource adapter to classic DSC Powershell resources.
-Microsoft.Windows/RebootPending Resource 0.1.0 g------ Returns info about pending reboot.
-Microsoft.Windows/Registry Resource 0.1.0 gs--d-- Manage Windows Registry keys and values
-Microsoft.Windows/WMI Adapter 0.1.0 g------ Resource adapter to WMI resources.
-Microsoft.Windows/WindowsPowerShell Adapter 0.1.0 gs-t--- Resource adapter to classic DSC Powershell resources in Windows PowerShell.
-Microsoft/OSInfo Resource 0.1.0 g----e- Returns information about the operating system.
-Microsoft/Process Resource 0.1.0 gs-t-e- Returns information about running processes.
-Test/Delete Resource 0.1.0 g---d--
-Test/Echo Resource 0.1.0 gs-t---
-Test/Exist Resource 0.1.0 gsx----
-Test/Sleep Resource 0.1.0 gs-t---
-Test/TestGroup Adapter 0.1.0 g------
-Test/Trace Resource 0.1.0 gs-t---
+Type Kind Version Caps RequireAdapter Description
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------
+Microsoft.DSC.Transitional/RunCommandOnSet Resource 0.1.0 gs------ Takes a single-command line to execute on DSC set operation
+Microsoft.DSC/Assertion Group 0.1.0 gs--t--- `test` will be invoked for all resources in the supplied configuration.
+Microsoft.DSC/Group Group 0.1.0 gs--t--- All resources in the supplied configuration is treated as a group.
+Microsoft.DSC/Include Import 0.1.0 -------r Allows including a configuration file contents into current configuration.
+Microsoft.DSC/Parallel Group 0.1.0 gs--t--- All resources in the supplied configuration run concurrently.
+Microsoft.DSC/PowerShell Adapter 0.1.0 gs--t-e- Resource adapter to classic DSC Powershell resources.
+Microsoft.Windows/RebootPending Resource 0.1.0 g------- Returns info about pending reboot.
+Microsoft.Windows/Registry Resource 0.1.0 gs---d-- Manage Windows Registry keys and values
+Microsoft.Windows/WMI Adapter 0.1.0 g------- Resource adapter to WMI resources.
+Microsoft.Windows/WindowsPowerShell Adapter 0.1.0 gs--t--- Resource adapter to classic DSC Powershell resources in Windows PowerShell.
+Microsoft/OSInfo Resource 0.1.0 g-----e- Returns information about the operating system.
+Microsoft/Process Resource 0.1.0 gs--t-e- Returns information about running processes.
```
### Example 2 - List a specific resource
@@ -77,9 +71,9 @@ dsc resource list Microsoft.DSC/Group
```
```Output
-Type Kind Version Caps RequireAdapter Description
---------------------------------------------------------------------------------------------------------------------------------
-Microsoft.DSC/Group Group 0.1.0 gs-t--- All resources in the supplied configuration is treated as a group.
+Type Kind Version Caps RequireAdapter Description
+---------------------------------------------------------------------------------------------------------------------------------
+Microsoft.DSC/Group Group 0.1.0 gs--t--- All resources in the supplied configuration is treated as a group.
```
### Example 3 - List resources with a matching type name
@@ -92,13 +86,13 @@ dsc resource list Microsoft.DSC/*
```
```Output
-Type Kind Version Caps RequireAdapter Description
------------------------------------------------------------------------------------------------------------------------------------------------
-Microsoft.DSC/Assertion Group 0.1.0 gs-t--- `test` will be invoked for all resources in the supplied configuration.
-Microsoft.DSC/Group Group 0.1.0 gs-t--- All resources in the supplied configuration is treated as a group.
-Microsoft.DSC/Include Import 0.1.0 ------r Allows including a configuration file contents into current configuration.
-Microsoft.DSC/Parallel Group 0.1.0 gs-t--- All resources in the supplied configuration run concurrently.
-Microsoft.DSC/PowerShell Adapter 0.1.0 gs-t-e- Resource adapter to classic DSC Powershell resources.
+Type Kind Version Caps RequireAdapter Description
+------------------------------------------------------------------------------------------------------------------------------------------------
+Microsoft.DSC/Assertion Group 0.1.0 gs--t--- `test` will be invoked for all resources in the supplied configuration.
+Microsoft.DSC/Group Group 0.1.0 gs--t--- All resources in the supplied configuration is treated as a group.
+Microsoft.DSC/Include Import 0.1.0 -------r Allows including a configuration file contents into current configuration.
+Microsoft.DSC/Parallel Group 0.1.0 gs--t--- All resources in the supplied configuration run concurrently.
+Microsoft.DSC/PowerShell Adapter 0.1.0 gs--t-e- Resource adapter to classic DSC Powershell resources.
```
### Example 4 - List resources with a matching description
@@ -111,11 +105,11 @@ dsc resource list --description 'supplied configuration'
```
```Output
-Type Kind Version Caps RequireAdapter Description
------------------------------------------------------------------------------------------------------------------------------------------
-Microsoft.DSC/Assertion Group 0.1.0 gs-t--- `test` will be invoked for all resources in the supplied configuration.
-Microsoft.DSC/Group Group 0.1.0 gs-t--- All resources in the supplied configuration is treated as a group.
-Microsoft.DSC/Parallel Group 0.1.0 gs-t--- All resources in the supplied configuration run concurrently.
+Type Kind Version Caps RequireAdapter Description
+------------------------------------------------------------------------------------------------------------------------------------------
+Microsoft.DSC/Assertion Group 0.1.0 gs--t--- `test` will be invoked for all resources in the supplied configuration.
+Microsoft.DSC/Group Group 0.1.0 gs--t--- All resources in the supplied configuration is treated as a group.
+Microsoft.DSC/Parallel Group 0.1.0 gs--t--- All resources in the supplied configuration run concurrently.
```
### Example 5 - List resources with matching tags
@@ -128,10 +122,10 @@ dsc resource list --tags Windows --tags Linux
```
```output
-Type Kind Version Caps RequireAdapter Description
------------------------------------------------------------------------------------------------------------------------
-Microsoft.Windows/Registry Resource 0.1.0 gs--d-- Manage Windows Registry keys and values
-Microsoft/OSInfo Resource 0.1.0 g----e- Returns information about the operating system.
+Type Kind Version Caps RequireAdapter Description
+------------------------------------------------------------------------------------------------------------------------
+Microsoft.Windows/Registry Resource 0.1.0 gs---d-- Manage Windows Registry keys and values
+Microsoft/OSInfo Resource 0.1.0 g-----e- Returns information about the operating system.
```
### Example 6 - List resources for a specific adapter
@@ -142,40 +136,69 @@ adds the returned list of adapted resources to the discovered resource list. DSC
further filters specified with the command after this enumeration.
```sh
-dsc resource list --adapter Microsoft.DSC/PowerShell
+dsc resource list --adapter Microsoft.Windows/WindowsPowerShell
```
```Output
-Type Kind Version Caps RequireAdapter Description
-----------------------------------------------------------------------------------------------------------------------------------------------
-PSDscResources/Archive Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/Environment Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/Group Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/MsiPackage Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/Registry Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/Script Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/Service Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/User Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsFeature Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsOptionalFeature Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsPackageCab Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsProcess Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
+Type Kind Version Caps RequireAdapter Description
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+PSDesiredStateConfiguration/Archive Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Environment Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/File Resource 1.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Group Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/GroupSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Log Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Package Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/ProcessSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Registry Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Script Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/Service Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/ServiceSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/SignatureValidation Resource 1.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/User Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WaitForAll Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WaitForAny Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WaitForSome Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsFeature Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsFeatureSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsOptionalFeature Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsOptionalFeatureSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsPackageCab Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsProcess Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDscResources/Archive Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/Environment Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/Group Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/MsiPackage Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/Registry Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/Script Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/Service Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/User Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsFeature Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsOptionalFeature Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsPackageCab Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsProcess Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
```
This next command specifies the resource name filter `*Windows*`, limiting the list of returned
resources:
```sh
-dsc resource list --adapter Microsoft.DSC/PowerShell *Windows*
+dsc resource list --adapter Microsoft.Windows/WindowsPowerShell *Windows*
```
```Output
-Type Kind Version Caps RequireAdapter Description
-----------------------------------------------------------------------------------------------------------------------------------------------
-PSDscResources/WindowsFeature Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsOptionalFeature Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsPackageCab Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
-PSDscResources/WindowsProcess Resource 2.12.0.0 gs-t--- Microsoft.DSC/PowerShell This module contains the standard DSC resources.
+Type Kind Version Caps RequireAdapter Description
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+PSDesiredStateConfiguration/WindowsFeature Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsFeatureSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsOptionalFeature Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsOptionalFeatureSet Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsPackageCab Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDesiredStateConfiguration/WindowsProcess Resource 1.1 gs--t--- Microsoft.Windows/WindowsPowerShell
+PSDscResources/WindowsFeature Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsOptionalFeature Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsPackageCab Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
+PSDscResources/WindowsProcess Resource 2.12.0.0 gs--t--- Microsoft.Windows/WindowsPowerShell This module contains the standard DSC resources.
```
## Arguments
@@ -285,10 +308,11 @@ displayed in the listed order:
- `g` indicates that the resource has the [Get capability][05].
- `s` indicates that the resource has the [Set capability][06]
- `x` indicates that the resource has the [SetHandlesExist capability][07]
- - `t` indicates that the resource has the [Test capability][08]
- - `d` indicates that the resource has the [Delete capability][09]
- - `e` indicates that the resource has the [Export capability][10]
- - `r` indicates that the resource has the [Resolve capability][11]
+ - `w` indicates that the resource has the [WhatIf capability][08]
+ - `t` indicates that the resource has the [Test capability][09]
+ - `d` indicates that the resource has the [Delete capability][10]
+ - `e` indicates that the resource has the [Export capability][11]
+ - `r` indicates that the resource has the [Resolve capability][12]
For example, the `Microsoft.Windows/Registry` resource has the following capabilities: `gs--d-`,
indicating it has the `Get`, `Set`, and `Delete` capabilities.
@@ -307,7 +331,8 @@ To display the output objects as either JSON or YAML objects in the console, use
[05]: ../../schemas/outputs/resource/list.md#capability-get
[06]: ../../schemas/outputs/resource/list.md#capability-set
[07]: ../../schemas/outputs/resource/list.md#capability-sethandlesexist
-[08]: ../../schemas/outputs/resource/list.md#capability-test
-[09]: ../../schemas/outputs/resource/list.md#capability-delete
-[10]: ../../schemas/outputs/resource/list.md#capability-export
-[11]: ../../schemas/outputs/resource/list.md#capability-resolve
+[08]: ../../schemas/outputs/resource/list.md#capability-whatif
+[09]: ../../schemas/outputs/resource/list.md#capability-test
+[10]: ../../schemas/outputs/resource/list.md#capability-delete
+[11]: ../../schemas/outputs/resource/list.md#capability-export
+[12]: ../../schemas/outputs/resource/list.md#capability-resolve
diff --git a/docs/reference/cli/resource/schema.md b/docs/reference/cli/resource/schema.md
index 1c604a25..1073b1c8 100644
--- a/docs/reference/cli/resource/schema.md
+++ b/docs/reference/cli/resource/schema.md
@@ -1,6 +1,6 @@
---
description: Command line reference for the 'dsc resource schema' command
-ms.date: 08/04/2023
+ms.date: 06/24/2024
ms.topic: reference
title: dsc resource schema
---
@@ -40,44 +40,124 @@ dsc resource schema --resource Microsoft/OSInfo
```yaml
$schema: http://json-schema.org/draft-07/schema#
+$id: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/resources/Microsoft/OSInfo/v0.1.0/schema.json
title: OsInfo
+description: |
+ Returns information about the operating system.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource
+markdownDescription: |
+ The `Microsoft/OSInfo` resource enables you to assert whether a machine meets criteria related to
+ the operating system. The resource is only capable of assertions. It doesn't implement the set
+ operation and can't configure the operating system.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource
type: object
required: []
+additionalProperties: false
properties:
$id:
type: string
+ readOnly: true
+ title: Data Type ID
+ description: |
+ Returns the unique ID for the OSInfo instance data type.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#id
+ markdownDescription: |
+ Returns the unique ID for the OSInfo instance data type.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#id
architecture:
- type:
- - string
- - 'null'
- bitness:
- $ref: '#/definitions/Bitness'
- codename:
- type:
- - string
- - 'null'
- edition:
- type:
- - string
- - 'null'
- family:
- $ref: '#/definitions/Family'
- version:
type: string
-additionalProperties: false
-definitions:
- Bitness:
+ title: Processor architecture
+ description: |
+ Defines the processor architecture as reported by 'uname -m' on the operating system.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#architecture
+ markdownDescription: |
+ Defines the processor architecture as reported by `uname -m` on the operating system.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#architecture
+ bitness:
type: string
enum:
- '32'
- '64'
- unknown
- Family:
+ title: Operating system bitness
+ description: |
+ Defines whether the operating system is a 32-bit or 64-bit operating system.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#bitness
+ markdownDescription: |
+ Defines whether the operating system is a 32-bit or 64-bit operating system.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#bitness
+ codename:
+ type: string
+ title: Linux codename
+ description: |
+ Defines the codename for the operating system as returned from 'lsb_release --codename'.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#codename
+ markdownDescription: |
+ Defines the codename for the operating system as returned from `lsb_release --codename`.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#codename
+ edition:
+ type: string
+ title: Windows edition
+ description: |
+ Defines the operating system edition, like 'Windows 11' or 'Windows Server 2016'.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#edition
+ markdownDescription: |
+ Defines the operating system edition, like `Windows 11` or `Windows Server 2016`.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#edition
+ family:
type: string
enum:
- Linux
- - MacOS
+ - macOS
- Windows
+ title: Operating system family
+ description: |
+ Defines whether the operating system is Linux, macOS, or Windows.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#family
+ markdownDescription: |
+ Defines whether the operating system is Linux, macOS, or Windows.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#family
+ version:
+ type: string
+ title: Operating system version
+ description: |
+ Defines the version of the operating system as a string.
+
+ https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#version
+ markdownDescription: |
+ Defines the version of the operating system as a string.
+
+ [Online documentation][01]
+
+ [01]: https://learn.microsoft.com/powershell/dsc/reference/microsoft/osinfo/resource#version
```
## Options
diff --git a/docs/reference/cli/schema/command.md b/docs/reference/cli/schema/command.md
index 472fe41a..343cd5cc 100644
--- a/docs/reference/cli/schema/command.md
+++ b/docs/reference/cli/schema/command.md
@@ -1,6 +1,6 @@
---
description: Command line reference for the 'dsc schema' command
-ms.date: 08/04/2023
+ms.date: 06/24/2024
ms.topic: reference
title: dsc schema
---
@@ -37,13 +37,117 @@ dsc schema --type get-result
```yaml
$schema: http://json-schema.org/draft-07/schema#
title: GetResult
-type: object
-required:
-- actualState
-properties:
- actualState:
- description: The state of the resource as it was returned by the Get method.
-additionalProperties: false
+anyOf:
+- $ref: '#/definitions/ResourceGetResponse'
+- type: array
+ items:
+ $ref: '#/definitions/ResourceGetResult'
+definitions:
+ ResourceGetResponse:
+ type: object
+ required:
+ - actualState
+ properties:
+ actualState:
+ description: The state of the resource as it was returned by the Get method.
+ additionalProperties: false
+ ResourceGetResult:
+ type: object
+ required:
+ - name
+ - result
+ - type
+ properties:
+ metadata:
+ anyOf:
+ - $ref: '#/definitions/Metadata'
+ - type: 'null'
+ name:
+ type: string
+ type:
+ type: string
+ result:
+ $ref: '#/definitions/GetResult'
+ additionalProperties: false
+ Metadata:
+ type: object
+ properties:
+ Microsoft.DSC:
+ anyOf:
+ - $ref: '#/definitions/MicrosoftDscMetadata'
+ - type: 'null'
+ MicrosoftDscMetadata:
+ type: object
+ properties:
+ version:
+ description: Version of DSC
+ type:
+ - string
+ - 'null'
+ operation:
+ description: The operation being performed
+ anyOf:
+ - $ref: '#/definitions/Operation'
+ - type: 'null'
+ executionType:
+ description: The type of execution
+ anyOf:
+ - $ref: '#/definitions/ExecutionKind'
+ - type: 'null'
+ startDatetime:
+ description: The start time of the configuration operation
+ type:
+ - string
+ - 'null'
+ endDatetime:
+ description: The end time of the configuration operation
+ type:
+ - string
+ - 'null'
+ duration:
+ description: The duration of the configuration operation
+ type:
+ - string
+ - 'null'
+ securityContext:
+ description: The security context of the configuration operation, can be specified to be required
+ anyOf:
+ - $ref: '#/definitions/SecurityContextKind'
+ - type: 'null'
+ context:
+ description: Identifies if the operation is part of a configuration
+ anyOf:
+ - $ref: '#/definitions/ContextKind'
+ - type: 'null'
+ Operation:
+ type: string
+ enum:
+ - Get
+ - Set
+ - Test
+ - Export
+ ExecutionKind:
+ type: string
+ enum:
+ - Actual
+ - WhatIf
+ SecurityContextKind:
+ type: string
+ enum:
+ - Current
+ - Elevated
+ - Restricted
+ ContextKind:
+ type: string
+ enum:
+ - Configuration
+ - Resource
+ GetResult:
+ anyOf:
+ - $ref: '#/definitions/ResourceGetResponse'
+ - type: array
+ items:
+ $ref: '#/definitions/ResourceGetResult'
```
## Options
diff --git a/docs/reference/schemas/definitions/resourceKind.md b/docs/reference/schemas/definitions/resourceKind.md
index 979f6079..a60b0681 100644
--- a/docs/reference/schemas/definitions/resourceKind.md
+++ b/docs/reference/schemas/definitions/resourceKind.md
@@ -1,6 +1,6 @@
---
-description: JSON schema reference for a resource instance type name
-ms.date: 04/22/2024
+description: JSON schema reference for resource kind
+ms.date: 06/24/2024
ms.topic: reference
title: DSC Resource kind schema reference
---
@@ -55,10 +55,10 @@ modules. They don't define resource manifests.
Group resources always operate on nested DSC Resource instances. Group resources can change how the
nested instances are processed, like the `Microsoft.DSC/Assertion` group resource.
-A group resource must always define the [kind][aa] property in the resource manifest.
+A group resource must always define the [kind][03] property in the resource manifest.
Group resources can also be used to bundle sets of resources together for processing, like the
-`Microsoft.DSC/Group` resource. You can use the [dependsOn][03] property for a resource instance in
+`Microsoft.DSC/Group` resource. You can use the [dependsOn][04] property for a resource instance in
a configuration to point to a group resource instead of enumerating each resource in the list.
### Importer resources
@@ -66,7 +66,7 @@ a configuration to point to a group resource instead of enumerating each resourc
Importer resources resolve an external source to a set of nested DSC Resource instances. The
properties of an importer resource define how to find and resolve the external source.
-An importer resource must always define the [kind][aa] and [resolve][ab] properties in the resource
+An importer resource must always define the [kind][03] and [resolve][05] properties in the resource
manifest.
For example, the `Microsoft.DSC/Import` importer resource resolves instances from an external
@@ -142,8 +142,8 @@ The following matrix defines the relations of each instance in the configuration
### Referencing nested instances
-Nested resource instances have limitations for the [dependsOn][03] property and the
-[reference()][04] configuration function.
+Nested resource instances have limitations for the [dependsOn][04] property and the
+[reference()][06] configuration function.
1. You can only reference adjacent instances. You can't reference a nested instance from outside of
the instance that declares or resolves it. You can't use a reference to a resource outside of the
@@ -381,7 +381,7 @@ resources:
[01]: ../resource/manifest/adapter.md
[02]: ../resource/manifest/validate.md
-[aa]: ../resource/manifest/root.md#kind
-[03]: ../config/resource.md#dependson
-[ab]: ../resource/manifest/resolve.md
-[04]: ../config/functions/reference.md
+[03]: ../resource/manifest/root.md#kind
+[04]: ../config/resource.md#dependson
+[05]: ../resource/manifest/resolve.md
+[06]: ../config/functions/reference.md
diff --git a/docs/reference/schemas/outputs/resource/list.md b/docs/reference/schemas/outputs/resource/list.md
index a9d23a7f..2191ba2e 100644
--- a/docs/reference/schemas/outputs/resource/list.md
+++ b/docs/reference/schemas/outputs/resource/list.md
@@ -1,6 +1,6 @@
---
description: JSON schema reference for the data returned by the 'dsc resource list' command.
-ms.date: 01/17/2024
+ms.date: 06/24/2024
ms.topic: reference
title: dsc resource list result schema reference
---
@@ -91,24 +91,24 @@ The following list describes the available capabilities for a resource:
- `Set` - The resource supports enforcing the desired state of an
instance. A resource has this capability when it defines the [set][08] property in its resource
manifest. Resources without this capability can't be used with the [dsc resource set][09] or
- [dsc config set][10] commands unless they're in a [Microsoft.DSC/Assertion][11] group as a nested
+ [dsc config set][10] commands unless they're in a Microsoft.DSC/Assertion group as a nested
instance.
- `SetHandlesExist` - The resource supports the
- [_exist property][12] directly. A resource has this capability when it defines the
- [handlesExist][13] property as `true` in the definition of the [set][08] command property in its
+ [_exist property][11] directly. A resource has this capability when it defines the
+ [handlesExist][12] property as `true` in the definition of the [set][08] command property in its
resource manifest.
When a resource has this capability, the `_exist` property is part of the resource's instance
schema and the resource handles deleting instances of the resource in its `set` command.
When a resource doesn't have this capability, when DSC finds an instance of the resource with
- `_exist` set to `false`, it handles calling the [delete][14] operation for the resource.
+ `_exist` set to `false`, it handles calling the [delete][13] operation for the resource.
If the resource doesn't have this capability or the `Delete` capability, DSC raises an error when
an instance defines `_exist` as `false`.
- `WhatIf` - The resource supports returning explicit information
- about how it will modify state when a user calls [dsc config set][10] with the [--what-if][15]
- option. A resource has this capability when it defines the [What-if method][16] in its resource
+ about how it will modify state when a user calls [dsc config set][10] with the [--what-if][14]
+ option. A resource has this capability when it defines the [What-if method][15] in its resource
manifest.
When a resource has this capability, DSC calls the defined command with its arguments when a
@@ -123,7 +123,7 @@ The following list describes the available capabilities for a resource:
the resource will change system state.
- `Test` - The resource supports validating the desired state of an
instance against the current state of the instance. A resource has this capability when it
- defines the [test][17] property in its resource manifest.
+ defines the [test][16] property in its resource manifest.
If a resource doesn't have the `Test` capability, DSC uses a synthetic test for instances of the
resource. The synthetic test compares each property for the desired state of an instance against
@@ -131,18 +131,18 @@ The following list describes the available capabilities for a resource:
state for a property and the actual state aren't the same, DSC marks the property as out of the
desired state.
- `Delete` - The resource supports removing an instance. A resource
- has this capability when it defines the [delete][14] property in its resource manifest. This
+ has this capability when it defines the [delete][13] property in its resource manifest. This
capability isn't mutually exclusive with the `SetHandlesExist` property. A resource can handle
- the `_exist` property in set operations and be called directly with [dsc resource delete][18] to
+ the `_exist` property in set operations and be called directly with [dsc resource delete][17] to
remove an instance.
- `Export` - The resource supports enumerating every instance of
- the resource. A resource has this capability when it defines the [export][19] property in its
+ the resource. A resource has this capability when it defines the [export][18] property in its
resource manifest. Only resources with this capability are usable with the
- [dsc resource export][20] and [dsc config export][21] commands.
+ [dsc resource export][19] and [dsc config export][20] commands.
- `Resolve` - The resource supports resolving nested resource
instances from an external source. A resource has this capability when it defines the
- [resolve][22] property in its resource manifest. This functionality is primarily used by
- [importer resources][23].
+ [resolve][21] property in its resource manifest. This functionality is primarily used by
+ [importer resources][22].
```yaml
Type: array
@@ -230,7 +230,7 @@ Required: true
Represents the values defined in the resource's manifest. This value is `null` for resources that
aren't command-based. For more information on the value for this property, see
-[Command-based DSC Resource manifest schema reference][24].
+[Command-based DSC Resource manifest schema reference][23].
```yaml
Type: [object, 'null']
@@ -248,17 +248,16 @@ Required: true
[08]: ../../resource/manifest/set.md
[09]: ../../../cli/resource/set.md
[10]: ../../../cli/config/set.md
-[11]: ../../../microsoft.dsc/Assertion/resource.md
-[12]: ../../resource/properties/exist.md
-[13]: ../../resource/manifest/set.md#handlesexist
-[14]: ../../resource/manifest/delete.md
-[15]: ../../../cli/config/set.md#-w---what-if
-[16]: ../../resource/manifest/whatif.md
-[17]: ../../resource/manifest/test.md
-[18]: ../../../cli/resource/delete.md
-[19]: ../../resource/manifest/export.md
-[20]: ../../../cli/resource/export.md
-[21]: ../../../cli/config/export.md
-[22]: ../../resource/manifest/resolve.md
-[23]: ../../definitions/resourceKind.md#importer-resources
-[24]: ../../resource/manifest/root.md
+[11]: ../../resource/properties/exist.md
+[12]: ../../resource/manifest/set.md#handlesexist
+[13]: ../../resource/manifest/delete.md
+[14]: ../../../cli/config/set.md#-w---what-if
+[15]: ../../resource/manifest/whatif.md
+[16]: ../../resource/manifest/test.md
+[17]: ../../../cli/resource/delete.md
+[18]: ../../resource/manifest/export.md
+[19]: ../../../cli/resource/export.md
+[20]: ../../../cli/config/export.md
+[21]: ../../resource/manifest/resolve.md
+[22]: ../../definitions/resourceKind.md#importer-resources
+[23]: ../../resource/manifest/root.md
diff --git a/docs/reference/schemas/resource/manifest/root.md b/docs/reference/schemas/resource/manifest/root.md
index 46a75c3c..04f3871f 100644
--- a/docs/reference/schemas/resource/manifest/root.md
+++ b/docs/reference/schemas/resource/manifest/root.md
@@ -1,6 +1,6 @@
---
description: JSON schema reference for a DSC Resource manifest
-ms.date: 01/17/2024
+ms.date: 06/24/2024
ms.topic: reference
title: Command-based DSC Resource manifest schema reference
---
@@ -210,6 +210,18 @@ Type: object
Required: false
```
+### whatIf
+
+Defines how DSC must call the DSC Resource to indicate whether and how the set command will modify
+an instance and how to process the output from the DSC Resource. If a resource doesn't define this
+method in the manifest, DSC synthesizes this behavior by converting the result of the test
+operation for the resource into the set result.
+
+The value of this property must be an object. The `executable` property, defining the name of the
+command to call, is mandatory. The `args` `input`, `implementsPretest`, and `returns` properties
+are optional. For more information, see
+[DSC Resource manifest whatIf property schema reference][10].
+
### test
The `test` property defines how to call the resource to test whether an instance is in the desired
@@ -218,7 +230,7 @@ property isn't defined, DSC performs a basic synthetic test for instances of the
The value of this property must be an object. The object's `executable` property, defining the name
of the command to call, is mandatory. The `args` `input`, and `returns` properties are optional.
-For more information, see [DSC Resource manifest test property schema reference][10].
+For more information, see [DSC Resource manifest test property schema reference][11].
```yaml
Type: object
@@ -232,7 +244,7 @@ property is mandatory for DSC Group Resources. DSC ignores this property for all
The value of this property must be an object. The object's `executable` property, defining the name
of the command to call, is mandatory. The `args` property is optional. For more information, see
-[DSC Resource manifest validate property schema reference][11].
+[DSC Resource manifest validate property schema reference][12].
```yaml
Type: object
@@ -246,7 +258,7 @@ When specified, the `provider` property defines the resource as a DSC Resource P
The value of this property must be an object. The object's `list` and `config` properties are
mandatory. The `list` property defines how to call the provider to return the resources that the
provider can manage. The `config` property defines how the provider expects input. For more
-information, see the [DSC Resource manifest provider property schema reference][12].
+information, see the [DSC Resource manifest provider property schema reference][13].
### exitCodes
@@ -291,7 +303,7 @@ resource. This property must always be an object that defines one of the followi
- `embedded` - When you specify the `embedded` property, DSC uses the defined value as the JSON
schema.
-For more information, see [DSC Resource manifest schema property reference][13].
+For more information, see [DSC Resource manifest schema property reference][14].
```yaml
Type: object
@@ -307,7 +319,8 @@ Required: true
[07]: export.md
[08]: get.md
[09]: set.md
-[10]: test.md
-[11]: validate.md
-[12]: provider.md
-[13]: schema/property.md
+[10]: whatif.md
+[11]: test.md
+[12]: validate.md
+[13]: provider.md
+[14]: schema/property.md
diff --git a/docs/reference/schemas/resource/manifest/schema/embedded.md b/docs/reference/schemas/resource/manifest/schema/embedded.md
index 95687e60..eff9828f 100644
--- a/docs/reference/schemas/resource/manifest/schema/embedded.md
+++ b/docs/reference/schemas/resource/manifest/schema/embedded.md
@@ -138,7 +138,7 @@ DSC Resources and integrating tools, but doesn't enable any built-in processing
If defined, this property must be a reference to the schema for the well-known property:
```json
-"_inDesiredState": {
+"_purge": {
"$ref": "https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/properties/purge.json"
}
```