diff --git a/schemas/schemas.config.yaml b/schemas/schemas.config.yaml index 6b82ea33d..26893ec5f 100644 --- a/schemas/schemas.config.yaml +++ b/schemas/schemas.config.yaml @@ -16,6 +16,12 @@ bundle_schemas: OutputDirectory: bundled/resource OutputFormat: ['Json', 'JsonVSCode'] + # Adapted resource manifest bundle + - ConfigFilePath: adaptedresource/manifest.json + Name: manifest + OutputDirectory: bundled/adaptedresource + OutputFormat: ['Json', 'JsonVSCode'] + # Configuration document bundle - ConfigFilePath: config/document.json Name: document diff --git a/schemas/src/adaptedresource/manifest.schema.yaml b/schemas/src/adaptedresource/manifest.schema.yaml new file mode 100644 index 000000000..f08f6d0a3 --- /dev/null +++ b/schemas/src/adaptedresource/manifest.schema.yaml @@ -0,0 +1,99 @@ +# yaml-language-server: $schema=https://json-schema.org/draft/2020-12/schema +$schema: https://json-schema.org/draft/2020-12/schema +$id: ///adaptedresource/manifest.schema.yaml + +title: Instance Schema +description: >- + Defines the JSON Schema for validating a JSON blob representing an instance of the adapted DSC + resource. + +type: object +required: + - embedded +properties: + embedded: + title: Embedded Instance Schema + description: >- + Defines the JSON Schema DSC must use to validate a JSON blob representing an instance of the + adapted DSC resource. + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the JSON Schema DSC must use to validate a JSON blob representing an instance of the + adapted DSC resource. + + [01]: /reference/schemas/adaptedresource/manifest/schema/embedded? + type: object + required: + - $schema + - type + - properties + properties: + type: + title: Instance Type + description: >- + Defines the JSON type for an instance of the adapted DSC resource. DSC resource instances + always have the `object` type. + const: object + markdownDescription: | # VS Code only + Defines the JSON type for an instance of the adapted DSC resource. DSC resource instances + always have the `object` type. + $schema: + title: Instance Schema Dialect + description: >- + Defines which dialect of JSON Schema the embedded schema uses. + type: string + enum: + - https://json-schema.org/draft/2020-12/schema + - https://json-schema.org/draft/2019-09/schema + - http://json-schema.org/draft-07/schema# + $id: + title: Instance Schema ID + description: >- + Defines the unique ID for the embedded schema. If defined, DSC can cache the schema for + faster validation. + type: string + format: uri + title: + title: Instance Schema Title + description: >- + Defines the title for the embedded schema. + type: string + description: + title: Instance Schema Description + description: >- + Defines the description for the embedded schema. + type: string + required: + title: Required Properties + description: >- + Defines the list of required properties for an instance of the adapted DSC resource. + type: array + items: + type: string + additionalProperties: + title: Additional Properties + description: >- + Defines whether the embedded schema allows additional properties. + type: boolean + properties: + title: Instance Properties + description: >- + Defines the properties of an instance of the adapted DSC resource. + type: object + additionalProperties: + type: object + +# VS Code only +markdownDescription: | + *** + [_Online Documentation_][01] + *** + + Defines the JSON Schema for validating a JSON blob representing an instance of the adapted + DSC resource. For adapted resources, only embedded schemas are supported. The adapter is + responsible for providing the schema during resource discovery. + + [01]: /reference/schemas/adaptedresource/manifest/schema? diff --git a/schemas/src/adaptedresource/manifest.yaml b/schemas/src/adaptedresource/manifest.yaml new file mode 100644 index 000000000..5ffdc5c43 --- /dev/null +++ b/schemas/src/adaptedresource/manifest.yaml @@ -0,0 +1,604 @@ +# yaml-language-server: $schema=https://json-schema.org/draft/2020-12/schema +$schema: https://json-schema.org/draft/2020-12/schema +$id: ///adaptedresource/manifest.yaml + +title: DSC adapted resource manifest +description: >- + Defines the information DSC requires to process and surface an adapted DSC resource. Adapted + resources are discovered and invoked by an adapter, not directly by DSC. +markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the information DSC requires to process and surface an adapted DSC resource. Adapted + resources are discovered and invoked by an adapter, not directly by DSC. For DSC to use an + adapted resource manifest on a system, the manifest file must: + + 1. Be discoverable in the `PATH` environment variable. + 1. Follow the naming convention `.dsc.adaptedresource.json`. + 1. Be valid for this schema. + + [01]: /reference/schemas/adaptedresource/manifest/root? + +defaultSnippets: + - label: ' Define an adapted resource' + markdownDescription: |- + Defines an adapted resource that is managed by an adapter. The adapter discovers and + invokes the resource. The manifest pre-registers the resource so DSC can use it without + running full adapter discovery. + body: + ${escape_dollar:$}schema: ///bundled/adaptedresource/manifest.yaml + type: '${1:owner.area.group}/${2:ResourceName}' + kind: resource + version: '${3:0.1.0}' + capabilities: + - ${4|get,set,test,export,delete|} + description: ${5:Synopsis for the adapted resource} + author: ${6:Author name} + requireAdapter: '${7:Adapter/Name}' + path: ${8:path/to/manifest.json} + schema: + embedded: + ${escape_dollar:$}schema: ${9|https://json-schema.org/draft/2020-12/schema,https://json-schema.org/draft/2019-09/schema,http://json-schema.org/draft-07/schema#|} + type: object + properties: + ${10:name}: + title: ${11:property title} + description: ${12:explanation of property purpose and usage} + type: ${13|string,integer,number,array,object,null|} + +type: object +required: + - $schema + - type + - kind + - version + - capabilities + - requireAdapter + - path + - schema +properties: + $schema: + title: Manifest Schema + description: >- + This property must be the canonical URL of the adapted resource manifest schema that the + manifest is implemented for. + type: string + format: uri + enum: + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/adaptedresource/manifest.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/adaptedresource/manifest.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/adaptedresource/manifest.vscode.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/adaptedresource/manifest.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/adaptedresource/manifest.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/adaptedresource/manifest.vscode.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/adaptedresource/manifest.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/adaptedresource/manifest.json + - https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/adaptedresource/manifest.vscode.json + - https://aka.ms/dsc/schemas/v3/adaptedresource/manifest.json + - https://aka.ms/dsc/schemas/v3/bundled/adaptedresource/manifest.json + - https://aka.ms/dsc/schemas/v3/bundled/adaptedresource/manifest.vscode.json + - https://aka.ms/dsc/schemas/v3.1/adaptedresource/manifest.json + - https://aka.ms/dsc/schemas/v3.1/bundled/adaptedresource/manifest.json + - https://aka.ms/dsc/schemas/v3.1/bundled/adaptedresource/manifest.vscode.json + - https://aka.ms/dsc/schemas/v3.1.0/adaptedresource/manifest.json + - https://aka.ms/dsc/schemas/v3.1.0/bundled/adaptedresource/manifest.json + - https://aka.ms/dsc/schemas/v3.1.0/bundled/adaptedresource/manifest.vscode.json + # VS Code Only + markdownDescription: | + *** + [_Online Documentation_][00] + *** + + The `$schema` property indicates the canonical URI of this schema that the manifest validates + against. This property is mandatory. DSC uses this value to validate the manifest against the + correct JSON schema. + + The JSON schemas for DSC are published in multiple versions and forms. This documentation is + for the latest version of the schema. As a convenience, you can specify either the full URI + for the schema hosted in GitHub or use the shorter `aka.ms` URI. You can specify the schema + for a specific semantic version, the latest schema for a minor version, or the latest schema + for a major version of DSC. For more information about schema URIs and versioning, see + [DSC JSON Schema URIs][01]. + + For every version of the schema, there are three valid urls: + + ```yaml + .../adaptedresource/manifest.json + ``` + + > The URL to the canonical non-bundled schema. When it's used for validation, the validating + > client needs to retrieve this schema and every schema it references. + + ```yaml + .../bundled/adaptedresource/manifest.json + ``` + + > The URL to the bundled schema. When it's used for validation, the validating client only + > needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + + ```yaml + .../bundled/adaptedresource/manifest.vscode.json + ``` + + > The URL to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + + [00]: /reference/schemas/adaptedresource/manifest/root?#schema + [01]: /reference/schemas/schema-uris? + markdownEnumDescriptions: + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/adaptedresource/manifest.yaml + + + > #### `v3` non-bundled, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3` schema. This URL + > points to the canonical non-bundled schema. When it's used for validation, the + > validating client needs to retrieve this schema and every schema it references. + > + > This URI is for the schemas in a major version folder. If you pin to a major version + > folder, like `v3`, the schemas you use will update with every nonbreaking release. You + > can use those schemas until you want or need to migrate to a new major version of DSC. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/adaptedresource/manifest.yaml + + + > #### `v3` bundled, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3` schema. This URL + > points to the bundled schema. When it's used for validation, the validating client + > only needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + > + > This URI is for the schemas in a major version folder. If you pin to a major version + > folder, like `v3`, the schemas you use will update with every nonbreaking release. You + > can use those schemas until you want or need to migrate to a new major version of DSC. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3/bundled/adaptedresource/manifest.vscode.yaml + + + > #### `v3` enhanced authoring, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3` schema. This URL + > points to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + > + > This URI is for the schemas in a major version folder. If you pin to a major version + > folder, like `v3`, the schemas you use will update with every nonbreaking release. You + > can use those schemas until you want or need to migrate to a new major version of DSC. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/adaptedresource/manifest.yaml + + + > #### `v3.1` non-bundled, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1` schema. This URL + > points to the canonical non-bundled schema. When it's used for validation, the + > validating client needs to retrieve this schema and every schema it references. + > + > This URI is for the schemas in a minor version folder. If you pin to a minor version + > folder, like `v3.1`, the schemas you use will update with every patch release. Pinning + > to a minor version folder enables you to take advantage of fixes to the schemas without + > continually updating your schema URIs. However, to take advantage of any improvements + > or new features, you need to update the URI whenever a new minor version is released. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/adaptedresource/manifest.yaml + + + > #### `v3.1` bundled, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1` schema. This URL + > points to the bundled schema. When it's used for validation, the validating client + > only needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + > + > This URI is for the schemas in a minor version folder. If you pin to a minor version + > folder, like `v3.1`, the schemas you use will update with every patch release. Pinning + > to a minor version folder enables you to take advantage of fixes to the schemas without + > continually updating your schema URIs. However, to take advantage of any improvements + > or new features, you need to update the URI whenever a new minor version is released. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1/bundled/adaptedresource/manifest.vscode.yaml + + + > #### `v3.1` enhanced authoring, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1` schema. This URL + > points to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + > + > This URI is for the schemas in a minor version folder. If you pin to a minor version + > folder, like `v3.1`, the schemas you use will update with every patch release. Pinning + > to a minor version folder enables you to take advantage of fixes to the schemas without + > continually updating your schema URIs. However, to take advantage of any improvements + > or new features, you need to update the URI whenever a new minor version is released. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/adaptedresource/manifest.yaml + + + > #### `v3.1.0` non-bundled, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1.0` schema. This URL + > points to the canonical non-bundled schema. When it's used for validation, the + > validating client needs to retrieve this schema and every schema it references. + > + > This URI is for the schemas in a full semantic version folder. If you pin to a full + > semantic version folder, like `v3.1.0`, you're pinning to schemas that won't change. + > However, to take advantage of any improvements or fixes to the schemas, you need to + > update the URI with each release. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/adaptedresource/manifest.yaml + + + > #### `v3.1.0` bundled, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1.0` schema. This URL + > points to the bundled schema. When it's used for validation, the validating client + > only needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + > + > This URI is for the schemas in a full semantic version folder. If you pin to a full + > semantic version folder, like `v3.1.0`, you're pinning to schemas that won't change. + > However, to take advantage of any improvements or fixes to the schemas, you need to + > update the URI with each release. + - | # https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/v3.1.0/bundled/adaptedresource/manifest.vscode.yaml + + + > #### `v3.1.0` enhanced authoring, canonical URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1.0` schema. This URL + > points to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + > + > This URI is for the schemas in a full semantic version folder. If you pin to a full + > semantic version folder, like `v3.1.0`, you're pinning to schemas that won't change. + > However, to take advantage of any improvements or fixes to the schemas, you need to + > update the URI with each release. + + - | # https://aka.ms/dsc/schemas/v3/adaptedresource/manifest.yaml + + + > #### `v3` non-bundled, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3` schema. This URL + > points to the canonical non-bundled schema. When it's used for validation, the + > validating client needs to retrieve this schema and every schema it references. + > + > This URI is for the schemas in a major version folder. If you pin to a major version + > folder, like `v3`, the schemas you use will update with every nonbreaking release. You + > can use those schemas until you want or need to migrate to a new major version of DSC. + - | # https://aka.ms/dsc/schemas/v3/bundled/adaptedresource/manifest.yaml + + + > #### `v3` bundled, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3` schema. This URL + > points to the bundled schema. When it's used for validation, the validating client + > only needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + > + > This URI is for the schemas in a major version folder. If you pin to a major version + > folder, like `v3`, the schemas you use will update with every nonbreaking release. You + > can use those schemas until you want or need to migrate to a new major version of DSC. + - | # https://aka.ms/dsc/schemas/v3/bundled/adaptedresource/manifest.vscode.yaml + + + > #### `v3` enhanced authoring, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3` schema. This URL + > points to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + > + > This URI is for the schemas in a major version folder. If you pin to a major version + > folder, like `v3`, the schemas you use will update with every nonbreaking release. You + > can use those schemas until you want or need to migrate to a new major version of DSC. + - | # https://aka.ms/dsc/schemas/v3.1/adaptedresource/manifest.yaml + + + > #### `v3.1` non-bundled, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1` schema. This URL + > points to the canonical non-bundled schema. When it's used for validation, the + > validating client needs to retrieve this schema and every schema it references. + > + > This URI is for the schemas in a minor version folder. If you pin to a minor version + > folder, like `v3.1`, the schemas you use will update with every patch release. Pinning + > to a minor version folder enables you to take advantage of fixes to the schemas without + > continually updating your schema URIs. However, to take advantage of any improvements + > or new features, you need to update the URI whenever a new minor version is released. + - | # https://aka.ms/dsc/schemas/v3.1/bundled/adaptedresource/manifest.yaml + + + > #### `v3.1` bundled, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1` schema. This URL + > points to the bundled schema. When it's used for validation, the validating client + > only needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + > + > This URI is for the schemas in a minor version folder. If you pin to a minor version + > folder, like `v3.1`, the schemas you use will update with every patch release. Pinning + > to a minor version folder enables you to take advantage of fixes to the schemas without + > continually updating your schema URIs. However, to take advantage of any improvements + > or new features, you need to update the URI whenever a new minor version is released. + - | # https://aka.ms/dsc/schemas/v3.1/bundled/adaptedresource/manifest.vscode.yaml + + + > #### `v3.1` enhanced authoring, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1` schema. This URL + > points to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + > + > This URI is for the schemas in a minor version folder. If you pin to a minor version + > folder, like `v3.1`, the schemas you use will update with every patch release. Pinning + > to a minor version folder enables you to take advantage of fixes to the schemas without + > continually updating your schema URIs. However, to take advantage of any improvements + > or new features, you need to update the URI whenever a new minor version is released. + - | # https://aka.ms/dsc/schemas/v3.1.0/adaptedresource/manifest.yaml + + + > #### `v3.1.0` non-bundled, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1.0` schema. This URL + > points to the canonical non-bundled schema. When it's used for validation, the + > validating client needs to retrieve this schema and every schema it references. + > + > This URI is for the schemas in a full semantic version folder. If you pin to a full + > semantic version folder, like `v3.1.0`, you're pinning to schemas that won't change. + > However, to take advantage of any improvements or fixes to the schemas, you need to + > update the URI with each release. + - | # https://aka.ms/dsc/schemas/v3.1.0/bundled/adaptedresource/manifest.yaml + + + > #### `v3.1.0` bundled, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1.0` schema. This URL + > points to the bundled schema. When it's used for validation, the validating client + > only needs to retrieve this schema. + > + > This schema uses the bundling model introduced for JSON Schema 2020-12. While DSC can + > still validate the document when it uses this schema, other tools may error or behave + > in unexpected ways. + > + > This URI is for the schemas in a full semantic version folder. If you pin to a full + > semantic version folder, like `v3.1.0`, you're pinning to schemas that won't change. + > However, to take advantage of any improvements or fixes to the schemas, you need to + > update the URI with each release. + - | # https://aka.ms/dsc/schemas/v3.1.0/bundled/adaptedresource/manifest.vscode.yaml + + + > #### `v3.1.0` enhanced authoring, short URI + > + > Indicates that the adapted resource manifest adheres to the `v3.1.0` schema. This URL + > points to the enhanced authoring schema. This schema is much larger than the other + > schemas, as it includes additional definitions that provide contextual help and snippets + > that the others don't include. + > + > This schema uses keywords that are only recognized by VS Code. While DSC can still + > validate the document when it uses this schema, other tools may error or behave in + > unexpected ways. + > + > This URI is for the schemas in a full semantic version folder. If you pin to a full + > semantic version folder, like `v3.1.0`, you're pinning to schemas that won't change. + > However, to take advantage of any improvements or fixes to the schemas, you need to + > update the URI with each release. + type: + $ref: ///definitions/resourceType.yaml + kind: + title: Adapted Resource Kind + description: >- + Defines the kind of adapted resource. Adapted resources are always standard resources. + type: string + enum: + - resource + default: resource + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the kind of adapted resource. Adapted resources are always standard resources managed + by an adapter. + + [01]: /reference/schemas/adaptedresource/manifest/root?#kind + version: + title: Adapted Resource Semantic Version + description: >- + The semantic version (semver) of the adapted DSC resource. + $ref: ///definitions/semver.yaml + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + The semantic version ([semver][02]) of the adapted DSC resource. + + This value uses the [suggested regular expression][03] to validate whether the string is valid + semver. This is the same pattern, made multi-line for easier readability: + + ```regex + ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*) + (?:-( + (?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*) + (?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)) + *))? + (?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + ``` + + The first line matches the `major.minor.patch` components of the version. The middle lines + match the pre-release components. The last line matches the build metadata component. + + [01]: /reference/schemas/adaptedresource/manifest/root?#version + [02]: https://semver.org/ + [03]: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string + capabilities: + title: Adapted Resource Capabilities + description: >- + Defines the operations the adapted resource supports when invoked through the adapter. + $ref: ///definitions/resourceCapabilities.yaml + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the operations the adapted resource supports when invoked through the adapter. The + adapter is responsible for implementing these operations on behalf of the adapted resource. + + [01]: /reference/schemas/adaptedresource/manifest/root?#capabilities + condition: + title: Condition + description: >- + Defines a DSC expression that evaluates to a boolean value. When the condition evaluates + to false, DSC ignores the adapted resource. + type: string + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines a DSC expression that evaluates to a boolean value. When the condition evaluates + to `false`, DSC ignores the adapted resource. This enables conditional inclusion of adapted + resources based on environment or configuration state. + + [01]: /reference/schemas/adaptedresource/manifest/root?#condition + deprecationMessage: + title: Deprecation Message + description: >- + Defines a message indicating the adapted resource is deprecated. When specified, DSC + displays this message when the resource is used. + type: string + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines a message indicating the adapted resource is deprecated. When specified, DSC + displays this message as a warning when the resource is used in a configuration. + + [01]: /reference/schemas/adaptedresource/manifest/root?#deprecationmessage + description: + title: Adapted Resource Description + description: >- + A short synopsis of the adapted DSC resource's purpose. + type: string + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines a short synopsis of the adapted DSC resource's purpose. + + [01]: /reference/schemas/adaptedresource/manifest/root?#description-1 + author: + title: Adapted Resource Author + description: >- + The name of the person or organization that developed and maintains the adapted DSC resource. + type: string + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the name of the person or organization that developed and maintains the adapted DSC + resource. + + [01]: /reference/schemas/adaptedresource/manifest/root?#author + tags: + title: Tags + description: >- + Defines a list of searchable terms for the adapted resource. + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines a list of searchable terms for the adapted resource. + + [01]: /reference/schemas/adaptedresource/manifest/root?#tags + type: array + uniqueItems: true + items: + type: string + pattern: ^\w+$ + patternErrorMessage: | # VS Code only + Invalid tag. Tags must be a string of alphanumeric characters and underscores. No other + characters are permitted. + requireAdapter: + title: Required Adapter + description: >- + The fully qualified type name of the adapter that manages this adapted resource. DSC uses + this value to route operations for the adapted resource to the correct adapter. + $ref: ///definitions/resourceType.yaml + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the fully qualified type name of the adapter that manages this adapted resource. + DSC uses this value to route operations for the adapted resource to the correct adapter. + + The adapter must be available on the system as a command-based DSC resource with `kind` set + to `adapter`. + + [01]: /reference/schemas/adaptedresource/manifest/root?#requireadapter + path: + title: Manifest Path + description: >- + The file path to the adapted resource manifest or the module that contains the resource. + This path is relative to the location of the manifest file. + type: string + markdownDescription: | # VS Code only + *** + [_Online Documentation_][01] + *** + + Defines the file path to the adapted resource manifest or the module that contains the + resource. This path is relative to the location of the manifest file. + + [01]: /reference/schemas/adaptedresource/manifest/root?#path + schema: + $ref: ///adaptedresource/manifest.schema.yaml