docs: def ReplaceInstanceDisks(r, instance, disks=None, mode=REPLACE_DISK_AUTO,
                           remote_node=None, iallocator=None, dry_run=False):
      """
      Replaces disks on an instance.
  
      @type instance: str
      @param instance: instance whose disks to replace
      @type disks: list of ints
      @param disks: Indexes of disks to replace
      @type mode: str
      @param mode: replacement mode to use (defaults to replace_auto)
      @type remote_node: str or None
      @param remote_node: new secondary node to use (for use with
              replace_new_secondary mode)
      @type iallocator: str or None
      @param iallocator: instance allocator plugin to use (for use with
                                           replace_auto mode)
      @type dry_run: bool
      @param dry_run: whether to perform a dry run
  
      @rtype: int
      @return: job id
      """
  
      if mode not in REPLACE_DISK:
          raise GanetiApiError("Invalid mode %r not one of %r" % (mode,
                                                                  REPLACE_DISK))
  
      query = {
          "mode": mode,
          "dry-run": dry_run,
      }
  
      if disks:
          query["disks"] = ",".join(str(idx) for idx in disks)
  
      if remote_node:
          query["remote_node"] = remote_node
  
      if iallocator:
          query["iallocator"] = iallocator
  
      return r.request("post", "/2/instances/%s/replace-disks" % instance,
                       query=query)