code: public ReportPublish updatePublishStatus(long id, ReportPublish reportPublish) throws SmartsheetException{
          return this.updateResource("reports/" + id + "/publish", ReportPublish.class, reportPublish);
      }
docs: Sets the publish status of a report and returns the new status, including the URLs of any
  enabled publishing.
  
  It mirrors to the following Smartsheet REST API method: PUT /reports/{id}/publish
  
  Exceptions:
  - InvalidRequestException : if there is any problem with the REST API request
  - AuthorizationException : if there is any problem with the REST API authorization(access token)
  - ResourceNotFoundException : if the resource can not be found
  - ServiceUnavailableException : if the REST API service is not available (possibly due to rate limiting)
  - SmartsheetRestException : if there is any other REST API related error occurred during the operation
  - SmartsheetException : if there is any other error occurred during the operation
  
  @param id the ID of the report
  @param publish the ReportPublish object
  @return the updated ReportPublish (note that if there is no such resource, this method will
  throw ResourceNotFoundException rather than returning null)
  @throws IllegalArgumentException if any argument is null or empty string
  @throws InvalidRequestException if there is any problem with the REST API request
  @throws AuthorizationException if there is any problem with  the REST API authorization (access token)
  @throws ResourceNotFoundException if the resource cannot be found
  @throws ServiceUnavailableException if the REST API service is not available (possibly due to rate limiting)
  @throws SmartsheetException if there is any other error during the operation