code: def update_share(self, share_id, **kwargs):
          
  
          perms = kwargs.get('perms', None)
          password = kwargs.get('password', None)
          public_upload = kwargs.get('public_upload', None)
          if (isinstance(perms, int)) and (perms > self.OCS_PERMISSION_ALL):
              perms = None
          if not (perms or password or (public_upload is not None)):
              return False
          if not isinstance(share_id, int):
              return False
  
          data = {}
          if perms:
              data['permissions'] = perms
          if isinstance(password, six.string_types):
              data['password'] = password
          if (public_upload is not None) and (isinstance(public_upload, bool)):
              data['publicUpload'] = str(public_upload).lower()
  
          res = self._make_ocs_request(
              'PUT',
              self.OCS_SERVICE_SHARE,
              'shares/' + str(share_id),
              data=data
          )
          if res.status_code == 200:
              return True
          raise HTTPResponseError(res)
docs: Updates a given share
  
          :param share_id: (int) Share ID
          :param perms: (int) update permissions (see share_file_with_user() below)
          :param password: (string) updated password for public link Share
          :param public_upload: (boolean) enable/disable public upload for public shares
          :returns: True if the operation succeeded, False otherwise
          :raises: HTTPResponseError in case an HTTP error status was returned