/// <summary> /// <para>Gets a list of all Attachments that are in the Discussion</para> /// <para>It mirrors To the following Smartsheet REST API method: <br /> /// GET /sheets/{sheetId}/discussions/{discussionId}/attachments</para> /// </summary> /// <param name="sheetId"> the sheetId </param> /// <param name="discussionId"> the discussion Id </param> /// <param name="paging"> the paging </param> /// <returns> list of all Attachments that are in the Discussion. </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 virtual PaginatedResult<Attachment> ListAttachments(long sheetId, long discussionId, PaginationParameters paging) { StringBuilder path = new StringBuilder("sheets/" + sheetId + "/discussions/" + discussionId + "/attachments"); if (paging != null) { path.Append(paging.ToQueryString()); } return this.ListResourcesWithWrapper<Attachment>(path.ToString()); }
/// <summary> /// <para>Gets the cell modification history.</para> /// <para>It mirrors To the following Smartsheet REST API method: GET /sheets/{sheetId}/rows/{rowId}/columns/{columnId}/history</para> /// <remarks><para>This operation supports pagination of results. For more information, see Paging.</para> /// <para>This is a resource-intensive operation and incurs 10 additional requests against the rate limit.</para></remarks> /// </summary> /// <param name="sheetId"> the sheet Id </param> /// <param name="rowId"> the row Id </param> /// <param name="columnId"> the column id</param> /// <param name="include"> the elements to include in the response </param> /// <param name="paging"> the pagination </param> /// <returns> the row object </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 virtual PaginatedResult<CellHistory> GetCellHistory(long sheetId, long rowId, long columnId, IEnumerable<CellInclusion> include, PaginationParameters paging) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } if (include != null) { parameters.Add("include", Util.QueryUtil.GenerateCommaSeparatedList(include)); } return this.ListResourcesWithWrapper<CellHistory>(QueryUtil.GenerateUrl("sheets/" + sheetId + "/rows/" + rowId + "/columns/" + columnId + "/history", parameters)); }
/// <summary> /// <para>Gets the list of all Webhooks that the user owns (if a user generated token was used to make the request) /// or the list of all Webhooks associated with the third-party app (if a third-party app made the request). Items /// in the response are ordered by API Client name, then Webhook name, then creation date.</para> /// /// <para>It mirrors To the following Smartsheet REST API method: GET /webhooks</para> /// </summary> /// <returns>IndexResult object containing an array of Webhook objects</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 virtual PaginatedResult<Webhook> ListWebhooks(PaginationParameters paging) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } return this.ListResourcesWithWrapper<Webhook>("webhooks" + QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>Gets a list of all Update Requests that have future schedules associated with the specified Sheet.</para> /// /// <para>It mirrors To the following Smartsheet REST API method: GET /sheets/{sheetId}/updaterequests</para> /// </summary> /// <returns> A list of all UpdateRequests (note that an empty list will be returned if there are none). </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 virtual PaginatedResult<UpdateRequest> ListUpdateRequests(long sheetId, PaginationParameters paging) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } return this.ListResourcesWithWrapper<UpdateRequest>("sheets/" + sheetId + "/updaterequests" + QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>Gets a list of all Discussions associated with the specified Row.</para> /// <para>It mirrors To the following Smartsheet REST API method: GET /sheets/{sheetId}/rows/{rowId}/discussions</para> /// <remarks>This operation supports pagination of results. For more information, see Paging.</remarks> /// </summary> /// <param name="sheetId"> the sheet Id </param> /// <param name="rowId"> the row Id </param> /// <param name="include">elements to include in response</param> /// <param name="paging">the pagination</param> /// <returns> list of all Discussions </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 virtual PaginatedResult<Discussion> ListDiscussions(long sheetId, long rowId, IEnumerable<DiscussionInclusion> include, PaginationParameters paging) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } parameters.Add("include", Util.QueryUtil.GenerateCommaSeparatedList(include)); return this.ListResourcesWithWrapper<Discussion>("sheets/" + sheetId + "/rows/" + rowId + "/discussions" + Util.QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>Gets a list of all Columns belonging to the Sheet specified in the URL.</para> /// <para>It mirrors To the following Smartsheet REST API method: GET /sheets/{sheetId}/columns</para> /// <remarks>This operation supports pagination of results. For more information, see Paging.</remarks> /// </summary> /// <param name="sheetId"> the sheet Id </param> /// <param name="include">elements to include in response</param> /// <param name="paging">the paging</param> /// <returns> the list of Columns (note that an empty list will be returned if there is none) </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 virtual PaginatedResult<Column> ListColumns(long sheetId, IEnumerable<ColumnInclusion> include, PaginationParameters paging) { StringBuilder path = new StringBuilder("sheets/" + sheetId + "/columns"); IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } if (include != null) { parameters.Add("include", QueryUtil.GenerateCommaSeparatedList(include)); } return this.ListResourcesWithWrapper<Column>(QueryUtil.GenerateUrl("sheets/" + sheetId + "/columns", parameters)); }
/// <summary> /// <para>Gets a list of the user’s Smartsheet Contacts.</para> /// <para>It mirrors To the following Smartsheet REST API method: /// POST GET /contacts</para> /// </summary> /// <param name="paging"> the pagination info </param> /// <returns> The list of Contact objects </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 virtual PaginatedResult<Contact> ListContacts(PaginationParameters paging) { StringBuilder path = new StringBuilder("contacts"); if (paging != null) { path.Append(paging.ToQueryString()); } return ListResourcesWithWrapper<Contact>(path.ToString()); }
/// <summary> /// <para>Gets the list of all Sights that the User has access to.</para> /// /// <para>It mirrors To the following Smartsheet REST API method: GET /sights</para> /// </summary> /// <returns>IndexResult object containing an array of Sight objects limited to the following attributes: /// id, name, accessLevel, permalink, createdAt, modifiedAt /// </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 virtual PaginatedResult<Sight> ListSights(PaginationParameters paging, DateTime? modifiedSince) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } return this.ListResourcesWithWrapper<Sight>("sights" + QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>Gets the list of all Reports that the User has access to, in alphabetical order, by name.</para> /// <para>It mirrors To the following Smartsheet REST API method: GET /reports</para> /// </summary> /// <param name="paging">the pagination</param> /// <returns>A list of Report objects limited to the following attributes: /// <list type="bullet"> /// <item><description>id</description></item> /// <item><description>name</description></item> /// <item><description>accessLevel</description></item> /// <item><description>permalink</description></item> /// </list></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 virtual PaginatedResult<Report> ListReports(PaginationParameters paging, DateTime? modifiedSince) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } if (modifiedSince != null) { parameters.Add("modifiedSince", ((DateTime)modifiedSince).ToUniversalTime().ToString("o")); } return this.ListResourcesWithWrapper<Report>("reports" + QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>Gets the list of all Sheets that the User has access to, in alphabetical order, by name.</para> /// /// <para>It mirrors To the following Smartsheet REST API method: GET /Sheets</para> /// </summary> /// <returns> A list of all Sheets (note that an empty list will be returned if there are none). </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 virtual PaginatedResult<Sheet> ListSheets(IEnumerable<SheetInclusion> includes, PaginationParameters paging, DateTime? modifiedSince) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } if (includes != null) { parameters.Add("include", QueryUtil.GenerateCommaSeparatedList(includes)); } if (modifiedSince != null) { parameters.Add("modifiedSince", ((DateTime)modifiedSince).ToUniversalTime().ToString("o")); } return this.ListResourcesWithWrapper<Sheet>("sheets" + QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>List all Sheets in the organization.</para> /// <para>It mirrors To the following Smartsheet REST API method: GET /users/sheets</para> /// </summary> /// <returns> the list of all Sheets (note that an empty list will be returned if there are none) </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 virtual PaginatedResult<Sheet> ListOrganizationSheets(PaginationParameters paging) { StringBuilder path = new StringBuilder("users/sheets"); if (paging != null) { path.Append(paging.ToQueryString()); } return this.ListResourcesWithWrapper<Sheet>(path.ToString()); }
/// <summary> /// <para>List shares of a given object.</para> /// <para>It mirrors To the following Smartsheet REST API method:<br /> /// GET /workspaces/{workspaceId}/shares <br /> /// GET /sheets/{sheetId}/shares <br /> /// GET /sights/{sightId}/shares <br /> /// GET /reports/{reportId}/shares</para> /// </summary> /// <param name="objectId"> the object Id </param> /// <param name="paging"> the pagination request </param> /// <param name="shareScope"> when specified with a value of <see cref="ShareScope.Worksapce"/>, the response will contain both item-level shares (scope=‘ITEM’) and workspace-level shares (scope='WORKSPACE’). </param> /// <returns> the list of Share objects (note that an empty list will be returned if there is none). </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 virtual PaginatedResult<Share> ListShares(long objectId, PaginationParameters paging, ShareScope shareScope) { IDictionary<string, string> parameters = new Dictionary<string, string>(); if (paging != null) { parameters = paging.toDictionary(); } if (ShareScope.Workspace.Equals(shareScope)) { parameters.Add("include", "workspaceShares"); } return this.ListResourcesWithWrapper<Share>(MasterResourceType + "/" + objectId + "/shares" + QueryUtil.GenerateUrl(null, parameters)); }
/// <summary> /// <para>Gets a list of all of the user’s Favorite items.</para> /// <para>It mirrors To the following Smartsheet REST API method: GET /favorites</para> /// <remarks>This operation supports pagination of results. For more information, see Paging.</remarks> /// </summary> /// <param name="paging">the pagination</param> /// <returns> A list of all Favorites (note that an empty list will be returned if there are none). </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 virtual PaginatedResult<Favorite> ListFavorites(PaginationParameters paging) { StringBuilder path = new StringBuilder("favorites"); if (paging != null) { path.Append(paging.ToQueryString()); } return this.ListResourcesWithWrapper<Favorite>(path.ToString()); }