DSC Resource manifest adapter property schema reference
Synopsis
Defines a DSC Resource as a DSC Resource Adapter.
Metadata
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.adapter.json
Type: object
Description
DSC Resource Adapters must define the adapter
property in their manifest. This property
identifies the resource as an adapter and defines how DSC can call the adapter to get the resources
the adapter supports and how to pass resource instances to the adapter.
Examples
Example 1 - Microsoft.DSC/PowerShell
This example is from the Microsoft.DSC/PowerShell
DSC Resource Adapter.
"adapter": {
"list": {
"executable": "pwsh",
"args": [
"-NoLogo",
"-NonInteractive",
"-NoProfile",
"-Command",
"./powershell.resource.ps1 List"
]
},
"config": "full"
},
The manifest sets config
to full
, indicating that the adapter expects a JSON blob representing
the full and unprocessed configuration from stdin
.
It defines list.executable
as pwsh
. The arguments defined in list.args
ensure that DSC runs
PowerShell:
- Without the logo banner
- In non-interactive mode
- Without loading any profile scripts
- To invoke the
powershell.resource.ps1
script in the same folder as thedsc
command and pass theList
argument.
With this definition, DSC calls the list
method for this adapter by running:
pwsh -NoLogo -NonInteractive -NoProfile -Command "./powershellgroup.resource.ps1 List"
Required Properties
The adapter
definition must include these properties:
Properties
config
The config
property defines how the adapter expects to receive resource configurations. The
value must be one of the following options:
full
- Indicates that the adapter expects a JSON blob containing the full and unprocessed configuration as a single JSON blob overstdin
.sequence
- Indicates that the adapter expects each resource's configuration as a JSON Line overstdin
.
Type: string
ValidValues: [full, sequence]
list
The list
property defines how to call the adapter to list the resources it supports. The value
of this property must be an object and define the executable
sub-property.
Type: object
Required: true
RequiredProperties: [executable]
executable
The executable
sub-property defines the name of the command to run. The value must be the name of
a command discoverable in the system's PATH
environment variable or the full path to the command.
A file extension is only required when the command isn't recognizable by the operating system as an
executable.
Type: string
Required: true
args
The args
sub-property defines an array of strings to pass as arguments to the command. DSC passes
the arguments to the command in the order they're specified.
Type: array
Required: false
Default: []