class_docstr: Manager for backend model objects
code: def update_for_task(
      self,
      task_id,
      name=None,
      model_id=None,
      type_="output",
      iteration=None,
  ):
      if Session.check_min_api_version("2.13"):
          req = tasks.AddOrUpdateModelRequest(
              task=task_id,
              name=name,
              type=type_,
              model=model_id,
              iteration=iteration,
          )
      elif type_ == "output":
          # backwards compatibility
          req = models.UpdateForTaskRequest(
              task=task_id, override_model_id=model_id
          )
      elif type_ == "input":
          # backwards compatibility, None
          req = None
      else:
          raise ValueError(
              "Type '{}' unsupported (use either 'input' or 'output')".format(
                  type_
              )
          )
  
      if req:
          self.send(req)
  
      self.reload()
  
imports: from collections import namedtuple
  from functools import partial
  import six
  from pathlib2 import Path
  from .base import IdObjectBase
  from .util import make_message
  from ..backend_api import Session
  from ..backend_api.services import models, tasks
  from ..storage import StorageManager
  from ..storage.helper import StorageHelper
  from ..utilities.async_manager import AsyncManagerMixin
label_desc: Use image node_id 15 for calling the Model obj's underlying member method code with example usage: obj.update_for_task(task_id, name, model_id, type_, iteration) without return types