Represents the Report Publish object (see http://smartsheet-platform.github.io/api-docs/?shell#reportpublish-object
 /// <summary>
 /// <para>
 /// Sets the publish status of a report and returns the new status, including the URLs of any enabled publishing.
 /// </para>
 /// 
 /// <para>It mirrors to the following Smartsheet REST API method: PUT /reports/{id}/publish</para>
 /// </summary>
 /// <param name="reportId"> the reportId </param>
 /// <param name="reportPublish"> the ReportPublish object</param>
 /// <returns>
 /// The report publish status (note that if there is no such resource, this method will 
 /// throw ResourceNotFoundException rather than returning null).
 /// </returns>
 /// <exception cref="System.InvalidOperationException"> if any argument is null or empty string </exception>
 /// <exception cref="InvalidRequestException"> if there is any problem with the REST API request </exception>
 /// <exception cref="AuthorizationException"> if there is any problem with  the REST API authorization (access token) </exception>
 /// <exception cref="ResourceNotFoundException"> if the resource cannot be found </exception>
 /// <exception cref="ServiceUnavailableException"> if the REST API service is not available (possibly due To rate limiting) </exception>
 /// <exception cref="SmartsheetException"> if there is any other error during the operation </exception>
 public ReportPublish UpdatePublishStatus(long reportId, ReportPublish reportPublish)
 {
     return this.UpdateResource<ReportPublish>("reports/" + reportId + "/publish", typeof(ReportPublish), reportPublish);
 }