2.2.9 WDSDCMGR_OP_QUERY_METADATA

This opcode is used by the clients to get deployment agent metadata from the server, which is used to customize the deployment behavior of the deployment agent.

The request packet MUST include the following variables:

Metadata.Count (WDSCPL_VAR_ULONG): MUST be set to the number of deployment agent metadata entries in the request.

The index in the following variable is a placeholder and is replaced by a value of zero in order to generate the variable name for the first variable, and incremented for subsequent variables up to (Metadata.Count - 1).  The request packet MUST include Metadata.Count instances of the following variable:

Metadata.Entry[index] (WDSCPL_VAR_WSTRING): MUST be a 16-bit little-endian Unicode string in the format specified by the following ABNF specification, as specified in [RFC5234].

 entry = identifier [filter] "=" value
 identifier-start = "a" / "b" / "c" / "d" / "e" / "f" / "g" / "h" / "i" / "j" / "k" / "l" / "m" / "n" / "o" / "p" / "q" / "r" / "s" / "t" / "u" / "v" / "w" / "x" / "y" / "z"
 identifier = identifier-start *("." / identifier-start)
 filter = "[" operator [";" set-specifier] [";" match-group] "]"
 operator = "equal" / "notequal" / "greaterthan" / "lessthan" / "lessthanorequal" / "greaterthanorequal" / "matchespattern" / "notmatchespattern"
 set-specifier = "allof" "atleastoneof"
 match-group = "matchgroup" "=" 1*identifier-start
 value = string-value / bool-value / time-value / integer-value / version-value / guid-value / binary-value
 string-value = (%x22 %x22) / (%x22 string-body %x22) / (%x27 string-body %x27)
 string-body = 1*string-element
 string-element = %x1-21 / %x23-26 / %x28-5b / %x5d-ff / (%x5c %x5c) / (%x5c %x22) / (%x5c %x27)
 bool-value = "true" / "false"
 digit = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
 hex-digit = "a" / "b" / "c" / "d" / "e" / "f" / digit
 time-value = 1*digit "/" 1*digit "/" 1*digit [1*digit ":" 1*digit ":" 1*digit ["." 1*digit]]
 integer-value = ["-"] 1*digit ; MUST specify a valid 64-bit signed integer
 version-value = version-number "." version-number "." version-number "." version-number
 version-number = digit / 2digit / 3digit / ( [ %x31-35 ] 4*digit ) / ( "64" 3digit ) / ( "65" %x30-34 2digit ) / ( "655" %x30-32 digit ) / ( "6553" %x30-35 )
 guid-value = ("{" guid-body "}") / guid-body
 guid-body = 8hex-digit "-" 4hex-digit "-" 4hex-digit "-" 4hex-digit "-" 12hex-digit
 binary-value = "[" 2hex-digit *("-" 2hex-digit) "]"

The response packet MUST include the following variables:

Metadata.Count (WDSCPL_VAR_ULONG): MUST be set to the number of deployment agent metadata entries in the reply.

The index in the following variable is a placeholder and is replaced by a value of zero in order to generate the variable name for the first variable, and incremented for subsequent variables up to (Metadata.Count - 1).  In this manner the reply packet MUST include Metadata.Count instances of the following variable:

Metadata.Entry[index] (WDSCPL_VAR_WSTRING): MUST be a 16-bit little-endian Unicode string in the format specified by the preceding ABNF specification.