DSC Resource manifest validate property schema reference (Referência do esquema de propriedade do DSC Resource Manifest validate property schema reference)
Sinopse
Indica como chamar um recurso de grupo para testar se as instâncias aninhadas são válidas.
Metadados
SchemaDialect: https://json-schema.org/draft/2020-12/schema
SchemaID: https://raw.githubusercontent.com/PowerShell/DSC/main/schemas/2024/04/resource/manifest.validate.json
Type: object
Description
Os Recursos do Grupo DSC têm de definir a validate
propriedade no respetivo manifesto de Recurso do DSC. Esta propriedade define como o DSC pode chamar o recurso de grupo para testar se as instâncias no grupo têm definições válidas.
Defina sempre a validate
propriedade para recursos de grupo no manifesto de Recurso do DSC.
O DSC envia dados para o comando de três formas:
- Quando
input
éstdin
, o DSC envia os dados como uma cadeia que representa os dados como um objeto JSON comprimido sem espaços ou linhas novas entre as propriedades do objeto. - Quando
input
éenv
, o DSC envia os dados como variáveis de ambiente. Cria uma variável de ambiente para cada propriedade no objeto de dados de entrada, utilizando o nome e o valor da propriedade. - Quando a
args
matriz inclui uma definição de argumento de entrada JSON, o DSC envia os dados como uma cadeia que representa os dados como um objeto JSON comprimido para o argumento especificado.
Se não definir a input
propriedade e não definir um argumento de entrada JSON, o DSC não pode transmitir o JSON de entrada para o recurso. Só pode definir um argumento de entrada JSON para um comando.
Tem de definir a input
propriedade, um argumento de entrada JSON na matriz de args
propriedades ou ambos.
Exemplos
Exemplo 1 - Definição completa
Este exemplo é do Recurso de Grupo do DSC/AssertionGroup
DSC.
"validate": {
"executable": "dsc",
"args": [
"config",
"validate"
]
}
Define o executável como dsc
com os argumentos config
e validate
. O validate
método envia sempre a entrada do método como um blob JSON através stdin
de .
Com esta definição, o DSC chama o validate
método para este Recurso de Grupo do DSC ao executar:
{ ... } | dsc config validate
Propriedades Necessárias
A validate
definição tem de incluir estas propriedades:
Propriedades
executável
A executable
propriedade define o nome do comando a executar. O valor tem de ser o nome de um comando detetável na variável de ambiente do PATH
sistema ou o caminho completo para o comando. Uma extensão de ficheiro só é necessária quando o comando não é reconhecível pelo sistema operativo como executável.
Type: string
Required: true
args
A args
propriedade define a lista de argumentos a transmitir para o comando. Os argumentos podem ser qualquer número de cadeias. Se quiser passar o objeto JSON que representa o saco de propriedades do recurso para um argumento, pode definir um único item na matriz como um [objeto JSON], indicando o nome do argumento com a jsonInputArg
propriedade de cadeia e se o argumento é obrigatório para o comando com a mandatory
propriedade booleana.
Type: array
Required: false
Default: []
Type: [string, object(JSON Input Argument)]
Argumentos de cadeia
Qualquer item na matriz de argumentos pode ser uma cadeia que representa um argumento estático para passar para o comando, como config
ou --format
.
Type: string
Argumento de entrada JSON
Define um argumento para o comando que aceita o objeto de entrada JSON como uma cadeia. O DSC transmite a entrada JSON para o argumento nomeado quando disponível. Um argumento de entrada JSON é definido como um objeto JSON com as seguintes propriedades:
jsonInputArg
(obrigatório) – o argumento para transmitir os dados JSON para o comando, como--input
.mandatory
(opcional) - Indique se o DSC deve transmitir sempre o argumento para o comando, mesmo quando não existe nenhuma entrada JSON para o comando. Nesse caso, o DSC transmite uma cadeia vazia para o argumento de entrada JSON.
Só pode definir um argumento de entrada JSON por matriz de argumentos.
Se definir um argumento de entrada JSON e um input
tipo para um comando, o DSC envia os dados JSON de ambas as formas:
- Se definir
input
comoenv
e um argumento de entrada JSON, o DSC define uma variável de ambiente para cada propriedade na entrada JSON e transmite o objeto de entrada JSON como uma cadeia para o argumento definido. - Se definir
input
comostdin
e um argumento de entrada JSON, o DSC transmite a entrada JSON sobre stdin e como uma cadeia para o argumento definido. - Se definir um argumento de entrada JSON sem definir a propriedade, o
input
DSC só transmite a entrada JSON como uma cadeia para o argumento definido.
Se não definir a input
propriedade e não definir um argumento de entrada JSON, o DSC não pode transmitir o JSON de entrada para o recurso. Isto torna o manifesto inválido. Tem de definir a input
propriedade, um argumento de entrada JSON na matriz de args
propriedades ou ambos.
Type: object
RequiredProperties: [jsonInputArg]
entrada
A input
propriedade define como transmitir entrada para o recurso. Se esta propriedade não estiver definida, o DSC não envia nenhuma entrada para o recurso ao invocar a validate
operação.
O valor desta propriedade tem de ser uma das seguintes cadeias:
env
- Indica que o recurso espera que as propriedades de uma instância sejam especificadas como variáveis de ambiente com os mesmos nomes e invólucro.Esta opção suporta apenas os seguintes tipos de dados para propriedades de instância:
boolean
integer
number
string
array
deinteger
valoresarray
denumber
valoresarray
destring
valores
Para valores que não sejam de matriz, o DSC define a variável de ambiente para o valor especificado tal como está. Quando o tipo de dados é uma matriz de valores, o DSC define a variável de ambiente como uma cadeia delimitada por vírgulas. Por exemplo, a propriedade
foo
com um valor de[1, 2, 3]
é guardada na variável defoo
ambiente como"1,2,3"
.Se o recurso precisar de suportar propriedades complexas com um
object
valor ou matrizes de vários tipos, defina-o comostdin
em alternativa.stdin
- Indica que o recurso espera um blob JSON que representa uma instância destdin
. O JSON tem de cumprir o esquema de instância do recurso.
Type: string
Required: false
ValidValues: [env, stdin]