code: def files_upload(
          self, *, file: Union[str, IOBase] = None, content: str = None, **kwargs
      ) -> SlackResponse:
          
          if file is None and content is None:
              raise e.SlackRequestError("The file or content argument must be specified.")
          if file is not None and content is not None:
              raise e.SlackRequestError(
                  "You cannot specify both the file and the content argument."
              )
  
          if file:
              return self.api_call("files.upload", files={"file": file}, data=kwargs)
          elif content:
              data = kwargs.copy()
              data.update({"content": content})
              return self.api_call("files.upload", data=data)
docs: Uploads or creates a file.
  
          Args:
              file (str): Supply a file path.
                  when you'd like to upload a specific file. e.g. 'dramacat.gif'
              content (str): Supply content when you'd like to create an
                  editable text file containing the specified text. e.g. 'launch plan'
          Raises:
              SlackRequestError: If niether or both the `file` and `content` args are specified.