code: public void reimageComputeNode(String poolId, String nodeId, ComputeNodeReimageOption nodeReimageOption, Iterable<BatchClientBehavior> additionalBehaviors) throws BatchErrorException, IOException {
          ComputeNodeReimageOptions options = new ComputeNodeReimageOptions();
          BehaviorManager bhMgr = new BehaviorManager(this.customBehaviors(), additionalBehaviors);
          bhMgr.applyRequestBehaviors(options);
  
          this.parentBatchClient.protocolLayer().computeNodes().reimage(poolId, nodeId, nodeReimageOption, options);
      }
docs: Reinstalls the operating system on the specified compute node.
  <p>You can reimage a compute node only when it is in the {@link com.microsoft.azure.batch.protocol.models.ComputeNodeState#IDLE Idle} or {@link com.microsoft.azure.batch.protocol.models.ComputeNodeState#RUNNING Running} state.</p>
  
  @param poolId The ID of the pool that contains the compute node.
  @param nodeId The ID of the compute node to reimage.
  @param nodeReimageOption Specifies when to reimage the node and what to do with currently running tasks.
  @param additionalBehaviors A collection of {@link BatchClientBehavior} instances that are applied to the Batch service request.
  @throws BatchErrorException Exception thrown when an error response is received from the Batch service.
  @throws IOException Exception thrown when there is an error in serialization/deserialization of data sent to/received from the Batch service.