3.3.4.40 EnumerateIpamIPBlock

The EnumerateIpamIPBlock operation is used to enumerate custom fields from the IPAM data store.

 <wsdl:operation name="EnumerateIpamIPBlock">
   <wsdl:input wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/EnumerateIpamIPBlock" message="ipam:IIpamServer_EnumerateIpamIPBlock_InputMessage" />
   <wsdl:output wsaw:Action="http://Microsoft.Windows.Ipam/IIpamServer/EnumerateIpamIPBlockResponse" message="ipam:IIpamServer_EnumerateIpamIPBlock_OutputMessage" />
 </wsdl:operation> 

Upon receiving the IIpamServer_EnumerateIpamIPBlock_InputMessage request message, the server performs the following processing steps. Upon successful completion of these steps, the server MUST respond with the IIpamServer_EnumerateIpamIPBlock_OutputMessage message. In the event of a failure, an appropriate SOAP fault MUST be sent to the client as specified in section 2.2.2.1:

  1. If EnumerateIpamIPBlock.parametersInput is NULL or EnumerateIpamIPBlock.parametersInput is not of type IPBlockRootEnumerationParameters or IPBlockChildBlockEnumerationParameters or IPBlockGetAllBlocksEnumerationParameters, an appropriate SOAP fault MUST be raised.

  2. If EnumerateIpamIPBlock.parametersInput is of type IPBlockRootEnumerationParameters:

    1. If EnumerateIpamIPBlock.parametersInput.AddressFamily is not InterNetwork or InterNetworkV6, an appropriate SOAP fault MUST be raised.

    2. Get all the rows from ADM_IPBlocksTable where ParentBlockId is NULL

    3. For each of the previous rows, call the GetIPBlockFromTable procedure of ADM_IPBlocksTable. Add the result to a temporary data collection enumeratedBlocks.

    4. Assign enumeratedBlocks to EnumerateIpamIPBlockResponse.EnumerateIpamIPBlockResult.

  3. If EnumerateIpamIPBlock.parametersInput is of type IPBlockChildBlockEnumerationParameters:

    1. If EnumerateIpamIPBlock.parametersInput.AddressFamily is not InterNetwork or InterNetworkV6, an appropriate SOAP fault MUST be raised.

    2. Get all the rows from ADM_IPBlocksTable where ParentBlockId is EnumerateIpamIPBlock.parametersInput.ParentBlockRecordId.

    3. For each of the previous rows, call the GetIPBlockFromTable procedure from ADM_IPBlocksTable. Add the result to a temporary data collection enumeratedBlocks.

    4.  Assign enumeratedBBlocks to EnumerateIpamIPBlockResponse.EnumerateIpamIPBlockResult.

  4. If EnumerateIpamIPBlock.parametersInput is of type IPBlockGetAllBlocksEnumerationParameters:

    1. If EnumerateIpamIPBlock.parametersInput.AddressFamily is not InterNetwork or InterNetworkV6, an appropriate SOAP fault MUST be raised.

    2. Get all the rows from ADM_IPBlocksTable.

    3. For each of the previous rows, call the GetIPBlockFromTable procedure of ADM_IPBlocksTable. Add the result to a temporary data collection enumeratedBlocks.

    4. Assign enumeratedBlocks to EnumerateIpamIPBlockResponse.EnumerateIpamIPBlockResult.