2.2.2.2.10 GetExtendedUpdateInfo2

This method is invoked to obtain additional metadata, such as the file decryption key, for the encrypted files in an update. If the client determines that additional metadata is needed, it SHOULD<24> call this method.

       <wsdl:operation name="GetExtendedUpdateInfo2" />

The SOAP operation is defined as follows.

       <wsdl:operation name="GetExtendedUpdateInfo2">
          <soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo2" 
          style="document" />

Request:

       <s:element name="GetExtendedUpdateInfo2">
         <s:complexType>
           <s:sequence>
             <s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie"/>
             <s:element minOccurs="0" maxOccurs="1" name="updateIDs" type="tns:ArrayOfUpdateIdentity"/>
             <s:element minOccurs="0" maxOccurs="1" name="infoTypes" type="tns:ArrayOfXmlUpdateFragmentType"/>
             <s:element minOccurs="0" maxOccurs="1" name="locales" type="tns:ArrayOfString"/>
           </s:sequence>
         </s:complexType>
       </s:element>

cookie: Specifies a cookie that MUST have been obtained from a previous call to GetCookie (section 2.2.2.2.2), GetFileLocations (section 2.2.2.2.7), or SyncUpdates (section 2.2.2.2.4). This element MUST be present.

updateIDs: Specifies the array of UpdateIDs for which the additional metadata are to be returned.

infoTypes: Specifies the type of metadata fragments to be returned. Its format (ArrayOfXmlUpdateFragmentType) MUST be as follows:

 <s:complexType name="ArrayOfXmlUpdateFragmentType">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" 
        name="XmlUpdateFragmentType" type="s1:XmlUpdateFragmentType" />
   </s:sequence>
 </s:complexType>

XmlUpdateFragmentType: Specifies the type of metadata fragment. Its enumeration is as follows:

 <s:simpleType name="XmlUpdateFragmentType">
   <s:restriction base="s:string">
     <s:enumeration value="Published" />
     <s:enumeration value="Core" />
     <s:enumeration value="Extended" />
     <s:enumeration value="VerificationRule" />
     <s:enumeration value="LocalizedProperties" />
     <s:enumeration value="Eula" />
     <s:enumeration value="FileUrl" />
     <s:enumeration value="FileDecryption" />
   </s:restriction>
 </s:simpleType>

locales: Optionally specifies the locales for which localizable extended metadata MUST be returned. Localizable metadata are elements such as human-readable strings, which are represented differently between locales, as specified in [MS-LCID].

Response:

 <s:element name="GetExtendedUpdateInfo2Response">
   <s:complexType>
     <s:sequence>
       <s:element minOccurs="0" maxOccurs="1" name="GetExtendedUpdateInfo2Result" type="s1:ExtendedUpdateInfo2"/>
     </s:sequence>
   </s:complexType>
 </s:element>

GetExtendedUpdateInfo2Result: Upon successful completion of this operation, this element must be returned. Its format MUST be as follows:

 <s:complexType name="ExtendedUpdateInfo2">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="1" name="Updates" type="tns:ArrayOfUpdateData"/>
     <s:element minOccurs="0" maxOccurs="1" name="FileLocations" type="tns:ArrayOfFileLocation"/>
     <s:element minOccurs="0" maxOccurs="1" name="UpdateReportingSamplingRates" type="tns:ArrayOfUpdateReportingSampleRate"/>
     <s:element minOccurs="0" maxOccurs="1" name="FileDecryptionData" type="tns:ArrayOfFileDecryption"/>
     <s:element minOccurs="0" maxOccurs="1" name="FileDecryptionData2" type="tns:ArrayOfFileDecryption2"/>
   </s:sequence>
 </s:complexType>

Updates: An array of entries containing the extended metadata requested for each update. Its format (ArrayOfUpdateData) MUST be as follows:

 <s:complexType name="ArrayOfUpdateData">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" name="Update" 
        nillable="true" type="s1:UpdateData" />
   </s:sequence>
 </s:complexType>

UpdateData: Specifies the extended metadata for an update. Its format MUST be as follows:

 <s:complexType name="UpdateData">
   <s:sequence>
     <s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int" />
     <s:element minOccurs="0" maxOccurs="1" name="Xml" type="s:string" />
   </s:sequence>
 </s:complexType>

ID: The revision ID of the revision.

Xml: An extended metadata fragment for this update. This element MUST be present. These fragments are created as specified in section 3.1.1. The format of the fragment is opaque to the server.

FileLocations: An array of locations for the content corresponding to each update. Its format (ArrayOfFileLocation) MUST be as follows:

 <s:complexType name="ArrayOfFileLocation">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" name="FileLocation" 
        nillable="true" type="s1:FileLocation" />
   </s:sequence>
 </s:complexType>

FileLocation: Specifies the location of the file. Its format MUST be as follows:

 <s:complexType name="FileLocation">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="1" name="FileDigest" 
        type="s:base64Binary" />
     <s:element minOccurs="0" maxOccurs="1" name="Url" 
        type="s:string" />
   </s:sequence>
 </s:complexType>

FileDigest: This field MUST be present. The value MUST be the SHA-1 hash computed over the content of the file. This value is used to retrieve the file's download location using the GetFileLocations (section 2.2.2.2.7) method. In addition, client implementations SHOULD use this value to authenticate the content file when it is downloaded from the server, by calculating the SHA-1 hash value of the downloaded file and comparing the calculated hash to the FileDigest hash. Files whose hash does not match SHOULD<25> be discarded by the client.

Url: This field MUST be present. It is an HTTP URI from which it MUST be possible to download the file.

UpdateReportingSamplingRates: Currently unused. An array of sampling rates. Its format (ArrayOfUpdateReportingSamplingRates) MUST be as follows

 <s:complexType name="ArrayOfUpdateReportingSampleRate">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" name="UpdateReportingSampleRate" nillable="true" type="tns:UpdateReportingSampleRate"/>
   </s:sequence>
 </s:complexType>
 <s:complexType name="UpdateReportingSampleRate">
   <s:sequence>
     <s:element minOccurs="1" maxOccurs="1" name="UpdateId" type="s2:guid" xmlns:q2="http://microsoft.com/wsdl/types/"/>
     <s:element minOccurs="1" maxOccurs="1" name="SamplingRateForInstall" type="s:int"/>
     <s:element minOccurs="1" maxOccurs="1" name="SamplingRateForDownload" type="s:int"/>
   </s:sequence>
 </s:complexType>

FileDecryptionData: An array of file decryption data for files in the update. Its format (ArrayOfFileDecryption) MUST be as follows:

     <s:complexType name="ArrayOfFileDecryption">
       <s:sequence>
         <s:element minOccurs="0" maxOccurs="unbounded" name="FileDecryption" nillable="true" type="tns:FileDecryption"/>
       </s:sequence>
</s:complexType>
     <s:complexType name="FileDecryption">
       <s:sequence>
         <s:element minOccurs="0" maxOccurs="1" name="FileDigest" type="s:base64Binary"/>
         <s:element minOccurs="0" maxOccurs="1" name="DecryptionKey" type="s:base64Binary"/>
         <s:element minOccurs="0" maxOccurs="1" name="SecurityData" type="tns:ArrayOfBase64Binary"/>
       </s:sequence>
     </s:complexType>

FileDecryption: Specifies the decryption data for a file.

DecryptionKey: This field MUST be present. The value MUST be the decryption key corresponding to the file represented by FileDigest, and is used to decrypt the file.

SecurityData: This field MUST be present. WSUS MUST return an array of size 1 (that is, it contains a single element), and its value MUST be the same as the decryption key.

FileDecryptionData2: An array of file decryption data for files in the updates. Its format (ArrayOfFileDecryption2) MUST be as follows:

 <s:complexType name="ArrayOfFileDecryption2">
   <s:sequence>
     <s:element minOccurs="0" maxOccurs="unbounded" name="FileDecryption2" nillable="true" type="tns:FileDecryption2"/>
   </s:sequence>
 </s:complexType>

FileDecryption2: Same as FileDecryption.