docs: def update(self, **kwargs):
          '''
          :param applet: ID of the applet to replace the app's contents with
          :type applet: string
          :param details: Metadata to store with the app (optional)
          :type details: dict or list
          :param access: Access specification (optional)
          :type access: dict
          :param resources: Specifies what is to be put into the app's resources container. Must be a string containing a project ID, or a list containing object IDs. (optional)
          :type resources: string or list
  
          Updates the parameters of an existing app. See the API
          documentation for the `/app/update
          <https://wiki.dnanexus.com/API-Specification-v1.0.0/Apps#API-method%253A-%252Fapp-xxxx%255B%252Fyyyy%255D%252Fupdate>`_
          method for more info.
  
          The current user must be a developer of the app.
  
          '''
          updates = {}
          for field in 'applet', 'billing', 'access', 'resources', 'details':
              if field in kwargs:
                  updates[field] = kwargs[field]
                  del kwargs[field]
  
          if self._dxid is not None:
              resp = dxpy.api.app_update(self._dxid, input_params=updates, **kwargs)
          else:
              resp = dxpy.api.app_update('app-' + self._name, alias=self._alias,
                                         input_params=updates, **kwargs)