docs: def update(self,
                 clearEmptyFields=None,
                 tags=None,
                 thumbnail=None,
                 password=None,
                 fullname=None,
                 email=None,
                 securityQuestionIdx=None,
                 securityAnswer=None,
                 culture=None,
                 region=None,
                 userType=None
                 ):
          """
          The Update User operation (POST only) modifies properties such as
          description, preferred view, tags, access, and thumbnail. The user
          name cannot be modified. For the "ecas" identity provider, password,
          e-mail, and full name must be modified by editing your Esri Global
          Account. For the "arcgis" identity provider, password, full name,
          security question, and security answer can be updated with Update
          User. Update User is available only to the user or to the
          administrator of the user's organization.
          Only the properties that are to be updated need to be specified in
          the request. Properties not specified will not be affected.
  
          Inputs:
          clearEmptyFields - Clears any fields that are passed in empty (for
                             example, description, tags).
          tags - Tags are words or short phrases that describe the user.
                 Separate terms with commas.
                 Example: tags=GIS Analyst, Redlands, cloud GIS
          thumbnail - Enter the pathname to the thumbnail image to be used
                      for the user. The recommended image size is 200 pixels
                      wide by 133 pixels high. Acceptable image formats are
                      PNG, GIF, and JPEG. The maximum file size for an image
                      is 1 MB. This is not a reference to the file but the
                      file itself, which will be stored on the sharing
                      servers.
                      Example: thumbnail=subfolder/thumbnail.jpg
          password -Password for the user. Only applicable for the arcgis
                    identity provider.
          fullname - The full name of the user. Only applicable for the
                     arcgis identity provider.
          email - The e-mail address of the user. Only applicable for the
                  arcgis identity provider.
          securityQuestionIdx - The index of the security question the user
                  wants to use. The security question is used for password
                  recovery. Only applicable for the arcgis identity provider.
          securityAnswer - The answer to the security question for the user.
                           Only applicable for the arcgis identity provider.
          culture - Specifies the locale for which content is returned. The
                    browser/machine language setting is the default.
                    Authenticated users can set the culture and overwrite the
                    browser/machine language setting.
          region - Specifies the region of featured maps and apps and the
                   basemap gallery.
          userType - if the value is set to "both", then the value will allow
                     users to access both ArcGIS Org and the forums from this
                     account.  'arcgisorg' means the account is only valid
                     for the organizational site.  This is an AGOL only
                     parameter.
          """
          params = {
              "f" : "json"
          }
          if region is not None:
              params['region'] = region
          if culture is not None:
              params['culture'] = culture
          if clearEmptyFields is not None:
              params['clearEmptyFields'] = clearEmptyFields
          if tags is not None:
              params['tags'] = tags
          if password is not None:
              params['password'] = password
          if fullname is not None:
              params['fullname'] = fullname
          if email is not None:
              params['email'] = email
          if securityQuestionIdx is not None:
              params['securityQuestionIdx'] = securityQuestionIdx
          if securityAnswer is not None:
              params['securityAnswer'] = securityAnswer
          if userType is not None and \
             userType.lower() in ['both', 'arcgisorg','arcgisonly']:
              params['userType'] = userType.lower()
          files = {}
  
  
          url =  "%s/update" % self.root
  
          if thumbnail is not None and \
             os.path.isfile(thumbnail):
              files.append(('thumbnail', thumbnail, os.path.basename(thumbnail)))
          res = None
          if thumbnail is not None and \
             os.path.isfile(thumbnail):
              res = self._post(url=url,
                               param_dict=params,
                               files=files,
                               securityHandler=self._securityHandler,
                               proxy_url=self._proxy_url,
                               proxy_port=self._proxy_port)
          else:
              res = self._post(url=url,
                                   param_dict=params,
                                   securityHandler=self._securityHandler,
                                   proxy_url=self._proxy_url,
                                   proxy_port=self._proxy_port)
          self.__init()
          return res