Partilhar via


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:

  1. 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.
  2. 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.
  3. 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 stdinde .

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 como env 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 como stdin 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 de integer valores
    • array de number valores
    • array de string 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 de foo 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 como stdin em alternativa.

  • stdin - Indica que o recurso espera um blob JSON que representa uma instância de stdin. O JSON tem de cumprir o esquema de instância do recurso.

Type:        string
Required:    false
ValidValues: [env, stdin]