openapi: 3.0.3
servers:
  - url: https://api.smartsheet.com/2.0
info:
  title: Smartsheet OpenAPI Reference
  version: 2.0.0
  description: >
    Welcome to the OpenAPI reference documentation for the Smartsheet API!


    > **IMPORTANT:**

    > * The Smartsheet API is restricted to users on Business and Enterprise
    plans

    > * The <a
    href="https://www.smartsheet.com/legal/developer-program-agreement"
    target="_blank" rel="noopener noreferrer">Developer Agreement</a> governs
    the use of the Smartsheet API and Smartsheet software development kits
    (SDKs)


    **QUICKLINKS**


    - **Base URL:**

        ```
        https://api.smartsheet.com/2.0/
        ```

    - **Getting started:** <a
    href="https://help.smartsheet.com/articles/2482389-generate-API-key"
    target="_blank" rel="noopener noreferrer">Generate an API access token</a>
    and [make a request](/api/smartsheet/guides/getting-started).


    - **Changelog:** See the latest [API updates](api/smartsheet/changelog).


    - **Schemas:** View the [object schemas](/api/smartsheet/openapi/schemas)
    not explicitly listed in the resource sections.


    - **Error codes:** Look up common API [error
    codes](api/smartsheet/error-codes).


    - **Guides:** Learn various ways of using the API with the help of our
    [Guides](/api/smartsheet/introduction).


    Browse the Smartsheet API operations by resource on the left and start
    building with the Smartsheet API!
tags:
  - name: alternateEmailAddress
    x-displayName: Alternate Email addresses
    description: >
      A User in Smartsheet must have a primary email address associated with
      their user account (User.email) and may optionally have one or more
      alternate email addresses associated with their account
      (User.alternateEmails). The following operations must be performed using
      an user's primary email address:


      * Add Group Members

      * Add User

      * Create Update Request

      * Share Report

      * Share Sheet

      * Share Workspace


      Attempting to specify a user's alternate email address for any of the
      above operations results in an error.
  - name: attachments
    x-displayName: Attachments
    description: >
      Attachments can exist on a [comment](/api/smartsheet/openapi/comments)
      (that is,

      within a discussion), on a [row](/api/smartsheet/openapi/rows), or on a

      [sheet](/api/smartsheet/openapi/sheets).


      <h2>Post an Attachment</h2>


      Like the Smartsheet app, the Smartsheet API allows uploading files to

      sheets, rows, and comments.


      You can upload a file by performing either a simple upload or a multipart

      upload.



      A simple upload allows you

      to add a single file attachment to the specified object.


      For example, you can perform a simple upload to attach a file to a

      sheet, [attach a

      file to a
      row](/api/smartsheet/openapi/attachments/row-attachments-attachfile), or

      [attach a file to a

      comment](/api/smartsheet/openapi/attachments/attachments-attachtocomment).



      A multipart upload

      allows you to add a single file attachment to the specified object (that

      is, attach a file to a sheet, row, or comment), or to create an object and

      attach a file using a single request.


      For example, you can perform a multipart upload to [add a new

      comment](/api/smartsheet/openapi/comments/comments-create) that contains a
      single

      file attachment or to [add a new discussion to a

      sheet](/api/smartsheet/openapi/discussions/discussions-create) that
      contains a

      single file attachment.



      The max file size for uploads through the API is limited to 30mb.



      NOTE: This is a resource-intensive operation. If you encounter an error,

      see [Rate
      Limiting](/api/smartsheet/guides/advanced-topics/scalability-options).



      <h3>Multipart Uploads</h3>



      A multipart upload request must include the following HTTP headers:



      | Header | Description |

      | -----|-----|

      | **Content-Length** | The length of the request payload. |

      | **Content-Type** | Must be set to **multipart/form-data**, and include
      the

      boundary string that separates the parts in the request payload. |



      The request body of a multipart upload request contains one or more parts,

      each part containing either JSON or a file to upload.


      The request body must contain at least one part.


      Each part must start with the boundary string specified in the

      **Content-Type** request header, and must contain the following part

      headers:



      | Header | Description |

      | -----|-----|

      | **Content-Disposition** | Contains the following semicolon-delimited
      items:<ul><li>**form-data**</li><li>**name="*partname*"**</li><li>**filename="*filename*"**
      (only required for file parts)</li></ul>NOTE: Values specified in the
      Content-Disposition header must be URL-encoded. |

      | **Content-Type** | The content type of the part: **application/json**
      for JSON objects, or the applicable MIME type for file parts |



      The last part in the request must be followed by the boundary string,

      followed by two hyphens.



      The documentation for each operation that supports multipart uploads

      specifies the number and names of parts that are expected for the

      operation.


      File parts must have the part name "file", and documentation for

      operations which allow for JSON object parts specify the required part

      name for the JSON part.



      The following example shows a multipart upload request that creates a

      comment containing the specified text and file attachment:



      `POST

      https://api.smartsheet.com/2.0/sheets/4509093797881732/discussions/2889925487028100/comments`


      `Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789`


      `Content-Length: 29008`


      `Content-Type: multipart/form-data; boundary=----gU8h01zAAp3LagBr`



      `------gU8h01zAAp3LagBr`


      `Content-Disposition: form-data; name="comment"`


      `Content-Type: application/json`



      `{ "text": "Please review the attached image." }`


      `------gU8h01zAAp3LagBr`


      `Content-Disposition: form-data; name="file"; filename="picture.jpg"`


      `Content-Type: image/jpeg`



      *< Binary content for file >*


      `------gU8h01zAAp3LagBr--`



      NOTE: Most programming languages have libraries that can be used to

      assemble multipart requests.



      <h3>Simple Uploads</h3>



      To perform this kind of upload, you must set specific headers to tell

      Smartsheet about the file. The following three headers are required:



      Header | Description |


      -----|-----|

      **Content-Disposition** | **attachment** to tell the API that a file is in
      the body of the `POST` request, followed by a semicolon, followed by

      **filename=** and the URL-encoded filename in quotes

      **Content-Length** | Must be set to the size of the file, in bytes. For
      example to determine file size using in UNIX: <p>`$ ls -l
      ProgressReport.docx`<br/>`5463 ProgressReport.docx`</p>

      **Content-Type** | Can be left blank if it is not known (but must be
      present); Smartsheet makes its best guess based on the extension of the
      file.



      The following example request shows a simple upload that adds a file

      attachment to a sheet:



      `POST https://api.smartsheet.com/2.0/sheets/4509093797881732/attachments`


      `Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789`


      `Content-Disposition: attachment; filename="ProgressReport.docx"`


      `Content-Type: application/msword`


      `Content-Length: 5463`



      *< Binary content for file >*



      As shown in this example, the contents of the file is included in the body

      of the `POST` request. In most programming languages, this is done by

      reading the file from an input stream and writing it out to the output

      stream of the HTTP request.
  - name: automationRules
    x-displayName: Automation Rules
    description: >
      Automation is a catch-all term for approvals, notifications, and update

      requests. You can delete, update, or retrieve various automation settings

      through the API. You cannot create new automation rules programmatically.


      <h2>Disabled Reasons for Automation Rules</h2>


      Reason | Description |

      -----|-----|

      **APPROVAL_COLUMN_MISSING** | This rule's approval status column has been
      deleted.

      **APPROVAL_COLUMN_WRONG_TYPE** | The approval column must be a dropdown
      column.

      **AUTOMATION_NOT_ENABLED_FOR_ORG** | To create or edit automated actions,
      you need to upgrade your organization account to a Business or Enterprise
      plan.

      **COLUMN_MISSING** | A column referenced by this rule has been deleted.

      **COLUMN_TYPE_INCOMPATIBLE** | A column referenced by this rule has been
      changed to an incompatible column type.

      **NO_POTENTIAL_RECIPIENTS** | This rule has no recipients that will be
      able to receive notifications based on this sheet's permission settings or
      this account's approved domain sharing list.

      **NO_VALID_SELECTED_COLUMNS** | All selected columns for this rule have
      been deleted.
  - name: cellImages
    x-displayName: Cell Images
    description: |
      A cell image is an image that has been uploaded to a cell within a sheet.
  - name: cells
    x-displayName: Cells
    description: "A collection of cells comprises each row in a sheet.\n\n<h2>Cell Links</h2>\n\nCreating or updating cell links via the **cell.linkInFromCell** attribute is a special operation.\nA given row or cell update operation may contain only link updates, or no link updates.\nAttempting to mix row/cell updates with cell link updates results in error code 1115.\nAdditionally, a [CellLink object](/api/smartsheet/openapi/schemas/celllink) can only be added to an existing cell, so the **cell.linkInFromCell** attribute is not allowed when POSTing a new row to a sheet.\n\nWhen creating a cell link, **cell.value** must be null (the data is pulled from the linked cell).\n\nA cell may not contain both a hyperlink and a cell link, so **hyperlink** and **linkInFromCell** may never both be non-null at the same time.\n\n<h2>Cell Reference</h2>\n\n<h3>Cell Value Representation</h3>\n\n[Cell objects](/api/smartsheet/openapi/cells/cell) retrieved through the Smartsheet APIs have two main attributes representing cell values: **Cell.value**, and\n**Cell.displayValue**. A third attribute, **Cell.objectValue** is currently used only for adding and updating predecessors, or for multi-contact or multi-picklist details, such as email addresses or values in a multi-picklist. An empty cell returns no value.\n\n**Cell.displayValue** is always a string and is only returned for certain column types (see below).  It represents the formatted value as it should\nbe displayed to an end-user.  For example, if a TEXT_NUMBER column is formatted as a US Dollar currency, its **value** may be a number\nlike 1234.5678, but its **displayValue** is \"$1,234.57\".\n\n**Cell.value** represents a cell's raw value and can be one of the following primitive JSON types: string, number, or Boolean,\ndepending on the column type.  An empty cell returns no value. Complex types are represented as strings, formatted as described below:\n\n<a href=\"https://help.smartsheet.com/articles/765737-project-sheet-columns-start-date-end-date-duration-complete-and-predecessors\" target=\"_blank\" rel=\"noopener noreferrer\">Help with Project Columns</a>\n\nColumn Type | Possible Types for Cell.value | Returns Cell.displayValue?\n------------|-------------------------------|---------------------------\nABSTRACT_DATETIME | string: a project date and time in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\" rel=\"noopener noreferrer\">ISO-8601</a> format, or a free-form text value.<br/>number: see [Dates and Times](/api/smartsheet/guides/basics/dates-and-times) for how to request dates to be returned as numbers. | No.\nCHECKBOX | Boolean: **true** if the checkbox is checked, **false** if unchecked, no value if the cell hasn't been touched yet.<br/>string: a free-form text value. | No.\nCONTACT_LIST | string: an email address representing a contact, or a free-form text value. | Yes: same as **value** for free-form strings; for contacts, the contact's name if any, else their email address.\nDATE | string: a date in <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\" rel=\"noopener noreferrer\">ISO-8601</a> format, or a free-form text value.<br/>number: see [Dates and Times](/api/smartsheet/guides/basics/dates-and-times) for how to request dates to be returned as numbers. | No.\nDURATION | string: a duration value such as \"4d 6h 30m\" in the user's locale, or a free-form text value.<br/>See the [Help Center](<%= PROJECT_COLUMN_HELP_URL %>) for more information on durations. | Yes: same as **value**\nMULTI_CONTACT_LIST | string: only visible when using a query parameter of **level** and the value appropriate to the dashboard, report, or sheet that you are querying, otherwise the column type is TEXT_NUMBER. | Yes: same as **value**; to see actual email addresses, see below.\nMULTI_PICKLIST | string: only visible when using a query parameter of **level** and the value appropriate to the dashboard, report, or sheet that you are querying, otherwise the column type is TEXT_NUMBER. | Yes: same as **value**; to see objectValue, see below.\nPICKLIST | string: one of the picklist's column options, or a free-form text value.<br/>number: numeric values | Yes: same as **value** for strings; for number values, the number with formatting applied.\nPREDECESSOR\t| string: a comma-delimited predecessor list such as \"12FS +3d 4h, 14SS\", or a free-form text value.<br/>See the [Help Center](<%= PROJECT_COLUMN_HELP_URL %>) for more information on predecessors. | Yes: same as **value**\nTEXT_NUMBER\t| string: free-form text values<br/>number: numeric values | Yes: same as **value** for strings; for number values, the number with formatting applied.\n\n**Cell.objectValue** is an object representation of a cell's value and is currently used for adding or updating predecessor cell values, or for multi-contact details, such as email addresses.\n\n* For predecessors, it provides a more \"programmer friendly\" format for assembling predecessors. To update a cell's predecessors, set **objectValue** to a\n[PredecessorList object](/api/smartsheet/openapi/schemas/predecessorlist) containing [Predecessor objects](/api/smartsheet/openapi/schemas/predecessor).\n* For multi-contact or multi-picklist details, use both a level query parameter *and* an **include=objectValue** query to see email addresses rather than display names or to see multi-picklist values.\n\n<h3>Cell Value Parsing</h3>\n\nThe flexibility in cell value data types is a powerful feature in the Smartsheet application; however, it poses a challenge\nfor an API in terms of parsing. Being too flexible might result in unexpected behavior. For instance, if you write code\nto post a Date value to a Smartsheet and the API operation succeeds, you might assume that the date value you sent was interpreted\nas date. What happens if you posted your date in the wrong format? Do you really want Smartsheet to keep the malformed date\nas a string value? Probably not.\n\nTo address this problem, the Smartsheet API employs a simple scheme to indicate whether you want a more predictable and strict\ninterface or a more flexible one. By default, a cell value is expected to conform to \"strict\" rules for the type of the cell's column.\nIf an input value doesn't conform, the API returns [error code 1042](/api/smartsheet/error-codes).\n\nIf, however, you want the same flexibility as the Smartsheet Web app, you can disable the strict rules, and we'll do our best to make\nsense of it. To enable lenient parsing simply include **\"strict\": false** in the [Cell object](/api/smartsheet/openapi/cells/cell) in your request body.\n\nNOTE: How does strict cell value parsing compare to cell validation settings? Strict cell value parsing determines how string values are parsed. It is set on a per-call basis. In contrast, cell validation is part of the column definition. The <b>overrideValidation</b> property is restricted to sheet admins and does <i>not</i> override strict parsing.\n\nThe parsing rules for the various column types are as follows:\n\n**ABSTRACT_DATETIME**\n\nValue | Description |\n-----|-----|\n**lenient** | Smartsheet attempts to convert the string value to date using ISO 8601 date format, as well as several locale-specific date formats. If the value is a parsable date format, Smartsheet recognizes the date and stores it as such. All other values are simply text values.\n**strict** | The value must be a string value and a valid ISO 8601 date (YYYY-MM-DD). Alternatively, if Unix time (also known as epoch time) is used, you can use the query parameter of **numericDates** set to **true** to have Smartsheet convert epoch time to human readable dates. See [Dates and Times](/api/smartsheet/guides/basics/dates-and-times) for more information.\n\n**CHECKBOX**\n\nValue | Description |\n-----|-----|\n**lenient** | Boolean values and string values of **true** and **false** are handled the same as **strict**. All other values are saved as text values.\n**strict** | Only Boolean values (true or false) are valid.\n\n**CONTACT_LIST**\n\nValue | Description |\n-----|-----|\n**lenient** | If the value is a valid email address, Smartsheet handles it the same as **strict**. If not, Smartsheet saves the value as a text value.\n**strict** | The value must be a valid email address. If **displayValue** is set, Smartsheet uses that as the name; otherwise, if Smartsheet finds a match among the the access token owner's contacts, Smartsheet associates this cell with that existing contact.\n\nNOTE: See the [Contact List Columns](/api/smartsheet/openapi/cells) section for more information.\n\n**DATE**\n\nValue | Description |\n-----|-----|\n**lenient** | Smartsheet attempts to convert the string value to date using ISO 8601 date format, as well as several locale-specific date formats. If the value is a parsable date format, Smartsheet recognizes the date and stores it as such. All other values are simply text values.\n**strict** | The value must be a string value and a valid ISO 8601 date (YYYY-MM-DD). Alternatively, if Unix time (also known as epoch time) is used, you can use the query parameter of **numericDates** set to **true** to have Smartsheet convert epoch time to human readable dates. See [Dates and Times](/api/smartsheet/guides/basics/dates-and-times) for more information.\n\n**DURATION**\n\nValue | Description |\n-----|-----|\n**lenient** | Numeric values are treated as duration values in days. String values which are valid duration strings in the user's locale are treated as durations, and any other values are treated as free-form text values.\n**strict** | Only valid duration strings in the user's locale are valid. Information on duration strings can be found in [Help Center](<%= PROJECT_COLUMN_HELP_URL %>).\n\nNOTE: You may use the query string parameter <b>projectParseLocale</b> with a [supported locale string](/api/smartsheet/openapi/serverinfo) to force parsing in the specified locale (for example, using <b>en_US</b> lets you send in English values regardless of the user's locale).\n\n**MULTI_CONTACT_LIST**\n\nValue | Description |\n-----|-----|\nN/A | Set using the **objectValue** attribute for the Cell object, which is inherently strict. See [Cell Reference](/api/smartsheet/openapi/cells).\n\n**MULTI_PICKLIST**\n\nValue | Description |\n-----|-----|\nN/A | Set using the **objectValue** attribute for the Cell object, which is inherently strict. See [Cell Reference](/api/smartsheet/openapi/cells).\n\n**PICKLIST**\n\nValue | Description |\n-----|-----|\n**lenient** | All numeric and text values are valid. Formatted numbers are parsed like TEXT_NUMBER formatted numbers.\n**strict** | The value must be a string and must be one of the options for the picklist.\n\n**PREDECESSOR**\n\nValue | Description |\n-----|-----|\nN/A | Set using the **objectValue** attribute for the Cell object, which is inherently strict. See [Cell Reference](/api/smartsheet/openapi/cells).\n\n**TEXT_NUMBER**\n\nValue | Description |\n-----|-----|\n**lenient** | All numeric and text values are valid. Formatted numbers passed as text values, such as currencies (\"$5,000\"), percentages (\"50%\"), or decimals (\"100.5\") are parsed to their numeric equivalents, based on the locale of the access token owner,  with the proper formatting enabled for the cell.\n**strict** | All numeric and text values are valid and are interpreted literally.\n\nNOTE: The Smartsheet application only supports numeric values in the range -9007199254740992 to 9007199254740992. If using strict parsing, any numeric value outside that range results in [error code 1148](/api/smartsheet/error-codes). If using lenient parsing, the value is silently converted to text.\n\n<h3>Contact List Columns</h3>\n\nWith columns of type **CONTACT_LIST**, the cell attributes **value** and **displayValue** are treated independently.\nThe contact's email address is represented by **value**, while the contact's name (and the value displayed in the cell in the Smartsheet app) is represented by **displayValue**.\n\nWhen creating or updating cells for a contact list column, the **displayValue** attribute works as follows:\n\n* If **displayValue** is non-null and non-empty, the Smartsheet cell displays the value provided.\n* If **displayValue** is an empty string, the Smartsheet cell displays the email address.\n* If **displayValue** is null or absent, Smartsheet makes a best guess effort at filling it in with a contact's name based on the email address.\n\n<h2>Hyperlinks</h2>\n\nYou can create and modify [hyperlinks](/api/smartsheet/openapi/schemas/hyperlink) by using any API operation that creates or updates cell data.\nWhen creating or updating a hyperlink, **cell.value** may be set to a string value or null.\nIf null, the cell's value is derived from the hyperlink:\n\n* If the hyperlink is a URL link, the cell's value is set to the URL itself.\n* If the hyperlink is a dashboard, report, or sheet link, the cell's value is set to the dashboard, report, or sheet name.\n\n<h3>Images in Cells</h3>\n\nFor details about working with images in cells, see [Cell Images](/api/smartsheet/openapi/cellimages).\n"
  - name: columns
    x-displayName: Columns
    description: "A column is a component of a sheet or report.\n\n<h2>Column Types</h2>\n\nSmartsheet supports the following standard column types, which are represented in a [Column object](/api/smartsheet/openapi/columns/column) with a **type** attribute set to one of the following:\n\nColumn Type | Column.type Value | Notes |\n---|---|---|\nCheckbox \t\t| **CHECKBOX**\t\t| Checkbox, star, and flag types |\nContact List\t| **CONTACT_LIST**\t| List containing contacts or roles for a project. **NOTE:** You can use the [contactOptions](/api/smartsheet/openapi/schemas/contactoption) property to specify a pre-defined list of values for the column, which can also become lanes in card view. |\nContact List | **MULTI_CONTACT_LIST** | List where single cells can contain more than one contact. Only visible when using a query parameter of **level** and the value appropriate to the dashboard, report, or sheet that you are querying. To see email addresses behind the display names, combine an **include=objectValue** query parameter with a **level** query parameter. |\nDate\t\t\t| **DATE** |   |\nDate/Time \t\t| **ABSTRACT_DATETIME** | Represents a project sheet's start and end dates.<br/>**Only for dependency-enabled project sheets**<br/>The API does not support setting a column to this type. (This can only be done through the Smartsheet Web app when configuring a project sheet.) Additionally, the API does not support updating data in the \"End Date\" column under any circumstance, and does not support updating data in the \"Start Date\" column if \"Predecessor\" is set for that row. |\nDate/Time\t\t| **DATETIME**\t| Used only by the following system-generated columns: <ul><li>Created (Date) (**Column.systemColumnType** = **CREATED_DATE**)</li><li>Modified (Date) (**Column.systemColumnType** = **MODIFIED_DATE**)</li></ul> |\nDropdown List\t| **PICKLIST**\t| Custom, RYG, Harvey ball, priority types, etc. |\nDropdown List\t| **MULTI_PICKLIST**\t| List where single cells can contain more than one dropdown item. Only visible when using a query parameter of **level** and the value appropriate to the dashboard, report, or sheet that you are querying. To see multi-picklist values behind the display names, combine an **include=objectValue** query parameter with a **level** query parameter. |\nDuration\t\t| **DURATION**\t\t| **Only for dependency-enabled project sheets**<br/>The API does not support setting a column to this type. (This can only be done through the Smartsheet Web app when configuring a project sheet.) |\nPredecessor\t\t| **PREDECESSOR**\t| Defines what must happen first in a project flow. For more information, see the [Predecessor object](/api/smartsheet/openapi/schemas/predecessorlist). **Only for dependency-enabled project sheets** |\nText/Number\t\t| **TEXT_NUMBER**\t|   |\n\nNOTE: See the [Cell Reference](/api/smartsheet/openapi/cells) section for information on getting and setting cell values for the different column types.\n\n<h3>Symbol Columns</h3>\n\nIn addition to the basic column types above, the Smartsheet app also supports columns that display symbols. These are specialized columns of type **CHECKBOX** or **PICKLIST**,\nwhose **symbol** attribute is set to one of the values below:\n\n**Symbols for CHECKBOX columns:**\n\n![A flag symbol](./images/img_pl_flagc.png)\n\nValue | Example |\n-----|-----|\n**FLAG** | <img src=\"./images/img_pl_flagc.png\" alt=\"A flag symbol\" /> |\n**STAR** | <img src=\"./images/img_pl_starc.png\" alt=\"A star symbol\" /> |\n\n**Symbols for PICKLIST columns:**\n\nValue | Example |\n-----|-----|\n**ARROWS_3_WAY** | <img src=\"./images/img_pl_arrows3.png\" alt=\"An arrows_3_way symbol\" /> |\n**ARROWS_4_WAY** | <img src=\"./images/img_pl_arrows4.png\" alt=\"An arrows_4_way symbol\" /> |\n**ARROWS_5_WAY** | <img src=\"./images/img_pl_arrows5.png\" alt=\"An arrows_5_way symbol\" /> |\n**DECISION_SHAPES** | <img src=\"./images/img_pl_decisionshapes.png\" alt=\"A decision_shapes symbol\" /> |\n**DECISION_SYMBOLS** | <img src=\"./images/img_pl_decisionsymbols.png\" alt=\"A decision_symbols symbol\" /> |\n**DIRECTIONS_3_WAY** | <img src=\"./images/img_pl_directions3.png\" alt=\"A directions_3_way symbol\" /> |\n**DIRECTIONS_4_WAY** | <img src=\"./images/img_pl_directions4.png\" alt=\"A directions_4_way symbol\" /> |\n**EFFORT** | <img src=\"./images/img_pl_effort6Three.png\" alt=\"An effort symbol\" /> |\n**HARVEY_BALLS** | <img src=\"./images/img_pl_harvey5.png\" alt=\"A harvey_balls symbol\" /> |\n**HEARTS** | <img src=\"./images/img_pl_heart6Three.png\" alt=\"A hearts symbol\" /> |\n**MONEY** | <img src=\"./images/img_pl_money6Three.png\" alt=\"A money symbol\" /> |\n**PAIN** | <img src=\"./images/img_pl_pain6.png\" alt=\"A pain symbol\" /> |\n**PRIORITY** | <img src=\"./images/img_pl_priority.png\" alt=\"A priority symbol\" /> |\n**PRIORITY_HML** | <img src=\"./images/img_pl_priorityhml.png\" alt=\"A priority_hml symbol\" /> |\n**PROGRESS** | <img src=\"./images/img_pl_progress5Half.png\" alt=\"A progress symbol\" /> |\n**RYG** | <img src=\"./images/img_pl_ryg.png\" alt=\"An RYG symbol\" /> |\n**RYGB** | <img src=\"./images/img_pl_rygb.png\" alt=\"An RYGB symbol\" /> |\n**RYGG** | <img src=\"./images/img_pl_rygg.png\" alt=\"An RYGG symbol\" /> |\n**SIGNAL** | <img src=\"./images/img_pl_signal5.png\" alt=\"A signal symbol\" /> |\n**SKI** | <img src=\"./images/img_pl_difficulty4.png\" alt=\"A ski symbol\" /> |\n**STAR_RATING** | <img src=\"./images/img_pl_star6Three.png\" alt=\"A star_rating symbol\" />\n**VCR** | <img src=\"./images/img_pl_decisionvcr.png\" alt=\"A VCR symbol\" /> |\n**WEATHER** | <img src=\"./images/img_pl_weather5.png\" alt=\"A weather symbol\" /> |\n\nNOTE: The Smartsheet grid user interface presents several row attributes and features visually as columns, for example, attachments, discussions, row action indicator, or row number.  The API does not consider these to be columns, and does not return or otherwise expose them as columns.  The only columns returned by the API are user data columns.\n\n<h3>System Columns</h3>\n\nIn addition to the standard column types and symbols, Smartsheet has a number of system columns, which represent data that is\nfilled in by Smartsheet and whose values cannot be changed by the user. These columns are represented with standard\n[column types](/api/smartsheet/openapi/columns), with the [**Column.systemColumnType**](/api/smartsheet/openapi/columns/column) attribute set to one of the following:\n\nColumn.systemColumnType Value | Column Type | Notes\n-----|-----|-----|\n**AUTO_NUMBER** | TEXT_NUMBER | Columns of this system column type include an [AutoNumberFormat object](/api/smartsheet/openapi/schemas/autonumberformat) that describes the mask used to generate the value.\n**CREATED_BY**  | CONTACT_LIST\n**CREATED_DATE** | DATETIME\n**MODIFIED_BY** | CONTACT_LIST\n**MODIFIED_DATE** | DATETIME\n"
  - name: comments
    x-displayName: Comments
    description: >
      A discussion is a container for a number of individual comments in a

      threaded conversation. For more details, see the

      [Discussion](/api/smartsheet/openapi/discussions) section.



      This section describes operations on an *individual* comment within a

      discussion thread.



      * To retrieve all discussions and comments for an entire sheet, use [List

      Discussions](/api/smartsheet/openapi/discussions/discussions-list) with
      the query

      parameter **include=comments**.


      * To retrieve all discussions and comments associated with a row, use

      [List Row
      Discussions](/api/smartsheet/openapi/discussions/row-discussions-list)

      with the query parameter **include=comments**.


      A comment can contain one or more attachments.



      <h2>Comment Attachments</h2>



      For details about working with a comment's attachments, see

      [Attachments](/api/smartsheet/openapi/attachments).
  - name: contacts
    x-displayName: Contacts
    description: >
      A contact is a user's personal contact in Smartsheet (as described in the
      Help Center article, <a
      href="https://help.smartsheet.com/articles/796143-managing-contacts"
      target="_blank" rel="noopener noreferrer">Managing Contacts</a>.
  - name: crossSheetReferences
    x-displayName: Cross-sheet References
    description: >
      To create a formula that references data in another sheet, you must first
      create a cross-sheet

      reference between the detail sheet and the source sheet. That reference
      must also define the cell range.

      Once you have created the cross-sheet reference, you can use the reference
      name in any formula on the detail sheet.

      To create the formula, use Add Rows or Update Rows. Cross-sheet references
      that are not used by any formula are

      automatically deleted after two hours.
  - name: dashboards
    x-displayName: Dashboards
    description: >
      Smartsheet dashboards are a collection of widgets that can contain data
      from a variety of different data sources (for example, sheets, reports, or
      custom data). Dashboards were once called Sights(TM) and this name is
      still present in object names, endpoint paths, and other places.
  - name: discussions
    x-displayName: Discussions
    description: >
      A discussion is a container for a collection of individual
      [comments](/api/smartsheet/openapi/comments) within a single thread. A
      discussion can exist on a [row](/api/smartsheet/openapi/rows) or a
      [sheet](/api/smartsheet/openapi/sheets).


      In the UI, Smartsheet creates a discussion to contain each top-level
      comment and subsequent replies into a single thread.


      Using the API, you can only add a comment to a discussion. If the
      discussion doesn't already exist, you must create it first.

      A discussion is a collection of one or more comments, each of which may
      contain attachments.


      <h2>Discussion Attachments</h2>


      For details about working with the attachments within a discussion, see
      [Attachments](/api/smartsheet/openapi/attachments).

      <h2>Discussion Comments</h2>


      For details about working with a discussion's comments, see
      [Comments](/api/smartsheet/openapi/comments).
  - name: events
    x-displayName: Events
    description: >
      The following section describes the specific event types and payloads

      returned from the Smartsheet Events API.



      With Event Reporting, you can programmatically retrieve events that are

      occurring in your Smartsheet organization account. Examples of events are

      create, update, load, and delete of sheets, reports, dashboards,

      attachments, and users. Note: while the current list of events covers most

      of Smartsheet functionality, new events will be added to the list as

      Smartsheet introduces new functionality.



      Some actions in Smartsheet are performed by system components. Therefore,

      the userId property in some response payloads refers to a system user and

      not to a regular user. For example, the Smartsheet Events API shows

      5629504736520068 as the userId when an anonymous user accesses a sheet

      that is published for anyone.



      The list of system users is displayed below. New system userIds may be

      incorporated to this list as new features and subsystems are incorporated

      to Smartsheet:



      System user | Description |

      -----|-----|

      1688855062570884 | Data accessed/modified by Skype action (only possible
      if Smartsheet account is connected to Skype) |

      2814754969413508 | Data accessed/modified by Trello import action (only
      possible if Smartsheet account is connected to Trello) |

      3377704922834820 | Data accessed/modified due to Smartsheet cell-link |

      3940654876256132 | Data accessed/modified by the Smartsheet Automation
      system |

      5066554783098756 | Access to object published to any user in the
      Smartsheet organization account |

      5629504736520068 | Access to Smartsheet object published to anyone |

      6192454689941380 | Data accessed/modified by the Smartsheet Notification
      system |

      7881304550205316 | Data accessed/modified by Smartsheet Form submission |



      See <a href="https://smartsheet-platform.github.io/event-reporting-docs/"
      target="_blank" rel="noopener noreferrer">Event Reporting reference
      documentation</a> for details on each event type.



      See [Authentication](/api/smartsheet/guides/basics/authentication) for
      more

      information.



      NOTE: Event Reporting is a premium add-on which can be purchased for

      Enterprise and Advance Platinum plans only. For details on the Event

      Reporting add-on, please contact our <a
      href="https://www.smartsheet.com/contact/sales" target="_blank"
      rel="noopener noreferrer">Sales Team</a>.
  - name: favorites
    x-displayName: Favorites
    description: >
      Smartsheet allows users to "star" dashboards, folders, reports, sheets,
      workspaces, and other objects on their Home tab to mark them as favorites.


      These API operations allow you to access the user's favorite API-supported
      objects, as well as create and delete favorites.


      NOTE: For documentation purposes, "favoriteType" is a placeholder ENUM for
      the various types of UI elements you can flag as a favorite. In sample
      code, when you see "{favoriteType}", just replace it with one of the
      following values:

      * dashboard or dashboards (aka Sight or Sights)

      * folder or folders

      * report or reports

      * sheet or sheets

      * template or templates

      * workspace or workspaces
  - name: folders
    x-displayName: Folders
    description: >
      A folder can exist in a user's **Sheets** folder
      [Home](/api/smartsheet/openapi/home), in a
      [folder](/api/smartsheet/openapi/folders), or in a
      [workspace](/api/smartsheet/openapi/workspaces).
  - name: groupMembers
    x-displayName: Group Members
    description: >
      A group member is a user that belongs to a
      [group](/api/smartsheet/openapi/groups).
  - name: groups
    x-displayName: Groups
    description: >
      A group is a collection of [group
      members](/api/smartsheet/openapi/groupmembers).
  - name: home
    x-displayName: Home
    description: >
      In the Smartsheet UI, the "Home" tab shows all objects a user has access
      to, including dashboards (also called Sights in the API), folders,
      reports, sheets, templates, and workspaces. *NOTE:* The GET /home endpoint
      is deprecated. Use GET /folders/personal to get shared items and GET
      /workspaces/ to get workspaces.

      <h2>Home Folders</h2>


      For details about working with folders in the user's **Sheets** folder
      (that is, at the Home level), see
      [Folders](/api/smartsheet/openapi/folders).


      <h2>Home Sheets</h2>


      For details about working with sheets in the user's **Sheets** folder
      (that is, at the Home level), see
      [Sheets](/api/smartsheet/openapi/sheets).
  - name: imports
    x-displayName: Imports
    description: |
      Import CSV or XLSX data into a new sheet.
  - name: proofs
    x-displayName: Proofs
    description: >
      A proof is a container that holds attachments and comments. Limited to one
      proof and its versions per row.

      A sheet can have multiple proofs.
  - name: reports
    x-displayName: Reports
    description: >
      A report is a filtered view of the data from one or more sheets. Like a
      sheet, a report is comprised of columns, rows, and cells, and may
      optionally contain attachments and discussions.

      A report is comprised of columns, rows, and cells, and may optionally
      contain attachments and discussions.


      <h2>Report Attachments</h2>


      For details about working with a report's attachments, see
      [Attachments](/api/smartsheet/openapi/attachments).


      <h2>Report Cells</h2>


      For details about working with a report's cells, see
      [Cells](/api/smartsheet/openapi/cells).


      <h2>Report Columns</h2>


      For details about working with a report's columns, see
      [Columns](/api/smartsheet/openapi/columns).


      <h2>Report Discussions</h2>


      For details about working with a report's discussions, see
      [Discussions](/api/smartsheet/openapi/discussions).


      <h2>Report Rows</h2>


      For details about working with a report's rows, see
      [Rows](/api/smartsheet/openapi/rows).
  - name: rows
    x-displayName: Rows
    description: "A row is a component of a sheet or report. Each row is composed of a\ncollection of cells, and may optionally contain discussions or\nattachments.\n\nA row is comprised of a collection of cells, and may optionally contain attachments and discussions.\n\n<h2>Row Attachments</h2>\n\nFor details about working with a row's attachments, see [Attachments](/api/smartsheet/openapi/attachments).\n\n<h2>Row Cells</h2>\n\nFor details about working with a row's cells, see [Cells](/api/smartsheet/openapi/cells).\n\nFor details about working with images in cells, see [Cell Images](/api/smartsheet/openapi/cellimages).\n\n<h2>Row Discussions</h2>\n\nFor details about working with a row's discussions, see [Discussions](/api/smartsheet/openapi/discussions).\n\n<h2>Row Include Flags</h2>\n\nEndpoints which return rows (for example, [Get Sheet](/api/smartsheet/openapi/sheets/getsheet), [Get Row](/api/smartsheet/openapi/rows/row-get)) support the optional **include** query string parameter. If specified, the value of the **include** parameter is\na comma-delimited list of flags that indicate additional attributes to be included in each [Row object](/api/smartsheet/openapi/rows/row) within the response.\n\nInclude Flag | Description |\n-------------|-------|\n**attachments**\t| Includes row **attachments** array.<br/>To include discussion attachments, both **attachments** and **discussions** must be present in the include list.\n**columnType**\t| Includes **columnType** attribute in the row's [cells](/api/smartsheet/openapi/cells/cell) indicating the type of the column the cell resides in.\n**discussions**\t| Includes row **discussions** array.<br/>To include discussion attachments, both **attachments** and **discussions** must be present in the include list.\n**filters**\t\t| Includes **filteredOut** attribute indicating if the row should be displayed or hidden according to the sheet's filters.\n**format**\t\t| Includes **format** attribute on the row, its cells, or summary fields.  See [Cell formatting](/api/smartsheet/guides/advanced-topics/cell-formatting).\n**objectValue** | Includes **objectValue** attribute on cells containing values. For more information see [Cell Reference](/api/smartsheet/openapi/cells).\n**rowPermalink** | Includes **permalink** attribute that represents a direct link to the [row](/api/smartsheet/openapi/rows/row) in the Smartsheet application.\n**rowWriterInfo** | **DEPRECATED** Includes **createdBy** and **modifiedBy** attributes on the row, indicating the row's creator, and last modifier.\n**writerInfo** | Includes **createdBy** and **modifiedBy** attributes on the row or summary fields, indicating the row or summary field's creator, and last modifier.\n\n<h2>Specify Row Location</h2>\n\nWhen you [add a row](/api/smartsheet/openapi/rows/rows-addtosheet), the default behavior is for Smartsheet to put the new row at the bottom of the sheet. And when you [update a row](/api/smartsheet/openapi/rows/update-rows), the default behavior is to keep the row where it is. It is not necessary to use a location-specifier attribute if you want the default behavior.\n\nTo specify a location for new or updated rows other than the defaults, use the table below for reference. The table details possible row locations and provides JSON examples to help you construct one or more [Row objects](/api/smartsheet/openapi/rows/row) with location-specifier attributes.\n\nNote the following restrictions:\n\n* Use only one location-specifier attribute per request, unless you use **parentId** and **toBottom** or **siblingId** and **above**.\n* If you specify multiple rows in the request, all rows must have the same location-specifier attributes.\n* If you specify the **parentId** attribute, you cannot also specify the **siblingId** attribute.\n* If you specify the **siblingId** attribute, you cannot also specify the **parentId**, **toTop**, or **toBottom** attributes.\n* If you want to indent or outdent multiple rows, use the **parentId** attribute.\n\nDestination | Row Attributes | Examples |\n-------|--------|--------|\nTop of a sheet | **toTop** | ```(\"toTop\": true}```\nBottom of a sheet | **toBottom** | ```(\"toBottom\": true}```\nTop of an indented section a.k.a., first child row | **parentId** | ```(\"parentId\": 8896508249565060}```\nBottom of an indented section a.k.a., last child row | **parentId** +<br/>**toBottom** | ```{\"parentId\": 8896508249565060, \"toBottom\": true}```\nBelow a specific row, at the same indent level | **siblingId** | ```{\"siblingId\": 8896508249565060}```\nAbove a specific row, at the same indent level | **siblingId** +<br/>**above** | ```{\"siblingId\": 8896508249565060, \"above\": true}```\nIndent one existing row, must have a value of \"1\" | **indent** | ```{\"indent\": 1}```\nOutdent one existing row, must have a value of \"1\" | **outdent** | ```{\"outdent\": 1}```\n"
  - name: search
    x-displayName: Search
    description: >
      Search a specific sheet or search across all sheets that a user can
      access. If you have not used the public API in a while, we will need to
      provision your data. This could take up to 24 hours so please check back
      later!
  - name: sendViaEmail
    x-displayName: Send via Email
    description: >
      The methods for sending via email rely on the type of object you want to
      send.


      <h2>Send Report</h2>


      For details about sending a report via email, see [Send Report via
      Email](/api/smartsheet/openapi/reports/sendreportviaemail).


      <h2>Send Rows</h2>


      For details about sending rows via email, see [Send Rows via
      Email](/api/smartsheet/openapi/rows/rows-send).


      <h2>Send Sheet</h2>


      For details about sending a sheet via email, see [Send Sheet via
      Email](/api/smartsheet/openapi/sheets/sheet-send).


      <h2>Send Update Request</h2>


      For details about sending an update request via email, see [Create an
      Update
      Request](/api/smartsheet/openapi/updaterequests/updaterequests-create).
  - name: serverInfo
    x-displayName: Server Info
    description: >
      For developer convenience, the Smartsheet API provides access to
      application constants.
  - name: sharing
    x-displayName: Sharing
    description: >
      Use the *Sharing* operations to control sharing of dashboards, reports,
      sheets, and workspaces.
  - name: sheetSummary
    x-displayName: Sheet Summary
    description: >
      A sheet summary allows users to define, organize, and report on custom
      project and business metadata. Sheet summary is only available to
      customers with business or enterprise plans.
  - name: sheets
    x-displayName: Sheets
    description: >
      A sheet can exist in a user's **Sheets** folder

      ([Home](/api/smartsheet/openapi/home)), in a
      [folder](/api/smartsheet/openapi/folders), or

      in a [workspace](/api/smartsheet/openapi/workspaces). It is comprised of
      columns,

      rows, and cells, and may optionally contain attachments and discussions.


      A sheet is comprised of columns, rows, and cells, and may optionally

      contain attachments and discussions.



      <h2>Sheet Attachments</h2>



      For details about working with a sheet's attachments, see

      [Attachments](/api/smartsheet/openapi/attachments).



      <h2>Sheet Cells</h2>



      For details about working with a sheet's cells, see

      [Cells](/api/smartsheet/openapi/cells).



      For details about working with images in cells, see [Cell

      Images](/api/smartsheet/openapi/cellimages).



      <h2>Sheet Columns</h2>



      For details about working with a sheet's columns, see

      [Columns](/api/smartsheet/openapi/columns).



      <h2>Sheet Discussions</h2>



      There are two ways to get discussion-related information for a sheet:



      Operation | Returns

      ----------|----------|

      [Get Sheet](/api/smartsheet/openapi/sheets/getsheet)<br/>(with **include**
      parameter value **discussions**) | Response does not contain the comments

      that comprise each discussion.

      [List
      Discussions](/api/smartsheet/openapi/discussions/discussions-list)<br/>(with
      **include** parameter value **comments**) |  Response contains the
      comments that comprise each discussion.



      For more information about working with a sheet's discussions, see

      [Discussions](/api/smartsheet/openapi/discussions).



      <h2>Sheet Rows</h2>



      For details about working with a sheet's rows, see

      [Rows](/api/smartsheet/openapi/rows).
  - name: templates
    x-displayName: Templates
    description: >
      A template can be used to create a sheet, as described in [Create Sheet
      from Template](/api/smartsheet/openapi/sheets/create-sheet-in-folder).
  - name: tokens
    x-displayName: Tokens
    description: >
      The Smartsheet API utilizes OAuth 2.0 for authentication and
      authorization. An Authorization HTTP header containing an access token is
      required to authenticate all API requests except for the requests to GET
      Access Token or Refresh Access Token. For more information, see
      Authentication.
  - name: updateRequests
    x-displayName: Update Requests
    description: >
      Send update requests to get updated by any collaborator on key rows,
      regardless of whether they have a Smartsheet account or are shared to the
      sheet.
  - name: users
    x-displayName: Users
    description: >
      Users are typically defined by the organization account, and then role
      within the organization, for example admin.
  - name: webhooks
    x-displayName: Webhooks
    description: "<h2>Intro to Webhooks</h2>\n\nAt a high-level, it works like this:\n\n1. Your application subscribes to callbacks.</span><br/>First, subscribe to event notifications (callbacks) by creating one or more webhooks.  You can create a webhook manually via the API or have your application create a webhook dynamically.  Each webhook must specify:\n    * Which Smartsheet object to monitor for events\n    * Which events in that object should trigger a callback\n    * The HTTPS URL (that is, \"callback URL\") where Smartsheet should send callbacks when any of the specified events occur within the scope of the specified Smartsheet object. (**NOTE:** Smartsheet webhooks do not support callbacks to servers using self-signed certificates)\n\n\t  <b>Webhook examples in plain English:</b>\n\t  * \"When any changes occur in Sheet_A, send a callback to https://www.example.com/abc\"\n\t  * \"When a new row is added to Sheet_B, send a callback to https://www.example.com/def\"\n\t  * \"When a cell value is changed in Sheet_C, send a callback to https://www.example.com/ghi\"\n\n2. When any of the specified events occur within an object that is being monitored by a webhook, Smartsheet sends an <b>HTTP POST</b> (that is, \"callback\") to the callback URL that is associated with the webhook.\n\t  * NOTE: The callback payload is a \"skinny\" payload -- it indicates which objects changed and the type of events that occurred, but does not contain any data from the objects themselves.\n3. Your application receives, acknowledges, and processes callbacks.</span><br/>Your application receives the <code>HTTP POST</code>, acknowledges the callback by responding with HTTP status 200, and processes the callback. Because the callbacks are \"skinny\", make one or more requests to the Smartsheet API to retrieve the actual data associated with the change.\n\n<h3>Webhook Management</h3>\n\nUse the Smartsheet API to create and manage webhooks. See [Webhooks API Reference](/api/smartsheet/openapi/webhooks) for details about the related API operations.\n\n<h3>Webhook Ownership & Access</h3>\n\n> **IMPORTANT:** Webhooks are automatically disabled on sheets that exceed 20,000 rows, 400 columns, or 500,000 cells (whichever comes first). Stay within the specified limits to keep webhooks enabled on your sheets.\n\nWebhooks can be created and managed via direct API access or by a third-party.\n\nA webhook that is created via Direct API Access:\n\n* is owned by the user who created it\n* can be managed only by the user who created it\n* is not affected if the access token that was used to create it is revoked, as long as the user remains active\n\nA webhook that is created by a third-party app:\n\n* is owned by the user who authorized the third-party app (and is associated with the third-party app)\n* can be managed by the third-party app (as long as it maintains authorization) or by the user who owns it\n* is permanently disabled if the third-party app's permissions are revoked\n\n<h3>Webhook Scope & Events</h3>\n\nA webhook monitors the specified **scope** for the specified **events**.\n\nA [Webhook object's](/api/smartsheet/openapi/webhooks/webhook) **scope** attribute indicates the scope of the subscription. It is specified when creating a webhook (see **Creating a Webhook**, below), and cannot subsequently be changed.\n\n* Currently, **sheet** is the only supported value for the **scope** attribute. However, you can set an array of columns as a **subscope** if you want to limit the webhook to specific columns.\n\nA [Webhook object's](/api/smartsheet/openapi/webhooks/webhook) **event** attribute indicates the set of events that a webhook is subscribed to (that is, which events trigger a callback).\n\n* Events are represented as a dot-separated string in the format \"*object*.*event*\", where an asterisk (&#42;) can be used to represent \"all objects\" or \"all events\".\n* Currently, <b>&#42;.&#42;</b> is the only supported value for the **events** attribute. This indicates a subscription to all objects in the scope, and all events for those objects.\n\nNOTE: When a row is deleted on a sheet, even if you are using a <b>subscope</b> to monitor columns only and the cell in that column for that row is empty, you will receive a \"row.deleted\" event.\n\n<h3>Example</h3>\n\nConsider a [Webhook object](/api/smartsheet/openapi/webhooks/webhook) with the following attribute values:\n\n* **scopeObjectId** = 12345678901234\n* **scope** = \"sheet\"\n* **events** = \"&#42;.&#42;\"\n\nThis webhook monitors the specified sheet (id: 12345678901234) for all types of events. For example, if a row is added to the sheet, cell values are updated in the sheet, a column is deleted from the sheet, etc., a callback is sent to the webhook's **callbackUrl**.\n\n<h2>Creating a Webhook</h2>\n\nAn API client can create a webhook by using the [Create Webhook](/api/smartsheet/openapi/webhooks/createwebhook) operation. A newly created webhook is disabled by default.\nAfter successfully creating a webhook, the API client must subsequently initiate and complete the verification process (see **Webhook Verification** below) before the webhook is enabled.\nThe following diagram illustrates the process of creating and enabling a webhook.\n\n<img src=\"./images/v4-CreateAndEnableWebhook.png\" alt=\"Workflow to create a webhook\" />\n\n<h3>Step-by-Step</h3>\n\nThe process occurs synchronously:\n\n1. API client submits a [Create Webhook](/api/smartsheet/openapi/webhooks/createwebhook) request.\n\n2. Smartsheet creates the webhook, but does not initially enable the webhook (**enabled: false** and **status: \"NEW_NOT_VERIFIED\"**).\n\n3. To initiate the verification process, the API client submits an [Update Webhook](/api/smartsheet/openapi/webhooks/updatewebhook) request to specify **enabled: true**. (**NOTE:** The API client does not receive a response to this request until the verification process (steps 4 and 5) has completed.)\n\n4. When Smartsheet receives the request to enable the webhook, it sends a verification request (see the **Webhook-Verification** section) to the subscriber (that is, to the **callbackUrl** that the API client specified in the Create Webhook request).\nThe request specifies a unique random value in the **Smartsheet-Hook-Challenge** header and contains only **challenge** and **webhookId** in the request body. The **challenge** value is a repeat of the header value for API clients that don't interpret header values.\n\n5. The subscriber responds to the verification request by echoing back the same unique random value in the **Smartsheet-Hook-Response** header of the response. For API clients that don't interpret header values, you can also send a JSON body with a **smartsheetHookResponse** attribute and the same value that would have been in the header.\n\n6. Once the subscriber has successfully acknowledged the verification request, Smartsheet enables the webhook and responds to the API client's Update Webhook request to confirm that the webhook has been enabled (**enabled: true** and **status: \"ENABLED\"**).\n\n<h3>Webhook Verification</h3>\n\nWhen an API client attempts to enable a webhook, Smartsheet sends a verification request to the webhook's **callbackUrl** to verify that the subscriber expects and is able to successfully receive callbacks.\nThe request specifies a unique random value in the **Smartsheet-Hook-Challenge** header and contains a JSON object in the request body with only **challenge** and **webhookId** attributes in the request body. The **challenge** attribute is a repeat of the header value for API clients that don't interpret header values.\n\n* To verify the webhook, the subscriber's response to the verification request must return a 200 HTTP status code and must echo back the same unique random value in the **Smartsheet-Hook-Response** header of the response or with a JSON **smartsheetHookResponse** attribute. Once Smartsheet receives this verification response, the webhook is enabled (**enabled: true** and **status: \"ENABLED\"**).\n\n* If the subscriber does not successfully respond to the verification request, the webhook remains disabled (**enabled: false** and **status: \"DISABLED_VERIFICATION_FAILED\"**).\n\nWhen a webhook is initially [created through the API](/api/smartsheet/openapi/webhooks/createwebhook), the response contains the webhook's Id.  If you wish to guarantee that your server only receives callbacks for webhooks that you created,\nyou can check the verification request's **webhookId** attribute against your list of created webhook Ids.  If the Id is not in the list, return a response with a non-200 status code (for example, 403 Forbidden),\nand the webhook that initiated the verification request is disabled as described above.\n\nNOTE: <b>IMPORTANT:</b> ONGOING VERIFICATION. Once a webhook has been enabled, Smartsheet sends a verification request to the webhook's <b>callbackUrl</b> once every 100 callbacks. The subscriber should respond to the verification request as described above -- failure to do so results in the webhook being disabled (<b>enabled: false</b> and <b>status: \"DISABLED_VERIFICATION_FAILED\"</b>).\n\n<h3>Duplicate Webhooks</h3>\n\n*Duplicate webhooks* are defined as two or more webhooks that meet the following conditions:\n\n* on the same sheet\n* created by the same user\n* have identical: **callbackUrl** and **subscope** properties.\n\nBecause duplicate webhooks are functionally identical, this would ordinarily result in the callback URL being called simultaneously once for each duplicate webhook in the sheet when the sheet changes. Many duplicates can lead to too much traffic which can cause a *denial of service* (DOS) on the callback server.\n\nThere are no known valid use cases for duplicate webhooks; they are usually created unintentionally by API clients due to faulty or missing logic.\n\nFor this reason, **as of January 2023, Smartsheet will now deduplicate webhook callbacks**.  This means for every set of duplicate webhooks on a sheet, Smartsheet will no longer issue one callback per webhook, and will instead only issue **one total callback**, for only the oldest enabled webhook.\n\n**Recommendation:** When creating a webhook, first check to make sure that the sheet doesn't already contain an identical webhook.  If it does, and it's disabled, re-enable it.  If it's already enabled, do nothing.\n\n<h2>Webhook Status</h2>\n\nA [Webhook](/api/smartsheet/openapi/webhooks/webhook) object's **enabled** attribute indicates whether a webhook is enabled or disabled, while the **status** attribute describes the *reason* that the webhook is enabled or disabled.\n\nThe following table lists all possible combinations of **enabled** and **status** attribute values.\n\nWebhook.enabled | Webhook.status | Meaning | Notes\n----- | ----- | ------ | -----\nfalse  | **DISABLED_ADMINISTRATIVE** | Webhook has been disabled by Smartsheet support. | A webhook in this state can only be re-enabled by Smartsheet (contact [api@smartsheet.com](mailto:api@smartsheet.com)).  Attempting to re-enable a webhook in this state results in error code 1154.\nfalse  | **DISABLED_APP_REVOKED** | Webhook has been disabled because the third-party app associated with the webhook has had its access revoked. | This is a terminal state (that is, webhook in this state cannot be re-enabled, and attempts to do so result in error code 1153). If the third-party app's access is subsequently restored, it must create new webhooks.\nfalse  | **DISABLED_BY_OWNER** | Webhook has been disabled by the owner. | Owner can re-enable the webhook by using the [Update Webhook](/api/smartsheet/openapi/webhooks/updatewebhook) operation to set **enabled** to **true**. Once the subscriber successfully acknowledges the verification request (See the **Webhook Verification** section), the webhook is enabled.\nfalse  | **DISABLED_CALLBACK_FAILED** | Webhook has been disabled because callback was not successfully delivered to the callback URL. |  Owner can re-enable the webhook by using the [Update Webhook](/api/smartsheet/openapi/webhooks/updatewebhook) operation to set **enabled** to **true**. Once the subscriber successfully acknowledges the verification request (see the **Webhook Verification** section), the webhook is enabled.\nfalse | **DISABLED_EXCEEDED_GRID_LIMITS** | Webhook has been disabled because the sheet has 20,000 rows, 400 columns, or 500,000 cells. | Owner can enable the webhook by first reducing the sheet size to within the specified limits and then executing the [Update Webhook](/api/smartsheet/openapi/webhooks/updatewebhook) operation with the `enabled` body attribute set to `true`.\nfalse  | **DISABLED_SCOPE_INACCESSIBLE** | Webhook has been disabled because its owner lost access to the corresponding data in Smartsheet (either because the object was deleted or sharing permissions were revoked). | Webhook is automatically re-enabled if access to data is restored (for example, if deleted object is restored or sharing permissions are restored).\nfalse  | **DISABLED_VERIFICATION_FAILED** | Webhook verification has failed. |  Owner can re-enable the webhook by using the [Update Webhook](/api/smartsheet/openapi/webhooks/updatewebhook) operation to set **enabled** to **true**. Once the subscriber successfully acknowledges the verification request (see the **Webhook Verification section), the webhook is enabled.\ntrue  | **ENABLED** | Webhook is active. |\nfalse | **NEW_NOT_VERIFIED** | Webhook has been created but is not enabled because it has not yet been verified. |  Owner can re-enable the webhook by using the [Update Webhook](/api/smartsheet/openapi/webhooks/updatewebhook) operation to set **enabled** to **true**. Once the subscriber successfully acknowledges the verification request (see the **Webhook Verification** section), the webhook is enabled.\n\n**NOTES:**\n\n* When a Webhook object's <b>enabled</b> attribute is set to <b>true</b>, Smartsheet is monitoring for the specified events and sends a callback (see the **Event Callbacks** section) to the <b>callbackUrl</b> when the events occur.\n* When a Webhook object's <b>enabled</b> attribute is set to <b>false</b>, Smartsheet is not monitoring for the specified events and does not send a callback to the <b>callbackUrl</b> when the events occur. Depending on the value of the <b>status</b> attribute, it may be possible to (re-)enable the webhook. (See below for details).\n\n<h2>Webhook Callbacks</h2>\n\nA callback is the notification that Smartsheet sends to a webhook's **callbackUrl**. There are two types of callbacks:\n\n* Event callback (see the **Event Callbacks** section): Alerts the subscriber when the specified events have occurred in Smartsheet. This is the most common type of callback.\n\n* Status Change callback (see the **Status Change Callbacks** section): Alerts the subscriber that a webhook has been automatically disabled due to loss of access or automatically re-enabled due to restoration of access.\n\nA Subscriber has the ability to verify the integrity of a callback payload (that is, ensure that the message was not tampered with en route) and authenticate the identity of its sender (that is, ensure that the callback did indeed originate from Smartsheet).\nFor more information, see Authenticating Callbacks (see the **Authenticating Callbacks(optional)** section).\n\n**NOTES:**\n\n* Smartsheet webhooks do not support callbacks to servers using self-signed certificates. The callback server must be using a signed certificate from a certificate authority.\n* The callbackURL cannot be a private IP address.\n* The callbackURL must use one of the following ports: 443 (default for HTTPS), 8000, 8008, 8080, or 8443.\n* Smartsheet webhooks alway let a running callback for a given sheet finish before making another, that is the second call will wait on the first one to finish.\n\n<h3>Event Callbacks</h3>\n\nSmartsheet sends an event callback to notify the subscriber when the specified events occur in Smartsheet.\n\n**WARNING:** Any events that occur while a webhook is disabled are not communicated via callback if/when webhook is enabled.\n\n**IMPORTANT:** For Smartsheet US and Smartsheet Regions Europe since October 14th 2024, a one-minute debounce was introduced to optimize event trigger handling in the Webhooks event callback API. It reduces traffic and prevents workflows from acting on incomplete or transitional data.\n\n<h3>Callback Acknowledgement</h3>\n\nThe subscriber must respond to an event callback with a 200 <a href=\"https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success\" target=\"_blank\" rel=\"noopener noreferrer\">HTTP status code</a> to acknowledge that the callback was received.\n\n<h3>Retry Logic</h3>\n\nIf the subscriber fails to respond with a 200 status, depending on the response, Smartsheet may retry delivery up to 14 times. (The first 7 retry attempts occur with a frequency that's determined using exponential backoff; thereafter, retry attempts occur once every three hours until all retries have been exhausted.)\n\nSubscriber response | Is retried?\n----- | -----\nHTTP 201 through 299 | No\nHTTP 309 through 399 | No\nHTTP 400 through 499 (except 410) | Yes\nHTTP 410 | No\nHTTP 500 through 599 | Yes\nAny other HTTP status | No\nRequest timeout | Yes\n\nIf the response is not retriable or retry attempts have been exhausted, the webhook is disabled (**enabled: false** and **status: \"DISABLED_CALLBACK_FAILED\"**).\nA webhook in this state can be re-enabled if the subscriber completes the verification process. (See the **Webhook Status** section for details.)\n\n<h3>Status Change Callbacks</h3>\n\nIf a webhook's owner loses access to the object that a webhook is monitoring (either because the object was deleted or the webhook owner's access to the object was revoked in Smartsheet),\nSmartsheet automatically disables the webhook and sends a status change callback to alert the subscriber of this change in status.\nThe **newWebhookStatus** attribute indicates that the webhook is now disabled (because the scope is inaccessible).\n\nIf the webhook owner's access to the object is subsequently restored,\nSmartsheet automatically re-enables the webhook and sends a status change callback to alert the subscriber of this change in status.\nThe **newWebhookStatus** attribute indicates that the webhook is now enabled.\n\n<h3>Authenticating Callbacks (optional)</h3>\n\nA subscriber has the ability to verify the integrity of a callback payload (that is, ensure that the message was not tampered with en route) and authenticate the identity of its sender (that is, ensure that the callback did indeed originate from Smartsheet).\n\nWhen you create a new [webhook](/api/smartsheet/openapi/webhooks/webhook), it is assigned a randomly generated **sharedSecret** value.  The shared secret is used by Smartsheet to sign callback payloads, and should not be shared with any third parties.\n\nTo authenticate a callback request:\n\n1. Calculate the <a href=\"https://en.wikipedia.org/wiki/Hash-based_message_authentication_code\" target=\"_blank\" rel=\"noopener noreferrer\">HMAC</a> of the webhook's **sharedSecret** and the request body.  This must be done using the <a href=\"https://en.wikipedia.org/wiki/SHA-2\" target=\"_blank\" rel=\"noopener noreferrer\">SHA-256</a> cryptographic hash algorithm.\n\n2. Format the calculated value as a string in base 16.\n\n3. Compare your result with the value of the **Smartsheet-Hmac-SHA256** header of the request.\n\nIf the values match, you can be sure the request originated from Smartsheet and that the data has not been tampered with.\n\nNOTE: For maximum security, you may also choose to [reset your webhook's shared secret](/api/smartsheet/openapi/webhooks/resetsharedsecret) at periodic intervals.\n\n<h2>Preventing Infinite Loops</h2>\n\nIt's possible that an application which subscribes to callbacks (using webhooks) might react to those callbacks by using the API to make additional changes in Smartsheet.\nBut, consider the following scenario:\n\n1. **App1** creates a webhook to monitor **Sheet-A** for changes, specifying an **App-1** URL as the **callbackUrl** for the webhook.\n\n2. **App-1** updates **Sheet-A** using the API.\n\n3. Smartsheet detects that **Sheet-A** has changed and sends a callback to **App-1** (as the webhook specified).\n\n4. **App-1** processes the callback, and in the course of doing so, updates **Sheet-A** again using the API.\n\n5. Return to Step 3.\n\nTo protect against infinite loops like the one outlined above, Smartsheet introduced support for a new header that an API client can include with any API request that adds, updates, or deletes data in Smartsheet.\nHere's how it works:\n\n* An API client includes the **Smartsheet-Change-Agent** header in any API request that adds, updates, or deletes data in Smartsheet.\n  * The header value should be set to a string that the API client recognizes as identifying itself.\n* If any [event callbacks](/api/smartsheet/openapi/webhooks/callbackevent) fire as a result of an API request that contains the **Smartsheet-Change-Agent** header, the value of the **Smartsheet-Change-Agent** header is included in the [callback](/api/smartsheet/openapi/webhooks/callback) in the value of the **changeAgent** attribute.\n* If a webhook subscriber receives a [callback](/api/smartsheet/openapi/webhooks/callback) that contains the **changeAgent** attribute, it should evaluate the attribute value:\n  * If the attribute value's comma-delimited list contains the subscriber API client's change agent value, this indicates that the change which triggered the callback *was* caused by the subscriber itself, and the subscriber can choose to ignore the callback, thus preventing an infinite loop.\n  * Else, the change which triggered the callback was *not* caused by the subscriber itself, and if the subscriber is going to subsequently react to the callback by making a change in Smartsheet (via API request), the API client should append a comma and its own identifier to the original attribute value, and pass that value through using the **Smartsheet-Change-Agent** header of the API request. Doing so protects against cross-system infinite loops.\n\nNOTE: The <b>Smartsheet-Change-Agent</b> header value has a maximum length of 512 characters. If its length exceeds 512 characters, the excess is trimmed from the front of the string, so that the most recent agent information remains.\n\n<h2>Webhook Errors</h2>\n\nThe following table specifies the recommended action for each Smartsheet-specific error code.\nUse this information to implement error handling logic according to the following guidelines:\n\n* If the error code indicates a permanent error condition, do not retry the request.\n* If the error code indicates a problem that can be fixed, do not retry the request until the problem has been fixed.\n* If the error code indicates a problem that could be overcome by retrying the request after a period of time, retry the request using exponential backoff.\n\nHTTP status code | Smartsheet errorCode | Smartsheet message | Recommended Action |\n-----|-----|-----|-----|\n400 | 1151 | Scope '{0}', object id {1} was not found. | Do not retry without fixing the problem.\n400 | 1152 | Only URLs with a protocol of 'https' are supported for attribute '{0}'. | Do not retry without fixing the problem.\n403 | 1153 | This webhook cannot be enabled because access was revoked for the application that created it. | <span class=\"doNotRetry\">Do not retry.</span>\n403 | 1154 | Please contact api@smartsheet.com in order to enable this webhook. | <span class=\"doNotRetry\">Do not retry.</span>\n"
  - name: workspaces
    x-displayName: Workspaces
    description: >
      Similar to a folder, a workspace is a place where you can store
      dashboards, reports, sheets, and templates to keep them organized. A
      workspace offers more functionality than a folder because you can set up
      sharing permissions and branding (a logo and a color scheme) at the
      workspace-level and a workspace can contain folders so that you can keep
      things within it organized. As new items are added to the workspace,
      they'll automatically inherit the sharing permissions and branding applied
      to that workspace.

      <h2>Workspace Folders</h2>


      For details about working with folders in a workspace, see
      [Folders](/api/smartsheet/openapi/folders).


      <h2>Workspace Sheets</h2>


      For details about working with sheets in a workspace, see
      [Sheets](/api/smartsheet/openapi/sheets).
paths:
  /contacts:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: list-contacts
      summary: List Contacts
      description: Gets a list of the user's Smartsheet contacts.
      tags:
        - contacts
      security:
        - APIToken: []
        - OAuth2:
            - READ_CONTACTS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/modifiedSince'
        - $ref: '#/components/parameters/numericDates'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: IndexResult object containing an array of Contact objects
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: List of Contacts
                        type: array
                        items:
                          $ref: '#/components/schemas/Contact'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Contact> contacts =
            smartsheet.ContactResources.ListContacts(
              null                // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/contacts \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Contact> contacts =
            smartsheet.contactResources().listContacts(
                    null        // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.contacts.listContacts({})
              .then(function(contactsList) {
                console.log(contactsList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: List all

            response =
            smartsheet_client.Contacts.list_contacts(include_all=True)

            contacts = response.data


            # Sample 2: Paginate the list (100 contacts per page)

            response = smartsheet_client.Contacts.list_contacts(
              page_size=100,
              page=1)
            pages = response.total_pages

            contacts = response.data
  /contacts/{contactId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/contactId'
    get:
      summary: Get Contact
      description: Gets the specified contact.
      operationId: get-contact
      tags:
        - contacts
      security:
        - APIToken: []
        - OAuth2:
            - READ_CONTACTS
      parameters:
        - $ref: '#/components/parameters/contactInclude'
      responses:
        '200':
          description: Returns Contact object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Contact contact = smartsheet.ContactResources.GetContact(
              "AAAAATYU54QAD7_fNhTnhA"      // string contactId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/contacts/{contactId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Contact contact = smartsheet.contactResources().getContact(
                    "AAAAATYU54QAD7_fNhTnhA"      // string contactId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {id: "AAAAATYU54QAD7_fNhTnhA"};

            // Get contact
            smartsheet.contacts.getContact(options)
              .then(function(contact) {
                console.log(contact);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            contact = smartsheet_client.Contacts.get_contact(
              'AAAAATYU54QAD7_fNhTnhA')       # contact_id
  /events:
    get:
      operationId: list-events
      summary: List Events
      description: >-
        Gets events that are occurring in your Smartsheet organization account.
        Examples of events are creation, update, load, and delete of sheets,
        reports, dashboards, attachments, users, etc.


        Each event type has a distinct combination of objectType and action.
        Many event types have additional information returned under an
        additionalDetails object. See the <a
        href="https://smartsheet-platform.github.io/event-reporting-docs/"
        target="_blank">Event Reporting reference documentation</a> for a
        complete list of all currently supported events, including their
        respective objectType, action, and additionalDetails properties.
      tags:
        - events
      security:
        - APIToken: []
        - OAuth2:
            - READ_EVENTS
      parameters:
        - $ref: '#/components/parameters/Accept-Encoding'
        - $ref: '#/components/parameters/Authorization'
        - name: since
          in: query
          description: >-
            The earliest time from which events are included in the response.
            Events before this time are excluded. This parameter is intended for
            use when backfilling data at client startup or recovery--don't use
            it for fine-grained date-based queries. Therefore, resolution is
            limited to the nearest hour. The value is interpreted as ISO-8601
            format, unless `numericDates` is specified (see details about
            `numericDates` below).


            You must pass in a value for either `since` or `streamPosition` and
            never both.
          schema:
            type: string
            format: date-time
          required: false
        - name: to
          in: query
          description: >-
            The latest time up to which events are included in the response.
            Events after this time are excluded. The `to` parameter requires
            using the `since` query parameter (above). This parameter is
            intended for use when backfilling data at client startup or
            recovery--don't use it for fine-grained date-based queries.
            Therefore, resolution is limited to the nearest hour. The value is
            interpreted as ISO-8601 format, unless `numericDates` is specified
            (see details about `numericDates` below).


            If `to` is a future time, the current time is used. If `to` equals
            the `since` time, an empty data value is returned. If `to` is before
            the `since` time, an error is returned.
          schema:
            type: string
            format: date-time
          required: false
        - name: streamPosition
          in: query
          description: >-
            Indicates next set of events to return. Use value of
            `nextStreamPosition` returned from the previous call.

            You must pass in a value for either `since` or `streamPosition` and
            never both.
          schema:
            type: string
            example: XyzAb1234cdefghijklmnofpq
          required: false
        - name: maxCount
          in: query
          description: |-
            Maximum number of events to return as response to this call.
            Must be between 1 through 10,000 (inclusive).
            Defaults to 1,000 if not specified.
          schema:
            type: integer
            minimum: 1
            maximum: 10000
            default: 1000
          required: false
        - name: numericDates
          in: query
          description: >-
            If true, dates are accepted and returned in Unix epoch time
            (milliseconds since midnight on January 1, 1970 in UTC time).

            Default is false, which means ISO-8601 format.
          schema:
            type: boolean
            default: false
          required: false
        - name: managedPlanId
          in: query
          description: >-
            The target managed plan for which to list events. Authorized if the
            caller is a system administrator on either the target managed plan
            or the main plan in EPM hierarchy.
          schema:
            type: number
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/StreamResult'
                  - type: object
                    properties:
                      data:
                        description: List of Events
                        type: array
                        items:
                          $ref: '#/components/schemas/Event'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '410':
          $ref: '#/components/responses/410'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
  /favorites:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/ActorId'
    get:
      summary: Get Favorites
      description: Gets a list of all of the user's favorite items.
      operationId: get-favorites
      tags:
        - favorites
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/favoriteInclude'
      responses:
        '200':
          description: IndexResult object containing an array of Favorite objects.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Favorite'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Favorite> results =
            smartsheet.FavoriteResources.ListFavorites(
              null                // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/favorites \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Favorite> results =
            smartsheet.favoriteResources().listFavorites(
                    null        // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.favorites.listFavorites()
              .then(function(favoritesList) {
                console.log(favoritesList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: List All

            response =
            smartsheet_client.Favorites.list_favorites(include_all=True)

            faves = response.data


            # Sample 2: Paginate the list of favorites

            response = smartsheet_client.Favorites.list_favorites(
              page_size=10,
              page=1)
            pages = response.total_pages

            faves = response.data
    post:
      summary: Add Favorites
      description: >
        Adds one or more favorite items for the current user. This operation
        supports both single-object and bulk semantics. For more information,
        see Optional Bulk Operations.

        If called with a single Favorite object, and that favorite already
        exists, error code 1129 is returned. If called with an array of Favorite
        objects, any objects specified in the array that are already marked as
        favorites are ignored and omitted from the response.
      operationId: add-favorite
      tags:
        - favorites
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: A list of favorites to be added.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Favorite'
                - type: array
                  items:
                    $ref: '#/components/schemas/Favorite'
      responses:
        '200':
          description: >-
            Result object containing either a single Favorite object or an array
            of Favorite objects.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Favorite'
                          - type: array
                            items:
                              $ref: '#/components/schemas/Favorite'
        default:
          description: Generic Error Payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify favorites

            IList<Favorite> favoritesSpecification = new Favorite[]

            {
              new Favorite
              {
                Type = ObjectType.SHEET,
                ObjectId = 8400677765441412
              }
            };


            // Add items to favorites

            IList<Favorite> newFavorite =
            smartsheet.FavoriteResources.AddFavorites(favoritesSpecification);
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/favorites \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '[{"type": "sheet", "objectId": 8400677765441412}]'
        - lang: Java
          label: Java
          source: >
            // Specify favorites

            Favorite favoritesSpecification = new Favorite()
                    .setObjectId(8400677765441412L)
                    .setType(FavoriteType.SHEET);

            // Add items to favorites

            List<Favorite> newFavorite =
            smartsheet.favoriteResources().addFavorites(Arrays.asList(favoritesSpecification));
        - lang: Node.js
          label: Node.js
          source: |
            // Specify favorites
            var favorites = [
              {
                "type": "sheet",
                "objectId": 8400677765441412
              }
            ];

            // Set options
            var options = {
              body: favorites
            };

            // Add items to favorites
            smartsheet.favorites.addItemsToFavorites(options)
              .then(function(newFavorite) {
                console.log(newFavorite);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Favorites.add_favorites([
              smartsheet.models.Favorite({
                'type': 'sheet',
                'object_id': 8400677765441412
              })
            ])
  /favorites/{favoriteType}:
    parameters:
      - $ref: '#/components/parameters/favoriteType'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/ActorId'
    delete:
      summary: Delete Multiple Favorites
      description: Deletes all favorites with the same type for the user.
      operationId: delete-favorites-by-type
      tags:
        - favorites
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/favoriteIds'
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.FavoriteResources.RemoveFavorites(
              ObjectType.FOLDER,
              new long[] { 2252168947361668, 2252168947361669 }     // folderIds
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/favorites/{favoriteType}?objectIds=favoriteId1,favoriteId2'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.favoriteResources().removeFavorites(
                    FavoriteType.FOLDER,
                    new HashSet(Arrays.asList(2252168947361668L, 2252168947361669L))      // long folderIds
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              queryParameters: {
                objectIds: "2252168947361668,2252168947361669"
              }
            };

            // Remove favoriteType from list of favorites
            smartsheet.favorites.remove{favoriteType}FromFavorites(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Favorites.remove_favorites(
              'folder',
              [2252168947361668, 2252168947361669]        # folder_ids
            )
  /favorites/{favoriteType}/{favoriteId}:
    parameters:
      - $ref: '#/components/parameters/favoriteType'
      - $ref: '#/components/parameters/favoriteId'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/ActorId'
    delete:
      summary: Delete Favorite
      description: >-
        Deletes a single favorite from the user's list of favorite items by type
        and ID.
      operationId: delete-favorites-by-type-and-id
      tags:
        - favorites
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.FavoriteResources.RemoveFavorites(
              ObjectType.FOLDER,
              new long[] { 2252168947361668 }   // folderId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/favorites/{favoriteType}/{folderId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.favoriteResources().removeFavorites(
                    FavoriteType.FOLDER,
                    new HashSet(Arrays.asList(2252168947361668L))      // long folderId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              objectId: 2252168947361668
            };

            // Remove folder from list of favorites
            smartsheet.favorites.removeFolderFromFavorites(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Favorites.remove_favorites(
              'folder',
              2252168947361668        # folder_id
            )
    get:
      summary: Is Favorite
      description: >-
        Checks whether an item has been tagged as a favorite for the current
        user by type and ID.
      operationId: is-favorite
      tags:
        - favorites
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/favoriteInclude'
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Favorite'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |
            curl -i -X GET \
              'https://api.smartsheet.com/2.0/favorites/{favoriteType}/{favoriteId}?include={directId}' \
              -H 'Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789' \
              -H 'x-smar-sc-actor-id: 100012'
  /filteredEvents:
    post:
      operationId: list-filtered-events
      summary: List Filtered Events
      description: >-
        Gets the events that are occurring in a Smartsheet organization account
        for resources to which the current user has access to. This endpoint
        will return events related to the creation, update, load, and delete of
        sheets, attachments, discussion, workspaces and groups.


        Each event type has a distinct combination of objectType and action.
        Many event types have additional information returned under an
        additionalDetails object. See the <a
        href="https://smartsheet-platform.github.io/event-reporting-docs/"
        target="_blank">Event Reporting reference documentation</a> for a
        complete list of all currently supported events, including their
        respective objectType, action, and additionalDetails properties.
      tags:
        - events
      security:
        - APIToken: []
        - OAuth2:
            - READ_EVENTS
      parameters:
        - $ref: '#/components/parameters/Accept-Encoding'
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FilteredEventsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/StreamResult'
                  - type: object
                    properties:
                      data:
                        description: List of Events
                        type: array
                        items:
                          $ref: '#/components/schemas/Event'
                      unavailableSheetIds:
                        description: >-
                          List of sheet Ids specified in the request that the
                          user does not have access to.
                        type: array
                        items:
                          type: string
                      unavailableWorkspaceIds:
                        description: >-
                          List of workspace Ids specified in the request that
                          the user does not have access to.
                        type: array
                        items:
                          type: string
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '406':
          $ref: '#/components/responses/406'
        '410':
          $ref: '#/components/responses/410'
        '415':
          $ref: '#/components/responses/415'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /folders/{folderId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/folderId'
    get:
      summary: Get Folder
      description: Gets a Folder object.
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: get-folder
      parameters:
        - $ref: '#/components/parameters/folderWorkspaceInclude'
      responses:
        '200':
          description: A single Folder object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Sample 1: Omit 'include' parameter
            Folder folder = smartsheet.FolderResources.GetFolder(
              7116448184199044,           // long folderId
              null                        // IEnumerable<FolderInclusion> include
            );

            // Sample 2: Specify 'include' parameter with value of "SOURCE"
            Folder folder = smartsheet.FolderResources.GetFolder(
              7116448184199044,           // long folderId
              new FolderInclusion[] {
                FolderInclusion.SOURCE }
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/folders/{folderId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            // Sample 1: Omit 'include' parameter
            Folder folder = smartsheet.folderResources().getFolder(
                    7116448184199044L,       // long folderId
                    null)                    // EnumSet<SourceInclusion> includes
                    );

            // Sample 2: Specify 'include' parameter with value of "SOURCE"
            Folder folder = smartsheet.folderResources().getFolder(
                    7116448184199044L,       // long folderId
                    EnumSet.of(SourceInclusion.SOURCE))
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              id: 7116448184199044 // Id of Folder
            };

            // Get folder
            smartsheet.folders.getFolder(options)
              .then(function(folder) {
                console.log(folder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Get folder
            folder = smartsheet_client.Folders.get_folder(
              7116448184199044)       # folder_id

            # Sample 2: Include source
            response = smartsheet_client.Folders.get_folder(
              7116448184199044,       # folder_id
              include=source)
    delete:
      summary: Delete Folder
      description: Deletes a folder.
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      operationId: delete-folder
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.FolderResources.DeleteFolder(
              965780272637828                 // long folderId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/folders/{folderId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.folderResources().deleteFolder(
                    965780272637828L         // long folderId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              id: 965780272637828 // Id of Folder
            };

            // Delete folder
            smartsheet.folders.deleteFolder(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Folders.delete_folder(
              7960873114331012)       # folder_id
    put:
      summary: Update Folder
      description: Updates a folder.
      operationId: update-folder
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Folder'
      responses:
        '200':
          description: Result object containing the modified Folder object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Folder'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set folder name

            Folder folderSpecification = new Folder

            {
              Id = 7960873114331012,
              Name = "New name for folder"
            };


            // Update folder

            Folder updatedFolder =
            smartsheet.FolderResources.UpdateFolder(folderSpecification);
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/folders/{folderId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{"name": "New name for folder"}'
        - lang: Java
          label: Java
          source: >
            // Set folder name and id of the folder to be updated

            Folder folderSpecification = new Folder(7960873114331012L);

            folderSpecification.setName("New name for folder");


            // Update folder

            Folder updatedFolder =
            smartsheet.folderResources().updateFolder(folderSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Set folder name
            var folder = {
              "name": "New name for folder"
            };

            // Set options
            var options = {
              id: 7960873114331012, // Id of Folder
              body: folder
            };

            // Update folder
            smartsheet.folders.updateFolder(options)
              .then(function(updatedFolder) {
                console.log(updatedFolder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_folder = smartsheet_client.Folders.update_folder(
              7960873114331012,       # folder_id
              'New name for folder')
  /folders/{folderId}/copy:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/folderId'
    post:
      summary: Copy Folder
      description: Copies a folder.
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      operationId: copy-folder
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/sheetCopyInclude'
        - $ref: '#/components/parameters/sheetCopyExclude'
        - $ref: '#/components/parameters/skipRemap'
      requestBody:
        description: New folder name.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ContainerDestination'
      responses:
        '200':
          description: >-
            Result object containing a Folder object for the new folder
            destination.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerDestination'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify destination

            ContainerDestination destination = new ContainerDestination {
              DestinationId = 7960873114331012,
              DestinationType = DestinationType.FOLDER,
              NewName = "newFolderName"
            };


            // Sample 1: Omit 'include' and 'skipRemap' parameters

            Folder folder = smartsheet.FolderResources.CopyFolder(
              2252168947361668,               // long folderId
              destination,
              null,                           // IEnumerable<FolderCopyInclusion> include
              null                            // IEnumerable<FolderRemapExclusion> skipRemap
            );


            // Sample 2: Specify 'include' parameter with value of "DATA", and
            'skipRemap' parameter with value of "CELL_LINKS"

            Folder folder = smartsheet.FolderResources.CopyFolder(
              2252168947361668,               // long folderId
              destination,
              new FolderCopyInclusion[] {
                FolderCopyInclusion.DATA },
              new FolderRemapExclusion[] {
                FolderRemapExclusion.CELL_LINKS }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/folders/{folderId}/copy?include=data'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -d '{
              "destinationType": "folder",
              "destinationId": 7960873114331012,
              "newName": "newFolderName"
            }' \

            -X POST
        - lang: Java
          label: Java
          source: >
            // Specify destination

            ContainerDestination destination = new ContainerDestination()
                    .setDestinationType(DestinationType.FOLDER)
                    .setDestinationId(7960873114331012L)
                    .setNewName("newFolderName");

            // Sample 1: Omit 'include' and 'skipRemap' parameters

            Folder folder = smartsheet.folderResources().copyFolder(
                    2252168947361668L,                      // long folderId
                    destination,
                    null,                                   // EnumSet<FolderCopyInclusion> includes
                    null                                    // EnumSet<FolderRemapExclusion> skipRemap
                    );

            // Sample 2: Specify 'include' parameter with value of "DATA", and
            'skipRemap' parameter with value of "CELLLINKS"

            Folder folder = smartsheet.folderResources().copyFolder(
                    2252168947361668L,                      // long folderId
                    destination,
                    EnumSet.of(FolderCopyInclusion.DATA),
                    EnumSet.of(FolderRemapExclusion.CELLLINKS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify destination information
            var body = {
              destinationType: "folder",
              destinationId: 7960873114331012,
              newName: "Folder Copy"
            };

            // Specify elements to copy
            var params = {
              include: "data,discussions",
              skipRemap: "cellLinks"
            };

            // Set options
            var options = {
              folderId: 2252168947361668,
              body: body,
              queryParameters: params
            };

            // Copy folder
            smartsheet.folders.copyFolder(options)
              .then(function(folder) {
                console.log(folder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Copy folder
            response = smartsheet_client.Folders.copy_folder(
              2252168947361668,                           # folder_id
              smartsheet.models.ContainerDestination({
                'destination_id': 7960873114331012,
                'destination_type': 'folder',
                'new_name': 'newFolderName'
              })
            )

            # Sample 2: Include filters
            response = smartsheet_client.Folders.copy_folder(
              2252168947361668,                           # folder_id
              include=filters,
              smartsheet.models.ContainerDestination({
                'destination_id': 7960873114331012,
                'destination_type': 'folder',
                'new_name': 'newFolderName'
              })
            )
  /folders/{folderId}/folders:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/folderId'
    get:
      summary: List Folders
      description: >
        Gets a list of folders in a given folder. The list contains an
        abbreviated Folder object for each folder.
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: list-folders
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: IndexResult object containing an array of Folder objects.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Folder'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Folder> folders =
            smartsheet.FolderResources.ListFolders(
              5107651446105988,           // long folderId
              null                        // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/folders/{folderId}/folders \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Folder> folders =
            smartsheet.folderResources().listFolders(
                    510765144610598L,               // long parentFolderId
                    null                             // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              folderId: 5107651446105988
            };

            // List folders in another folder
            smartsheet.folders.listChildFolders(options)
              .then(function(folderList) {
                console.log(folderList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Folders.list_folders(
              5107651446105988,       # folder_id
              include_all=True)
            folders = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Folders.list_folders(
              5107651446105988,       # folder_id
              page_size=5,
              page=1)
            pages = response.total_pages
            folders = response.data
    post:
      summary: Create Folder
      description: |
        Creates a new folder.
      operationId: create-folder-folder
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/sheetCopyInclude'
        - $ref: '#/components/parameters/sheetCopyExclude'
        - $ref: '#/components/parameters/skipRemap'
      requestBody:
        description: Folder to create.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Folder'
      responses:
        '200':
          description: Result object containing a Folder object for newly created folder.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Folder'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Set folder name
            Folder folderSpecification = new Folder { Name = "New folder" };

            // Create folder in another folder
            Folder newFolder = smartsheet.FolderResources.CreateFolder(
              7960873114331012,               // long destinationFolderId
              folderSpecification
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/folders/{folderid}/folders \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '{"name": "New folder"}'
        - lang: Java
          label: Java
          source: |
            // Set folder name
            Folder folderSpecification = new Folder();
            folderSpecification.setName("New Folder");

            // Create folder in another folder
            Folder newFolder = smartsheet.folderResources().createFolder(
                    7960873114331012L,       // long destinationFolderId
                    folderSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set folder name
            var folder = {
              "name": "New folder"
            };

            // Set options
            var options = {
              folderId: 7960873114331012,
              body: folder
              };

            // Create folder in another folder
            smartsheet.folders.createChildFolder(options)
              .then(function(newFolder) {
                console.log(newFolder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Create folder
            response = smartsheet_client.Folders.create_folder_in_folder(
              7960873114331012,       # folder_id
              'New folder')

            # Sample 2: Include filters
            response = smartsheet_client.Folders.create_folder_in_folder(
              7960873114331012,       # folder_id
              include=filters,
              'New folder')
  /folders/{folderId}/move:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/folderId'
    post:
      summary: Move Folder
      description: Moves a folder.
      tags:
        - folders
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      operationId: move-folder
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: New folder destination.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ContainerDestination'
      responses:
        '200':
          description: >-
            Result object containing a Folder object for the new folder
            destination.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerDestination'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination {
              DestinationId = 7960873114331012,       // long destinationFolderId
              DestinationType = DestinationType.FOLDER,
            };

            // Move folder
            Folder folder = smartsheet.FolderResources.MoveFolder(
              4509918431602564,               // long folderId
              destination
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/folders/{folderId}/move \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -d '{
              "destinationType": "folder",
              "destinationId": 7960873114331012
            }' \
            -X POST
        - lang: Java
          label: Java
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination()
                    .setDestinationType(DestinationType.FOLDER)
                    .setDestinationId(7960873114331012L);

            // Move folder
            Folder folder = smartsheet.folderResources().moveFolder(
                    4509918431602564L,                         // long folderId
                    destination
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set destination information
            var body = {
              destinationType: "folder",
              destinationId: 7960873114331012
            };

            // Set options
            var options = {
              folderId: 4509918431602564,
              body: body
            };

            // Move folder
            smartsheet.folders.moveFolder(options)
              .then(function(folder) {
                console.log(folder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            folder = smartsheet_client.Folders.move_folder(
              4509918431602564,                           # folder_id to be moved
              smartsheet.models.ContainerDestination({
                'destination_id': 7960873114331012,     # destination folder_id
                'destination_type': 'folder'
              })
            )
  /folders/{folderId}/sheets:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/folderId'
    post:
      summary: Create Sheet in Folder
      description: >
        Creates a sheet from scratch or from the specified template in the
        specified folder.
      operationId: create-sheet-in-folder
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/include'
      requestBody:
        description: Sheet to create.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/SheetToCreate'
                - $ref: '#/components/schemas/SheetToCreateFromTemplate'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Create sheet in folder

            // Specify properties of the first column

            Column columnA = new Column

            {
              Title = "Favorite",
              Primary = false,
              Type = ColumnType.CHECKBOX,
              Symbol = Symbol.STAR
            };


            // Specify properties of the second column

            Column columnB = new Column

            {
              Title = "Primary Column",
              Primary = true,
              Type = ColumnType.TEXT_NUMBER
            };


            // Create sheet in folder (specifying the 2 columns to include in
            the sheet)

            Sheet newSheet =
            smartsheet.FolderResources.SheetResources.CreateSheet(
              3734419270854532,                   // long folderId
              new Sheet
                {
                  Name = "new sheet title",
                  Columns = new Column[] { columnA, columnB }
                }
            );


            // Sample 2: Create sheet in folder from template

            // Specify name for the sheet and Id of the template

            Sheet sheetSpecification = new Sheet

            {
              Name = "new sheet title",
              FromId = 7679398137620356     // template Id
            };


            // Option 1: Omit 'include' parameter

            Sheet newSheet =
            smartsheet.FolderResources.SheetResources.CreateSheetFromTemplate(
              3734419270854532,               // long folderId
              sheetSpecification,
              null                            // IEnumerable<TemplateInclusion> include
            );


            // Option 2: Include ATTACHMENTS, DATA, and DISCUSSIONS

            Sheet newSheet =
            smartsheet.FolderResources.SheetResources.CreateSheetFromTemplate(
              3734419270854532,               // long folderId
              sheetSpecification,
              new TemplateInclusion[] {
                TemplateInclusion.ATTACHMENTS,
                TemplateInclusion.DATA,
                TemplateInclusion.DISCUSSIONS }
            );
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: Create sheet in folder

            curl https://api.smartsheet.com/2.0/folders/{folderId}/sheets \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d
            '{"name":"newsheet","columns":[{"title":"Favorite","type":"CHECKBOX","symbol":"STAR"},
            {"title":"Primary Column", "primary":true,"type":"TEXT_NUMBER"}]}'


            // Sample 2: Create sheet in folder from template

            curl
            'https://api.smartsheet.com/2.0/folders/{folderId}/sheets?include=data,attachments,discussions'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"name":"newsheet", "fromId": 7679398137620356}'
        - lang: Java
          label: Java
          source: >
            // Sample 1: Create sheet in folder

            // Specify properties of the first column

            Column columnA = new Column()
                    .setTitle("Favorite")
                    .setType(ColumnType.CHECKBOX)
                    .setSymbol(Symbol.STAR);

            // Specify properties of the second column

            Column columnB = new Column()
                    .setTitle("Primary Column")
                    .setType(ColumnType.TEXT_NUMBER)
                    .setPrimary(true);

            // Create sheet in folder (specifying the 2 columns to include in
            the sheet)

            Sheet newSheet = new Sheet();
                    newSheet.setName("new sheet title");
                    newSheet.setColumns(Arrays.asList(columnA, columnB));

            smartsheet.sheetResources().createSheetInFolder(
                    3734419270854532L,  // long folderId
                    newSheet
                    );

            // Sample 2: Create sheet in folder from template

            // Specify name for the sheet and Id of the template

            Sheet sheet = new Sheet();

            sheet.setFromId(7679398137620356L);     // long templateId

            sheet.setName("newsheet");


            // Omit 'include' parameter

            Sheet results =
            smartsheet.sheetResources().createSheetInFolderFromTemplate(
                    3734419270854532L,                  // long folderId
                    sheet,
                    null                                // EnumSet<SheetTemplateInclusion> includes
                    );

            // Include ATTACHMENTS, DATA, and DISCUSSIONS

            Sheet results =
            smartsheet.sheetResources().createSheetInFolderFromTemplate(
                    3734419270854532L,                 // long folderId
                    sheet,
                    EnumSet.of(
                        SheetTemplateInclusion.ATTACHMENTS,
                        SheetTemplateInclusion.DATA,
                        SheetTemplateInclusion.DISCUSSIONS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Create sheet in folder
            // Specify sheet properties
            var sheet = {
              "name": "newsheet",
              "columns": [
                {
                  "title": "Favorite",
                  "type": "CHECKBOX",
                  "symbol": "STAR"
                },
                {
                  "title": "Primary Column",
                  "primary": true,
                  "type": "TEXT_NUMBER"
                }
              ]
            };

            // Set options
            var options = {
              folderId: 3734419270854532,
              body: sheet
              };

            // Create sheet in folder
            smartsheet.sheets.createSheetInFolder(options)
              .then(function(newSheet) {
                console.log(newSheet);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 2: Create sheet in folder from template
            // Specify the directive
            var sheet = {
              "name": "newsheet",
              "fromId": 7679398137620356
            };

            // Set options
            var options = {
              body: sheet,
              folderId: 3734419270854532
            };

            // Create sheet from template in the specified folder
            smartsheet.sheets.createSheetFromExisting(options)
              .then(function(data) {
                console.log(data);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: Create sheet in folder

            sheet_spec = smartsheet.models.Sheet({
              'name': 'newsheet',
              'columns': [{
                    'title': 'Favorite',
                    'type': 'CHECKBOX',
                    'symbol': 'STAR'
                  }, {
                    'title': 'Primary Column',
                    'primary': True,
                    'type': 'TEXT_NUMBER'
                  }
              ]
            })

            response = smartsheet_client.Folders.create_sheet_in_folder(
              3734419270854532,       # folder_id
              sheet_spec)
            new_sheet = response.result


            # Sample 2: Create sheet in folder from template

            response =
            smartsheet_client.Folders.create_sheet_in_folder_from_template(
              3734419270854532,                   # folder_id
              smartsheet.models.Sheet({
                'name': 'newsheet',
                'from_id': 7679398137620356       # template_id
              })
            )
      responses:
        '200':
          description: >-
            Result object containing a Sheet object for newly created sheet,
            corresponding to what was specified in the request.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/SheetCreated'
                          - $ref: '#/components/schemas/SheetCreatedFromTemplate'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /folders/{folderId}/sheets/import:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/folderId'
    post:
      summary: Import Sheet into Folder
      description: >
        Imports CSV or XLSX data into a new sheet in the specified folder.


        Note the following:

        * Both sheetName and the file name must use ASCII characters.

        * The source data must be basic text. To include rich formula data,
        import and create a sheet first, and then use Update Rows. To work with
        images, see Cell Images.

        * XLS is not supported. You must use XLSX.

        * Hierarchical relationships between rows in an external file won't
        import.
      operationId: import-sheet-into-folder
      tags:
        - imports
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Disposition'
        - $ref: '#/components/parameters/parameters-Content-Type'
        - $ref: '#/components/parameters/sheetName'
        - $ref: '#/components/parameters/headerRowIndex'
        - $ref: '#/components/parameters/primaryColumnIndex'
      requestBody:
        description: Binary content for the CSV / XLSX file.
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Result object containing a Sheet object for imported sheet.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SheetImported'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Sheet sheet =
            smartsheet.FolderResources.SheetResources.ImportXlsSheet(
              8999900887877508,       // folderId
              "D:/ProgressReport.xlsx",
              null,                   // sheetName defaults to file name unless specified
              0,                      // headerRowIndex
              null                    // primaryColumnIndex
            );
        - lang: cURL
          label: cURL
          source: >
            curl 
            https://api.smartsheet.com/2.0/folders/{folderId}/sheets/import?sheetName=MarketingProgressReport&headerRowIndex=0&primaryColumnIndex=0
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Disposition: attachment" \

            -H "Content-Type: text/csv" \

            -X POST \

            --data-binary @ProgressReport.csv
        - lang: Java
          label: Java
          source: |
            Sheet sheet = smartsheet.sheetResources().importXlsxInFolder(
                    8999900887877508L,           // long folderId
                    "D:/ProgressReport.xlsx",
                    "MarketingProgressReport",
                    0,                          // headerRowIndex
                    0                           // primaryColumnIndex
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Import CSV into folder
            // Set options
            var options = {
              folderId: 8999900887877508,
              queryParameters: {
                sheetName: 'MarketingProgressReport'
              },
              path: "D:/ProgressReport.csv"
            };

            // Import CSV as sheet into folder
            smartsheet.sheets.importCsvSheetIntoFolder(options)
              .then(function(attachment) {
                console.log(attachment);
              })
              .catch(function(error) {
                console.log(error);
              });

            //Sample 2: Import XLSX into folder
            // Set options
            var options = {
              folderId: 8999900887877508,
              queryParameters: {
                sheetName: 'MarketingProgressReport'
              },
              path: "D:/ProgressReport.xlsx"
            };

            // Import XLSX as sheet into Folder
            smartsheet.sheets.importXlsxSheetIntoFolder(options)
              .then(function(attachment) {
                console.log(attachment);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            imported_sheet = smartsheet_client.Folders.import_xlsx_sheet(
              8999900887877508,           # folder_id
              'D:/ProgressReport.xlsx',
              'MarketingProgressReport',  # sheet_name
              header_row_index=0
            )
  /folders/personal:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Contents
      description: >
        > **Deprecated** since March 25, 2025, and will be removed.


        Gets a nested list of all Home objects shared to the user, including 

        dashboards, folders, reports, sheets, and templates, as shown on the
        "Home"

        tab.
      tags:
        - home
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: list-home-contents
      parameters:
        - $ref: '#/components/parameters/folderWorkspaceInclude'
      responses:
        '200':
          description: A single Home object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Home'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |
            curl 'https://api.smartsheet.com/2.0/folders/personal' \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json"
  /groups:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: list-groups
      summary: List Org Groups
      description: >
        Gets a list of all groups in an organization account. To fetch the
        members of an individual group, use the [Get
        Group](/api/smartsheet/openapi/groups/get-group) operation.
      tags:
        - groups
      security:
        - APIToken: []
        - OAuth2:
            - READ_USERS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/modifiedSince'
        - $ref: '#/components/parameters/numericDates'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >
            IndexResult object containing an array of [Group
            objects](/api/smartsheet/openapi/groups/group)
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: List of Groups
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Group> groups =
            smartsheet.GroupResources.ListGroups(
              null                    // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/groups \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            // Omit pagination parameters
            PagedResult<Group> groups = smartsheet.groupResources().listGroups(
                    null        // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.groups.listGroups()
              .then(function(groupList) {
                console.log(groupList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Groups.list_groups(include_all=True)
            groups = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Groups.list_groups(
              page_size=10,
              page=1)
            pages = response.total_pages
            groups = response.data
    post:
      operationId: add-group
      summary: Add Group
      description: >
        Creates a new group.


        **_This operation is only available to group administrators and system
        administrators._**
      tags:
        - groups
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      requestBody:
        description: >
          [Group object](/api/smartsheet/openapi/groups/group), limited to the
          following attributes:

          * name (required) -- must be unique within the organization account

          * description (optional)

          * members (optional) -- array of [GroupMember
          objects](/api/smartsheet/openapi/groupmembers/groupmember), each
          limited to the following attribute:
              * email
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupCreate'
      responses:
        '200':
          description: >
            Result object, containing a [Group
            object](/api/smartsheet/openapi/groups/group) for the newly created
            group
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Group'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Create group member

            GroupMember memberSpecification = new GroupMember { Email =
            "john.doe@smartsheet.com" };


            // Add member to group

            Group groupSpecification = new Group

            {
              Name = "API-created Group",
              Description = "Group created via API",
              Members = new GroupMember[] { memberSpecification }
            };


            // Create group

            Group newGroup =
            smartsheet.GroupResources.CreateGroup(groupSpecification);
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/groups \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{ "name": "API-created Group", "description": "Group created via
            API", "members": [{ "email": "john.doe@smartsheet.com" }]}'
        - lang: Java
          label: Java
          source: >
            // Create group member

            GroupMember memberSpecification = new GroupMember();

            memberSpecification.setEmail("john.doe@smartsheet.com");


            // Add member to group

            Group groupSpecification = new Group();

            groupSpecification.setDescription("Group created via API")
                    .setMembers(Arrays.asList(memberSpecification))
                    .setName("API-created Group");

            // Create group

            Group newGroup =
            smartsheet.groupResources().createGroup(groupSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify group
            var group = {
              "name": "API-created Group",
              "description": "Group created via API",
              "members": [
                {
                  "email": "john.doe@smartsheet.com"
                }
              ]
            };

            // Set options
            var options = {
              body: group
            };

            // Create group
            smartsheet.groups.createGroup(options)
              .then(function(newGroup) {
                console.log(newGroup);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            new_group = smartsheet_client.Groups.create_group(
              smartsheet.models.Group({
                'name': 'API-created Group',
                'description': 'Group created via API',
                'members': smartsheet.models.GroupMember({
                  'email': 'john.doe@smartsheet.com'
                })
              })
            )
  /groups/{groupId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/groupId'
    get:
      operationId: get-group
      summary: Get Group
      description: >-
        Gets information about an array of [Group
        Members](/api/smartsheet/openapi/groupmembers/groupmember) for the group
        specified in the URL.
      tags:
        - groups
      security:
        - APIToken: []
        - OAuth2:
            - READ_USERS
      responses:
        '200':
          description: >
            [Group](/api/smartsheet/openapi/groups/group) object that includes
            the list of
            [GroupMember](/api/smartsheet/openapi/groupmembers/groupmember)
            objects
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Group'
                  - type: object
                    properties:
                      members:
                        description: List of Group Members
                        type: array
                        items:
                          $ref: '#/components/schemas/GroupMember'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Group group = smartsheet.GroupResources.GetGroup(
              6932724448552836            // long groupId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/groups/{groupId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Group group = smartsheet.groupResources().getGroup(
                    6932724448552836L        // long groupId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              id: 6932724448552836 // Id of Group
            };

            // Get group
            smartsheet.groups.getGroup(options)
              .then(function(group) {
                console.log(group);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            group = smartsheet_client.Groups.get_group(
              6932724448552836)       # group_id
            # group is an instance of smartsheet.models.Group
    put:
      operationId: update-group
      summary: Update Group
      description: >
        Updates the Group specified in the URL.


        **_This operation is only available to group administrators and system
        administrators._**
      tags:
        - groups
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      requestBody:
        description: >
          Group object, limited to the following attributes:

          * description (optional)

          * name (optional) -- must be unique within the organization account

          * ownerId (optional): Id of an admin user to whom the group ownership
          is transferred
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupUpdate'
      responses:
        '200':
          description: >-
            Result object containing the [Group
            object](/api/smartsheet/openapi/groups/group) for the updated group
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Group'
        '400':
          $ref: '#/components/responses/400'
        '500':
          $ref: '#/components/responses/500'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify the name and description of the group

            Group groupSpecification = new Group

            {
              Id = 2331373580117892,
              Name = "Renamed Group",
              Description = "Some new description"
            };


            // Update group

            Group updatedGroup =
            smartsheet.GroupResources.UpdateGroup(groupSpecification);
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/groups/{groupId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{ "name": "Renamed Group", "description": "Some new description"
            }'
        - lang: Java
          label: Java
          source: >
            // Specify the name and description of the group

            Group groupSpecification = new Group(2331373580117892L);
                    groupSpecification.setDescription("Some new description")
                    .setName("Renamed Group");

            // Update group

            Group updatedGroup =
            smartsheet.groupResources().updateGroup(groupSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify the name and description of the group
            var group = {
              "name": "Renamed Group",
              "description": "Some new description"
            };

            // Set options
            var options = {
              id: 2331373580117892, // Id of Group
              body: group
              };

            // Update group
            smartsheet.groups.updateGroup(options)
              .then(function(updatedGroup) {
                console.log(updatedGroup);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_group = smartsheet_client.Groups.update_group(
              2331373580117892,       # group_id
              smartsheet.models.Group({
                'name': 'Renamed Group',
                'description': 'Some new description'
              })
            )
    delete:
      operationId: delete-group
      summary: Delete Group
      description: >
        Deletes the group specified in the URL.


        **_This operation is only available to group administrators and system
        administrators._**
      tags:
        - groups
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      responses:
        '200':
          description: >
            **_This operation is asynchronous,_** _meaning group members may
            retain their sharing access for a brief period of time after the
            call returns. For small groups with limited sharing, the operation
            should complete quickly (within a few seconds). For large groups
            with many shares, this operation could possibly take more than a
            minute to complete._
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.GroupResources.DeleteGroup(
              6932724448552836            // long groupId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/groups/{groupId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.groupResources().deleteGroup(
                    6932724448552836L        // long groupId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              id: 6932724448552836 // Id of Group
            };

            // Delete group
            smartsheet.groups.deleteGroup(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Groups.delete_group(
                6932724448552836)       # group_id
  /groups/{groupId}/members:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/groupId'
    post:
      operationId: add-group-members
      summary: Add Group Members
      description: >
        Adds one or more members to a group.


        **_This operation supports both single-object and bulk semantics. For
        more information, see Optional Bulk Operations._**


        If called with a single [GroupMember
        object](/api/smartsheet/openapi/groupmembers/groupmember), and that
        group member already exists, error code **1129** is returned.

        If called with an array of [GroupMember
        objects](/api/smartsheet/openapi/groupmembers/groupmember), any users
        specified in the array that are already group members are ignored and
        omitted from the response.


        **_This operation is only available to group administrators and system
        administrators._**
      tags:
        - groupMembers
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/GroupMember'
                - type: array
                  items:
                    $ref: '#/components/schemas/GroupMember'
      responses:
        '200':
          description: >
            Returns a Result object containing the members added to the group --
            either a single
            [GroupMember](/api/smartsheet/openapi/groupmembers/groupmember) or
            array of
            [GroupMember](/api/smartsheet/openapi/groupmembers/groupmember)
            objects, corresponding to what was specified in the request.


            **_This operation is asynchronous,_** _meaning the users may not yet
            have sharing access to sheets for a period of time after this
            operation returns. For small groups with limited sharing, the
            operation should complete quickly (within a few seconds). For large
            groups with many shares, this operation could possibly take more
            than a minute to complete._
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/GroupMember'
                          - type: array
                            items:
                              $ref: '#/components/schemas/GroupMember'
        default:
          description: >
            If an error occurs because the request specified one or more
            alternate email addresses, please retry using the primary email
            address.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Create group member

            GroupMember memberSpecification = new GroupMember { Email =
            "jane.doe@smartsheet.com" };


            // Add members to group

            IList<GroupMember> newMembers =
            smartsheet.GroupResources.AddGroupMembers(
              7917992160847748,           // long groupId
              new GroupMember[] { memberSpecification }
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/groups/{groupId}/members \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d "[{ \"email\": \"jane.doe@smartsheet.com\" }]"
        - lang: Java
          label: Java
          source: >
            // Create group member

            GroupMember memberSpecification = new GroupMember();
                    memberSpecification.setEmail("jane.doe@smartsheet.com");

            // Add members to group

            List<GroupMember> newMembers =
            smartsheet.groupResources().memberResources().addGroupMembers(
                    7917992160847748L,       // long groupId
                    Arrays.asList(memberSpecification)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify group members
            var members = [{ "email": "jane.doe@smartsheet.com" }];

            // Set options
            var options = {
              groupId: 7917992160847748,
              body: members
              };

            // Add members to group
            smartsheet.groups.addGroupMembers(options)
              .then(function(newMembers) {
                console.log(newMembers);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            new_members = smartsheet_client.Groups.add_members(
              7917992160847748,       # group_id
              [smartsheet.models.GroupMember({'email': 'jane.doe@smartsheet.com'})]
            )
  /groups/{groupId}/members/{userId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/groupId'
      - $ref: '#/components/parameters/userId'
    delete:
      operationId: delete-group-members
      summary: Delete Group Members
      description: >
        Removes a member from a group.


        **_This operation is only available to group administrators and system
        administrators._**
      tags:
        - groupMembers
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      responses:
        '200':
          description: >
            **_This operation is asynchronous,_** _meaning the users may not yet
            have sharing access to sheets for a period of time after this
            operation returns. For small groups with limited sharing, the
            operation should complete quickly (within a few seconds). For large
            groups with many shares, this operation could possibly take more
            than a minute to complete._
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.GroupResources.RemoveGroupMember(
              7917992160847748,           // long groupId
              1539725208119172            // long userId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/groups/{groupId}/members/{userId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.groupResources().memberResources().deleteGroupMember(
                    7917992160847748L,       // long groupId
                    1539725208119172L)       // long userId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              groupId: 7917992160847748,
              userId: 1539725208119172
            };

            // Remove member from group
            smartsheet.groups.removeGroupMember(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Groups.remove_member(
              7917992160847748,       # group_id
              1539725208119172)       # group_member_id
  /home/folders:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Folders in Home
      description: >
        > **IMPORTANT:** The `GET /home/folders` method is deprecated and will
        be removed. To adapt to this change, please see [Migrate from `GET
        /home/folders`](/api/smartsheet/guides/updating-code/migrating-from-get-home-folders)


        Lists the folders in your **Sheets** folder. The list contains an
        abbreviated Folder object for each folder.
      tags:
        - home
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: home-list-folders
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: IndexResult object containing an array of Folder objects.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Folder'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Folder> folders =
            smartsheet.HomeResources.FolderResources.ListFolders(
              null                    // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/home/folders \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Folder> folders =
            smartsheet.homeResources().folderResources().listFolders(
                    null            // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.home.listFolders()
              .then(function(folderList) {
                console.log(folderList);
              })
              .catch(function(error) {
                console.log(error);
              })
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Home.list_folders(include_all=True)
            home_sheets_folders = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Home.list_folders(
              page_size=5,
              page=1)
            pages = response.total_pages
            folders = response.data
    post:
      summary: Create Folder
      description: |
        > **Deprecated** since March 25, 2025, and will be removed.

        Creates a new folder.
      operationId: create-home-folder
      tags:
        - home
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: Folder to create.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Folder'
      responses:
        '200':
          description: Result object containing a Folder object for newly created folder.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Folder'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set folder name

            Folder folderSpecification = new Folder { Name = "New folder" };


            // Create folder in "Sheets" folder (Home)

            Folder newFolder =
            smartsheet.HomeResources.FolderResources.CreateFolder(folderSpecification);
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/home/folders \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '{"name": "New folder"}'
        - lang: Java
          label: Java
          source: >
            // Set folder name

            Folder folderSpecification = new Folder();

            folderSpecification.setName("New Folder");


            // Create folder in "Sheets" folder (Home)

            Folder newFolder =
            smartsheet.homeResources().folderResources().createFolder(folderSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Set folder name
            var folder = {
              "name": "New folder"
            };

            // Set options
            var options = {
              body: folder
            };

            // Create folder in "Sheets" folder (Home)
            smartsheet.home.createFolder(options)
              .then(function(newFolder) {
                console.log(newFolder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            new_folder = smartsheet_client.Home.create_folder('New Folder')
  /imageurls:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Content-Type'
    post:
      operationId: listImageUrls
      summary: List Image URLs
      description: >-
        Posts an array of Image Url objects that can be used to retrieve the
        specified cell images.
      tags:
        - cellImages
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                allOf:
                  - $ref: '#/components/schemas/ImageUrl'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ImageUrlMap'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Build list of image urls

            ImageUrl[] imageUrls = new ImageUrl[] { new ImageUrl { ImageId =
            "jpbGklqdfZuL4Jw-kZhdZA" } };


            string temporaryUrl =
            smartsheet.ImageUrlResources.GetImageUrls(imageUrls).ImageUrls[0].Url;
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/imageurls \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{"imageId": "e1znCxhuZo_soEJtUmmX_A","height":40,"width":
            20},{"imageId": "g2jdKdfhQa_abKJmPnhC_B","height":100,"width": 50}]'
        - lang: Java
          label: Java
          source: |
            // Build list of image urls
            ImageUrl imageUrl = new ImageUrl()
                    .setImageId("jpbGklqdfZuL4Jw-kZhdZA");
                    List<ImageUrl> imageUrls = Arrays.asList(imageUrl);

                    String temporaryUrl = smartsheet.imageUrlResources().getImageUrls(imageUrls).getImageUrls().get(0).getUrl();
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              body: [{
                imageId: "jpbGklqdfZuL4Jw-kZhdZA",
                width: 256,
                height: 256
              }]
            };

            // List image URLs
            smartsheet.images.listImageUrls(options)
              .then(function(temporaryUrls) {
                console.log(temporaryUrls);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            imageUrl = smartsheet.models.ImageUrl(
              {
                "imageId": 'jpbGklqdfZuL4Jw-kZhdZA',
                "height": 256,
                "width": 256
              }
            )

            response = smartsheet_client.Images.get_image_urls([imageUrl])
            url = response.image_urls[0].url
  /reports:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: getReports
      summary: List Reports
      description: List all Reports accessible to the user.
      tags:
        - reports
      security:
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/modifiedSince'
      responses:
        '200':
          description: >
            Object containing an array of all accessible reports, referenced by
            their ID, name, access level, and summary report flag values.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: >-
                          List of all accessible reports, referenced by their
                          ID, name, access level, and summary report flag
                          values.
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: number
                              description: The report's unique identifier.
                              example: 987654321
                            name:
                              type: string
                              description: The report's name.
                              example: Q2 Earnings
                            accessLevel:
                              $ref: '#/components/schemas/AccessLevel'
                            permalink:
                              type: string
                              description: URL to the report in Smartsheet.
                              example: >-
                                https://app.smartsheet.com/reports/c8gJxw87cXpRCvCC5PPw6jFhFRrf5r8PxCrxvW21
                            isSummaryReport:
                              type: boolean
                              description: >-
                                It is `true` if the report is a sheet summary;
                                otherwise it is a row report.
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            PaginatedResult<Report> reports =
            smartsheet.ReportResources.ListReports(
              null,               // PaginationParameters
              null                // Nullable<DateTime> modifiedSince = null
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/reports \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            PagedResult<Report> reports =
            smartsheet.reportResources().listReports(
                    null,               // PaginationParameters
                    null                // Date modifiedSince
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.reports.listReports()
              .then(function(reportList) {
                console.log(reportList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Reports.list_reports(include_all=True)
            reports = response.data
  /reports/{reportId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept'
      - $ref: '#/components/parameters/accessApiLevel'
      - $ref: '#/components/parameters/reportId'
    get:
      summary: Get Report
      description: Gets a report based on the specified ID
      operationId: getReport
      parameters:
        - $ref: '#/components/parameters/reportInclude'
        - $ref: '#/components/parameters/reportExclude'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/reportLevel'
      tags:
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: The Report that was loaded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
            application/vnd.ms-excel:
              schema:
                type: string
                format: binary
                description: The Report in Excel format
            text/csv:
              schema:
                type: string
                format: binary
                description: The Report in CSV format
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Omit 'include', 'pageSize', and 'page' parameters

            Report report = smartsheet.ReportResources.GetReport(
              4583173393803140,           // long reportId
              null,                       // IEnumerable<ReportInclusion> include
              null,                       // int pageSize
              null                        // int page
            );


            // Sample 2: Specify 'include' parameter with value of "ATTACHMENTS"
            and "DISCUSSIONS", 'pageSize' parameter with value of "500", and
            'page' of value "2"

            Report report = smartsheet.ReportResources.GetReport(
              4583173393803140,           // long reportId
              new ReportInclusion[] {
                ReportInclusion.ATTACHMENTS,
                ReportInclusion.DISCUSSIONS
              },
              500,                        // int pageSize
              2                           // int page
            );


            // Sample 3: Get report as Excel

            smartsheet.ReportResources.GetReportAsExcel(
              3882962191181700,               // long reportId
              outputStream                    // BinaryWriter
            );


            // Sample 4: Get report as CSV

            smartsheet.ReportResources.GetReportAsCSV(
              3882962191181700,           // long reportId
              outputStream                // BinaryWriter
            );
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: Get report

            curl
            https://api.smartsheet.com/2.0/reports/{reportId}?level=3&include=objectValue
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"


            // Sample 2: Get report as Excel

            curl https://api.smartsheet.com/2.0/reports/{reportId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Accept: application/vnd.ms-excel" \

            -o output.xlsx


            // Sample 3: Get report as CSV

            curl https://api.smartsheet.com/2.0/reports/{reportId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Accept: text/csv" \

            -o output.csv
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'include', 'pageSize', and 'page' parameters

            Report report = smartsheet.reportResources().getReport(
                    4583173393803140L,      // long reportId
                    null,                   // EnumSet<ReportInclusion> includes
                    null,                   // int pageSize
                    null                    // int page
                    );

            // Sample 2: Specify 'include' parameter with value of "ATTACHMENTS"
            and "DISCUSSIONS", 'pageSize' parameter with value of "500", and
            'page' of value "2"

            Report report = smartsheet.reportResources().getReport(
                    4583173393803140L,      // long reportId
                    EnumSet.of(
                        ReportInclusion.ATTACHMENTS,
                        ReportInclusion.DISCUSSIONS),
                    500,                    // int pageSize
                    2                       // int page
                    );

            // Sample 3: Get report as Excel

            smartsheet.reportResources().getReportAsExcel(
                    3882962191181700L,       // long reportId
                    outputStream
                    );

            // Sample 4: Get report as CSV

            smartsheet.reportResources().getReportAsCsv(
                    3882962191181700L,       // long reportId
                    outputStream
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Get report
            // Set options
            var options = {
              id: 4583173393803140 // Id of Report
            };

            // Get report
            smartsheet.reports.getReport(options)
              .then(function(report) {
                console.log(report);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 2: Get report as Excel
            var fs = require("fs")

            // Set options
            var options = {
              id: 3882962191181700 // Id of Report
            };

            // Get sheet
            smartsheet.reports.getReportAsExcel(options)
              .then(function(fileContents) {
                // Write report to file
                fs.writeFile('output.xlsx', fileContents, 'binary', (err) => {
                  if (err) throw err;
                  console.log('The report has been saved!');
                });
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 3: Get report as CSV
            var fs = require("fs")

            // Set options
            var options = {
              id: 3882962191181700 // Id of Report
            };

            // Get sheet
            smartsheet.reports.getReportAsCSV(options)
              .then(function(fileContents) {
                // Write report to file
                fs.writeFile('output.csv', fileContents, (err) => {
                  if (err) throw err;
                  console.log('The report has been saved!');
                });
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Get report
            report = smartsheet_client.Reports.get_report(
              4583173393803140)       # report_id

            # Sample 2: Get report as Excel
            # Download file with filename suggested by API
            smartsheet_client.Reports.get_report_as_excel(
              3882962191181700,       # report_id
              download_folder_path
            )

            # Specify custom filename for the downloaded file
            smartsheet_client.Reports.get_report_as_excel(
              3882962191181700,       # report_id
              download_folder_path,
              'MyFileName.xslx'
            )

            # Sample 3: Get report as CSV
            # Download file with filename suggested by API
            smartsheet_client.Reports.get_report_as_csv(
              3882962191181700,       # report_id
              download_folder_path
            )

            # Specify custom filename for the downloaded file
            smartsheet_client.Reports.get_report_as_csv(
              3882962191181700,       # report_id
              download_folder_path,
              'CallMeAl.csv'
            )
  /reports/{reportId}/emails:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/reportId'
    post:
      summary: Send report via email
      description: >-
        Sends the report as a PDF attachment via email to the designated
        recipients
      operationId: sendReportViaEmail
      tags:
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SheetEmail'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify recipients

            Recipient[] recipientSpecification = new Recipient[] {
              new Recipient { Email = "john.doe@smartsheet.com" },
              new Recipient { GroupId = 2258118617917316 }
            };


            // Configure email

            SheetEmail sheetEmail = new SheetEmail {
              SendTo = recipientSpecification,
              Subject = "Check this report out!",
              Message = "Here is the report I mentioned in our meeting",
              CcMe = false,
              Format = SheetEmailFormat.PDF,
              FormatDetails = new FormatDetails { PaperSize = PaperSize.A4 }
            };


            // Send report via email

            smartsheet.ReportResources.SendReport (8130994621441924,
            sheetEmail);       // long reportId
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/reports/{reportId}/emails \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"sendTo" : [{"email": "john.doe@smartsheet.com"}, {"groupId":
            2258118617917316}], "subject": "Check these rows out!", "message":
            "Here are the rows I mentioned in our meeting", "ccMe": false,
            "format": "PDF", "formatDetails": {"paperSize": "A4"}}'
        - lang: Java
          label: Java
          source: |
            // Specify an individual recipient
            RecipientEmail recipientEmail = new RecipientEmail()
                    .setEmail("john.doe@smartsheet.com");

            // Specify a group recipient
            RecipientGroup recipientGroup = new RecipientGroup()
                    .setGroupId(2258118617917316L);

            // Set recipients
            List<Recipient> recipientList = Arrays.asList(
                    recipientEmail,
                    recipientGroup
                    );

            // Set format details
            FormatDetails formatDetails = new FormatDetails()
                    .setPaperSize(PaperSize.A0);

            // Configure email
            SheetEmail emailSpecification = new SheetEmail();
            emailSpecification.setFormat(SheetEmailFormat.PDF);
            emailSpecification.setFormatDetails(formatDetails)
                    .setSendTo(recipientList)
                    .setSubject("Check this report out!")
                    .setMessage("Here is the report I mentioned in our meeting")
                    .setCcMe(false);

            // Send report via email
            smartsheet.reportResources().sendReport(
                    8130994621441924L,      // long reportId
                    emailSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Configure email
            var email = {
              "sendTo": [
                {
                  "email": "john.doe@smartsheet.com"
                },
                {
                  "groupId": 2258118617917316
                }
              ],
              "subject": "Check these rows out!",
              "message": "Here are the rows I mentioned in our meeting",
              "ccMe": false,
              "format": "PDF",
              "formatDetails": {
                "paperSize": "A4"
              }
            };

            // Set options
            var options = {
              body: email,
              reportId: 8130994621441924
            };

            // Send report via email
            smartsheet.reports.sendReportViaEmail(options)
              .then(function(data) {
                console.log(data);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Reports.send_report(
              8130994621441924,       # report_id
              smartsheet.models.SheetEmail({
                'send_to': smartsheet.models.Recipient({
                  'email': 'john.doe@smartsheet.com'
                }),
                'subject': 'Check this report out!',
                'message': 'Here is the report I mentioned in our meeting.',
                'cc_me': False,
                'format': 'PDF',
                'format_details': smartsheet.models.FormatDetails({
                  'paper_size': 'A4'
                })
              })
            )
      responses:
        '200':
          description: Result Object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /reports/{reportId}/publish:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/reportId'
    get:
      summary: Gets a Report's publish settings
      description: Get a Report's publish settings based on the specified ID
      operationId: getReportPublish
      tags:
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: The Report's publish settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportPublish'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.ReportResources.GetPublishStatus(
              3901932860401540    // reportId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/reports/{reportId}/publish \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            smartsheet.reportResources().getPublishStatus(
                    3901932860401540L    // reportId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              reportId: 3901932860401540
            };

            // Get report publish status
            smartsheet.reports.getReportPublishStatus(options)
              .then(function(status) {
                console.log(status);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            status = smartsheet_client.Reports.get_publish_status(
              1653067851556740)       # report_id
    put:
      summary: Set a Report's publish status
      description: >-
        Sets the publish status of the report and returns the new status,
        including the URL of any enabled publishing.
      operationId: SetReportPublish
      tags:
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportPublish'
      responses:
        '200':
          description: ReportPublish object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ItemResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/ReportPublish'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            ReportPublish reportPublish = new ReportPublish();
            reportPublish.ReadOnlyFullEnabled = true;
            reportPublish.ReadOnlyFullAccessibleBy = "ALL";
            smartsheet.ReportResources.UpdatePublishStatus(
              1653087851556740,    // reportId
              reportPublish
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/reports/{reportId}/publish \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{"readOnlyFullEnabled": true, "readOnlyFullAccessibleBy":
            "ORG"}'
        - lang: Java
          label: Java
          source: |
            ReportPublish reportPublish = new ReportPublish();
            reportPublish.setReadOnlyFullEnabled(true);
            reportPublish.setReadOnlyFullAccessibleBy("ALL");
            smartsheet.reportResources().updatePublishStatus(
                    1653087851556740L,    // reportId
                    reportPublish
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              reportId: 1653087851556740,
              body: {
                readOnlyFullEnabled: true,
                readOnlyFullAccessibleBy: "ALL"
              }
            };

            // Set report publish status
            smartsheet.reports.setReportPublishStatus(options)
              .then(function(status) {
                console.log(status);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Reports.set_publish_status(
              1653067851556740,       # report_id
              smartsheet.models.ReportPublish({
                'read_only_full_enabled': True
              })
            )
  /reports/{reportId}/shares:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/reportId'
    post:
      summary: Share Report
      description: Shares a Report with the specified users and groups.
      operationId: share-report
      tags:
        - sharing
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      parameters:
        - $ref: '#/components/parameters/sendEmail'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Share'
                - type: array
                  items:
                    $ref: '#/components/schemas/Share'
      responses:
        '200':
          description: >
            Result object containing either a single Share object or an array of
            Share objects, corresponding

            to what was specified in the request. All shares have scope=ITEM.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Share'
                          - type: array
                            items:
                              $ref: '#/components/schemas/Share'
        '400':
          description: >
            If called with a single Share object, and that user or group share
            already exists, error code 1025 is returned.

            If called with an array of Share objects, and one or more user or
            group shares in the array already exist,

            they are ignored and omitted from the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify share (to one user as Editor)

            Share[] shareSpecification = new Share[] { new Share
              {
                Email = "jane.doe@smartsheet.com",
                AccessLevel = AccessLevel.EDITOR
              }
            };


            // Share report

            IList<Share> addressList =
            smartsheet.ReportResources.ShareResources.ShareTo(
              665829219035012,            // long reportId
              shareSpecification,
              true                        // Nullable<bool> sendEmail
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/reports/{reportId}/shares?sendEmail=true'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{"email": "jane.doe@smartsheet.com", "accessLevel": "EDITOR"}]'
        - lang: Java
          label: Java
          source: >
            // Specify share (to one user as Editor)

            Share shareSpecification = new Share()
                    .setEmail("jane.doe@smartsheet.com")
                    .setAccessLevel(AccessLevel.EDITOR);

            // Share report

            List<Share> addressList =
            smartsheet.reportResources().shareResources().shareTo(
                    665829219035012L,        // long reportId
                    Arrays.asList(shareSpecification),
                    true                     // Boolean sendEmail
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify share (to one user as Editor)
            var share = [
              {
                "email": "jane.doe@smartsheet.com",
                "accessLevel": "EDITOR"
              }
            ];

            // Set options
            var options = {
              reportId: 665829219035012,
              body: share
              };

            // Share report
            smartsheet.reports.share(options)
              .then(function(addressList) {
                console.log(addressList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Reports.share_report(
              665829219035012,        # report_id
              smartsheet.models.Share({
                'access_level': 'EDITOR',
                'email': 'jane.doe@smartsheet.com'
              })
            )
    get:
      summary: List Report Shares
      description: >
        Gets a list of all users and groups to whom the specified Report is
        shared, and their access level.

        This operation supports query string parameters for pagination of
        results.
      operationId: list-report-shares
      tags:
        - sharing
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/sharingInclude'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >-
            IndexResult object containing an array of Share objects. By default,
            this operation returns only item-level shares (scope=ITEM). Use the
            sharingInclude parameter to request that workspace-level shares
            (include=workspaceShares) also be returned.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Share> shares =
            smartsheet.ReportResources.ShareResources.ListShares(
              665829219035012,        // long reportId
              null,                   // PaginationParameters
              null                    // ShareScope shareScope
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/reports/{reportId}/shares \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Share> shares =
            smartsheet.reportResources().shareResources().listShares(
                    665829219035012L,        // long reportId
                    null,                    // PaginationParameters
                    true                     // Boolean includeWorkspaceShares
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              reportId: 665829219035012
            };

            // List report shares
            smartsheet.reports.listShares(options)
              .then(function(shareList) {
                console.log(shareList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Reports.list_shares(include_all=True)
            shares = response.result

            # Sample 2: Paginate the list
            response = smartsheet_client.Reports.list_shares(
              page_size=10,
              page=1)
            pages = response.total_pages
            shares = response.result
  /reports/{reportId}/shares/{shareId}:
    parameters:
      - $ref: '#/components/parameters/reportId'
      - $ref: '#/components/parameters/shareId'
      - $ref: '#/components/parameters/accessApiLevel'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Report Share
      description: Gets the share specified in the URL.
      operationId: share-report-get
      tags:
        - sharing
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: Returns Share object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Share share = smartsheet.ReportResources.ShareResources.GetShare(
              6932724448552836,               // long reportId
              "AQAISF82FOeE"                  // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/reports/{reportId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            Share share =
            smartsheet.reportResources().shareResources().getShare(
                    665829219035012L,        // long reportId
                    "AAAQSF82F1eE"           // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              reportId: 6932724448552836,
              shareId: "AQAISF82FOeE"
            };

            // Get report share
            smartsheet.reports.getShare(options)
              .then(function(share) {
                console.log(share);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            share = smartsheet_client.Reports.get_share(
              6932724448552836,       # report_id
              'AAAQSF82F1eE')         # share_id
    delete:
      summary: Delete Report Share
      description: Deletes the share specified in the URL.
      operationId: delete-report-share
      tags:
        - sharing
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.ReportResources.ShareResources.DeleteShare(
              665829219035012,            // long reportId
              "AAAQSF82F1eE"              // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/reports/{reportId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.reportResources().shareResources().deleteShare(
                    665829219035012L,        // long reportId
                    "AAAQSF82F1eE"           // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              reportId: 665829219035012,
              shareId: "AAAQSF82F1eE"
            };

            // Delete report share
            smartsheet.reports.deleteShare(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Reports.delete_share(
              665829219035012,        # report_id
              'AAAQSF82F1eE')         # share_id
    put:
      summary: Update Report Share
      description: Updates the access level of a user or group for the specified report.
      operationId: update-report-share
      tags:
        - sharing
        - reports
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessLevel:
                  $ref: '#/components/schemas/AccessLevel'
      responses:
        '200':
          description: Result object containing the modified Share object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        type: object
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share

            {
              Id = "AAAFeF82FOeE",
              AccessLevel = AccessLevel.VIEWER
            };


            // Update report share

            Share updatedShare =
            smartsheet.ReportResources.ShareResources.UpdateShare(
              665829219035012,            // long reportId
              shareSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/reports/{reportId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{"accessLevel": "VIEWER"}'
        - lang: Java
          label: Java
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share();
                    shareSpecification.setAccessLevel(AccessLevel.VIEWER)
                    .setId("AAAFeF82FOeE");   // string shareId

            // Update report share

            Share updatedShare =
            smartsheet.reportResources().shareResources().updateShare(
                    665829219035012L,                   // long reportId
                    shareSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set the access level to Viewer
            var share = {"accessLevel": "VIEWER"};

            // Set options
            var options = {
              reportId: 665829219035012,
              shareId: "AAAFeF82FOeE",
              body: share
              };

            // Update report share
            smartsheet.reports.updateShare(options)
              .then(function(updatedShare) {
                console.log(updatedShare);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_share = smartsheet_client.Reports.update_share(
              665829219035012,        # report_id
              'AAAFeF82FOeE',         # share_id
              smartsheet.models.Share({
                'access_level': 'VIEWER'
              })
            )
  /search:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Search Everything
      description: >-
        Searches all sheets that the user can access, for the specified text. If
        you have not used the public API in a while, we will need to provision
        your data. This could take up to 24 hours so please check back later!
      tags:
        - search
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: list-search
      parameters:
        - $ref: '#/components/parameters/query'
        - $ref: '#/components/parameters/location'
        - $ref: '#/components/parameters/modifiedSince'
        - $ref: '#/components/parameters/parameters-include'
        - $ref: '#/components/parameters/scopes'
      responses:
        '200':
          description: >-
            SearchResult object that contains an array of Search objects
            (maximum 100).
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SearchResult'
                  - type: object
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Set search criteria
            string query = "stuff";

            // Search everything
            SearchResult results = smartsheet.SearchResources.Search(query);
        - lang: cURL
          label: cURL
          source: |
            curl 'https://api.smartsheet.com/2.0/search?query=stuff' \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            // Set search criteria
            String query = "stuff";

            // Search everything
            SearchResult results = smartsheet.searchResources().search(query);
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              query: "stuff"
            };

            // Search everything
            smartsheet.search.searchAll(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Set search criteria
            query = 'stuff'

            # Search everything
            result = smartsheet_client.Search.search(query)
            # result is a smartsheet.models.SearchResult object
  /search/sheets/{sheetId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Search Sheet
      description: >-
        Gets a list of the user's search results in a sheet based on query. The
        list contains an abbreviated row object for each search result in a
        sheet. If you have not used the public API in a while, we will need to
        provision your data. This could take up to 24 hours so please check back
        later! *Note* Newly created or recently updated data may not be
        immediately discoverable via search.
      tags:
        - search
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: list-search-sheet
      parameters:
        - $ref: '#/components/parameters/query'
      responses:
        '200':
          description: >-
            SearchResult object containing an array of SearchResultItem objects
            in a sheet (maximum 100)
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/SearchResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/SearchResultItem'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /serverinfo:
    get:
      summary: Gets application constants.
      description: Gets application constants.
      operationId: serverinfo-get
      tags:
        - serverInfo
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerInfo'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            ServerInfo serverInfo =
            smartsheet.ServerInfoResources.GetServerInfo();
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/serverinfo
        - lang: Java
          label: Java
          source: >
            ServerInfo serverInfo =
            smartsheet.serverInfoResources().getServerInfo();
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.server.getInfo()
              .then(function(serverInfo) {
                console.log(serverInfo);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            info = smartsheet_client.Server.server_info()
  /sheets:
    parameters:
      - $ref: '#/components/parameters/accessApiLevel'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Sheets
      description: >
        Gets a list of all sheets that the user has access to. The list contains
        an abbreviated Sheet object for each sheet.
      operationId: list-sheets
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/sheetInclude'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/modifiedSince'
        - $ref: '#/components/parameters/numericDates'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/schemas-Sheet'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PaginatedResult<Sheet> sheets =
            smartsheet.SheetResources.ListSheets(
              null,               // IEnumerable<SheetInclusion> includes
              null,               // PaginationParameters
              null                // Nullable<DateTime> modifiedSince
            );


            // Sample 2: Specify 'include' parameter with value of "SOURCE", and
            'includeAll' parameter with value of 'true'

            PaginatedResult<Sheet> sheets =
            smartsheet.SheetResources.ListSheets(
              new SheetInclusion[] { SheetInclusion.SOURCE },
              new PaginationParameters(
                true,           // includeAll
                null,           // int pageSize
                null)           // int page
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PagedResult<Sheet> sheets = smartsheet.sheetResources().listSheets(
                    null,           // EnumSet<SourceInclusion> includes
                    null,           // PaginationParameters
                    null            // Date modifiedSince
                    );

            // Sample 2: Specify pagination parameter 'includeAll'

            PaginationParameters parameters = new PaginationParameters()
                    .setIncludeAll(true);

            // Specify 'include' parameter with value of "SOURCE", and
            'includeAll' parameter with value of 'true'

            PagedResult<Sheet> sheets =
            smartsheet.sheetResources().listSheets(EnumSet.of(SourceInclusion.SOURCE),
            parameters, modifiedSince);
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.sheets.listSheets()
              .then(function(sheetList) {
                console.log(sheetList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List All
            response = smartsheet_client.Sheets.list_sheets(include_all=True)
            sheets = response.data

            # Sample 2: Paginate the list of sheets
            response = smartsheet_client.Sheets.list_sheets(
              page_size=10,
              page=1)
            pages = response.total_pages
            sheets = response.data
    post:
      summary: Create Sheet in "Sheets" Folder
      description: >
        > **Deprecated** since March 25, 2025, and will be removed.


        Creates a sheet from scratch or from the specified template in the
        user's

        Sheets folder (Home).


        For subfolders, use Create Sheet in Folder.
      operationId: create-sheet-in-sheets-folder
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/include'
      requestBody:
        description: Sheet to create.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/SheetToCreate'
                - $ref: '#/components/schemas/SheetToCreateFromTemplate'
      responses:
        '200':
          description: >-
            Result object containing a Sheet object for newly created sheet,
            corresponding to what was specified in the request.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/SheetCreated'
                          - $ref: '#/components/schemas/SheetCreatedFromTemplate'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Create sheet

            // Specify properties of the first column

            Column columnA = new Column

            {
              Title = "Favorite",
              Primary = false,
              Type = ColumnType.CHECKBOX,
              Symbol = Symbol.STAR
            };


            // Specify properties of the second column

            Column columnB = new Column

            {
              Title = "Primary Column",
              Primary = true,
              Type = ColumnType.TEXT_NUMBER
            };


            // Create sheet in "Sheets" folder (specifying the 2 columns to
            include in the sheet)

            Sheet newSheet = smartsheet.SheetResources.CreateSheet(new Sheet

            {
              Name = "newsheet",
              Columns = new Column[] { columnA, columnB }
            }

            );


            // Sample 2: Create sheet from template

            // Specify name for the sheet and Id of the template

            Sheet sheetSpecification = new Sheet

            {
              Name = "new sheet title",
              FromId = 7679398137620356     // template Id
            };


            // Option 1: Omit 'include' parameter

            Sheet newSheet = smartsheet.SheetResources.CreateSheetFromTemplate(
              sheetSpecification,
              null                            // IEnumerable<TemplateInclusion> include
            );


            // Option 2: Include ATTACHMENTS, DATA, and DISCUSSIONS

            Sheet newSheet = smartsheet.SheetResources.CreateSheetFromTemplate(
              sheetSpecification,
              new TemplateInclusion[] {
                TemplateInclusion.ATTACHMENTS,
                TemplateInclusion.DATA,
                TemplateInclusion.DISCUSSIONS }
            );
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: Create sheet

            curl https://api.smartsheet.com/2.0/sheets \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d
            '{"name":"newsheet","columns":[{"title":"Favorite","type":"CHECKBOX","symbol":"STAR"},
            {"title":"Primary Column", "primary":true,"type":"TEXT_NUMBER"}]}'



            // Sample 2: Create sheet from template

            curl
            'https://api.smartsheet.com/2.0/sheets?include=data,attachments,discussions'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"name":"newsheet", "fromId": templateId}'
        - lang: Java
          label: Java
          source: >
            // Sample 1: Create sheet

            // Specify properties of the first column

            Column columnA = new Column()
                    .setTitle("Favorite")
                    .setType(ColumnType.CHECKBOX)
                    .setSymbol(Symbol.STAR);

            // Specify properties of the second column

            Column columnB = new Column()
                    .setTitle("Primary Column")
                    .setType(ColumnType.TEXT_NUMBER)
                    .setPrimary(true);

            // Create sheet in "Sheets" folder (specifying the 2 columns to
            include in the sheet)

            Sheet newSheet = new Sheet();
                    newSheet.setName("newsheet");
                    newSheet.setColumns(Arrays.asList(columnA, columnB));

            smartsheet.sheetResources().createSheet(newSheet);


            // Sample 2: Create sheet from template

            // Specify name for the sheet and Id of the template
                    Sheet sheet = new Sheet();
                    sheet.setFromId(7679398137620356L);     // long templateId
                    sheet.setName("newsheet");

            // Option 1: Omit 'include' parameter
                    Sheet results = smartsheet.sheetResources().createSheetFromTemplate(sheet,
                    null                                    // EnumSet<SheetTemplateInclusion> includes
                    );

            // Option 2: Include ATTACHMENTS, DATA, and DISCUSSIONS
                    Sheet results = smartsheet.sheetResources().createSheetFromTemplate(
                    sheet,
                    EnumSet.of(
                    SheetTemplateInclusion.ATTACHMENTS,
                    SheetTemplateInclusion.DATA,
                    SheetTemplateInclusion.DISCUSSIONS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Create sheet
            // Specify sheet properties
            var sheet = {
              "name": "newsheet",
              "columns": [
                {
                  "title": "Favorite",
                  "type": "CHECKBOX",
                  "symbol": "STAR"
                },
                {
                  "title": "Primary Column",
                  "primary": true,
                  "type": "TEXT_NUMBER"
                }
              ]
            };

            // Set options
            var options = {
              body: sheet
            };

            // Create sheet in "Sheets" folder
            smartsheet.sheets.createSheet(options)
              .then(function(newSheet) {
                console.log(newSheet);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 2: Create sheet from template
            // Specify the directive
            var sheet = {
              "fromId": 7679398137620356,
              "name": "newsheet"
              };

            // Set options
            var options = {
              body: sheet
            };

            // Create sheet from template
            smartsheet.sheets.createSheetFromExisting(options)
              .then(function(newSheet) {
                console.log(newSheet);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Create sheet
            sheet_spec = smartsheet.models.Sheet({
              'name': 'newsheet',
              'columns': [{
                  'title': 'Favorite',
                  'type': 'CHECKBOX',
                  'symbol': 'STAR'
                }, {
                  'title': 'Primary Column',
                  'primary': True,
                  'type': 'TEXT_NUMBER'
                }
              ]
            })
            response = smartsheet_client.Home.create_sheet(sheet_spec)
            new_sheet = response.result

            # Sample 2: Create sheet from template
            response = smartsheet_client.Home.create_sheet_from_template(
              smartsheet.models.Sheet({
                'name': 'newsheet',
                'from_id': 7679398137620356     # template_id
              })
            )
            new_sheet = response.result
  /sheets/import:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Import Sheet from CSV / XLSX
      description: >
        > **Deprecated** since March 25, 2025, and will be removed.


        Imports CSV or XLSX data into a new sheet in the top-level "Sheets"
        folder.


        Note the following:


        * Both sheetName and the file name must use ASCII characters.


        * The source data must be basic text. To include rich formula data,
        import

        and create a sheet first, and then use Update Rows. To work with images,
        see

        Cell Images.


        * XLS is not supported. You must use XLSX.


        * Hierarchical relationships between rows in an external file won't
        import.
      operationId: import-sheet-into-sheets-folder
      tags:
        - imports
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Disposition'
        - $ref: '#/components/parameters/parameters-Content-Type'
        - $ref: '#/components/parameters/sheetName'
        - $ref: '#/components/parameters/headerRowIndex'
        - $ref: '#/components/parameters/primaryColumnIndex'
      requestBody:
        description: Binary content for the CSV / XLSX file.
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Result object containing a Sheet object for imported sheet.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SheetImported'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Sheet sheet = smartsheet.SheetResources.ImportXlsSheet(
              "D:/ProgressReport.xlsx",
              null,         // sheetName defaults to file name unless specified
              0,            // headerRowIndex
              null          // primaryColumnIndex
            );
        - lang: cURL
          label: cURL
          source: >
            curl 
            https://api.smartsheet.com/2.0/sheets/import?sheetName=MarketingProgressReport&headerRowIndex=0&primaryColumnIndex=0
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Disposition: attachment" \

            -H "Content-Type: text/csv" \

            -X POST \

            --data-binary @ProgressReport.csv
        - lang: Java
          label: Java
          source: |
            Sheet sheet = smartsheet.sheetResources().importXlsx(
                    "D:/ProgressReport.xlsx",
                    "MarketingProgressReport",
                    0,      // headerRowIndex
                    0       // primaryColumnIndex
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Import sheet from CSV
            // Set options
            var options = {
              queryParameters: {
                  sheetName: 'MarketingProgressReport'
              },
              path: "D:/ProgressReport.csv"
            };

            // Import CSV as sheet
            smartsheet.sheets.importCsvSheet(options)
              .then(function(attachment) {
                  console.log(attachment);
              })
              .catch(function(error) {
                  console.log(error);
              });

            // Sample 2: Import sheet from XLSX
            // Set options
            var options = {
              queryParameters: {
                sheetName: 'MarketingProgressReport'
              },
              path: "D:/ProgressReport.xlsx"
            };

            // Import XLSX as sheet
            smartsheet.sheets.importXlsxSheet(options)
              .then(function(attachment) {
                console.log(attachment);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            imported_sheet = smartsheet_client.Sheets.import_xlsx_sheet(
              'D:/ProgressReport.xlsx',
              'MarketingProgressReport',  # sheet_name
              header_row_index=0
            )
  /sheets/{sheetId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/sheetId'
    get:
      summary: Get Sheet
      description: Gets a sheet in the format specified, based on the sheet Id.
      operationId: getSheet
      parameters:
        - $ref: '#/components/parameters/Accept'
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/parameters-sheetInclude'
        - $ref: '#/components/parameters/sheetExclude'
        - $ref: '#/components/parameters/sheetColumnIds'
        - $ref: '#/components/parameters/sheetFilterId'
        - $ref: '#/components/parameters/sheetIfVersionAfter'
        - $ref: '#/components/parameters/sheetLevel'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/paperSize'
        - $ref: '#/components/parameters/sheetRowIds'
        - $ref: '#/components/parameters/sheetRowNumbers'
        - $ref: '#/components/parameters/sheetRowsModifiedSince'
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: The Sheet that was loaded.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Sheet'
                  - $ref: '#/components/schemas/SheetVersion'
              example:
                id: 5024935253958130
                name: basic sheet
                version: 13
                totalRowCount: 2
                accessLevel: OWNER
                effectiveAttachmentOptions:
                  - ONEDRIVE
                  - EGNYTE
                  - FILE
                  - BOX_COM
                  - LINK
                  - GOOGLE_DRIVE
                  - EVERNOTE
                  - DROPBOX
                ganttEnabled: false
                dependenciesEnabled: false
                resourceManagementEnabled: false
                resourceManagementType: NONE
                cellImageUploadEnabled: true
                userSettings:
                  criticalPathEnabled: false
                  displaySummaryTasks: true
                userPermissions:
                  summaryPermissions: ADMIN
                hasSummaryFields: false
                permalink: >-
                  https://app.smartsheet.com/sheets/OYL4EBBXa2UceTlydPloONgp12BiWuz0
                createdAt: '2024-11-25T19:34:48Z'
                modifiedAt: '2024-12-06T20:42:33Z'
                isMultiPicklistEnabled: true
                columns:
                  - id: 6906100464177028
                    version: 0
                    index: 0
                    title: Primary Column
                    type: TEXT_NUMBER
                    primary: true
                    validation: false
                    width: 150
                  - id: 1276600929963908
                    version: 0
                    index: 1
                    title: Due date
                    type: DATE
                    validation: true
                    width: 150
                  - id: 7525336299556740
                    version: 0
                    index: 2
                    title: Status
                    type: PICKLIST
                    options:
                      - Not Started
                      - In Progress
                      - Stopped Progress
                      - Completed
                      - Won't Do
                    validation: false
                    width: 150
                  - id: 5780200557334404
                    version: 0
                    index: 3
                    title: Name
                    type: TEXT_NUMBER
                    validation: false
                    width: 150
                  - id: 3528400743649156
                    version: 0
                    index: 4
                    title: Top Secret
                    type: CHECKBOX
                    validation: false
                    width: 225
                rows:
                  - id: 4386350861881220
                    rowNumber: 1
                    expanded: true
                    createdAt: '2024-11-25T19:37:46Z'
                    modifiedAt: '2024-12-06T20:42:33Z'
                    cells:
                      - columnId: 6906100464177028
                        value: 1
                        displayValue: '1'
                      - columnId: 1276600929963908
                        value: '2024-11-18'
                      - columnId: 7525336299556740
                        value: Not Started
                        displayValue: Not Started
                      - columnId: 5780200557334404
                        value: Fred
                        displayValue: Fred
                      - columnId: 3528400743649156
                        value: false
                  - id: 8889950489251716
                    rowNumber: 2
                    siblingId: 4386350861881220
                    expanded: true
                    createdAt: '2024-11-25T19:37:46Z'
                    modifiedAt: '2024-12-06T20:42:33Z'
                    cells:
                      - columnId: 6906100464177028
                        value: 2
                        displayValue: '2'
                      - columnId: 1276600929963908
                        value: '2024-12-06'
                      - columnId: 7525336299556740
                        value: In Progress
                        displayValue: In Progress
                      - columnId: 5780200557334404
                        value: Barney
                        displayValue: Barney
                      - columnId: 3528400743649156
                        value: true
            application/pdf:
              schema:
                type: string
                format: binary
                description: The Sheet in PDF format.
            application/vnd.ms-excel:
              schema:
                type: string
                format: binary
                description: The Sheet in Excel format.
            text/csv:
              schema:
                type: string
                format: binary
                description: The Sheet in CSV format.
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Sample 1: Get sheet
            // Omit all parameters
            Sheet sheet = smartsheet.SheetResources.GetSheet(
              4583173393803140,           // sheetId
              null,                       // IEnumerable<SheetLevelInclusion> includes
              null,                       // IEnumerable<SheetLevelExclusion> excludes
              null,                       // IEnumerable<long> rowIds
              null,                       // IEnumerable<int> rowNumbers
              null,                       // IEnumerable<long> columnIds
              null,                       // Nullable<long> pageSize
              null                        // Nullable<long> page
            );

            // Sample 2: Get sheet as Excel
            smartsheet.SheetResources.GetSheetAsExcel(
              4583173393803140,           // sheetId
              outputStream
            );

            // Sample 3: Get sheet as PDF
            smartsheet.SheetResources.GetSheetAsPDF(
              4583173393803140,               // sheetId
              outputStream,
              PaperSize.A1
            );

            // Sample 4: Get sheet as CSV
            smartsheet.SheetResources.GetSheetAsCSV(
              4583173393803140,               // sheetId
              outputStream
            );
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: Get sheet

            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}?level=2&include=objectValue
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"


            // Sample 2: Get sheet as Excel

            curl https://api.smartsheet.com/2.0/sheets/{sheetId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Accept: application/vnd.ms-excel" \

            -o output.xlsx


            // Sample 3: Get sheet as PDF

            curl 'https://api.smartsheet.com/2.0/sheets/{sheetId}?paperSize=A1'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Accept: application/pdf"

            -o  output.pdf


            // Sample 4: Get sheet as CSV

            curl https://api.smartsheet.com/2.0/sheets/{sheetId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Accept: text/csv" \

            -o output.csv
        - lang: Java
          label: Java
          source: |
            // Sample 1: Get sheet
            // Omit all parameters
            Sheet sheet = smartsheet.sheetResources().getSheet(
                    4583173393803140L,      // long sheetId
                    null,                   // EnumSet<SheetInclusion> includes
                    null,                   // EnumSet<ObjectExclusion> excludes
                    null,                   // Set<Long> rowIds
                    null,                   // Set<Integer> rowNumbers
                    null,                   // Set<Long> columnIds
                    null,                   // Integer pageSize
                    null                    // Integer page
                    );

            // Sample 2: Get sheet as Excel
            smartsheet.sheetResources().getSheetAsExcel(
                    4583173393803140L,       // long sheetId
                    outputStream
                    );

            // Sample 3: Get sheet as PDF
            smartsheet.sheetResources().getSheetAsPDF(
                    4583173393803140L,       // long sheetId
                    outputStream,
                    PaperSize.A1
                    );

            // Sample 4: Get sheet as CSV
            smartsheet.sheetResources().getSheetAsCSV(
                    4583173393803140L,       // long sheetId
                    outputStream
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Get sheet
            // Set options
            var options = {
              id: 4583173393803140 // Id of Sheet
            };

            // Get sheet
            smartsheet.sheets.getSheet(options)
              .then(function(sheetInfo) {
                console.log(sheetInfo);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 2: Get sheet as Excel
            var fs = require("fs")

            // Set options
            var options = {
              id: 169681224483716 // Id of Sheet
            };

            // Get sheet
            smartsheet.sheets.getSheetAsExcel(options)
              .then(function(fileContents) {
                // Write sheet to file
                fs.writeFile('output.xlsx', fileContents, 'binary', (err) => {
                  if (err) throw err;
                  console.log('The sheet has been saved!');
                });
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 3: Get sheet as PDF
            var fs = require("fs")

            // Set options
            var options = {
              id: 169681224483716 // Id of Sheet
            };

            // Get sheet
            smartsheet.sheets.getSheetAsPDF(options)
              .then(function(fileContents) {
                // Write sheet to file
                fs.writeFile('output.pdf', fileContents, 'binary', (err) => {
                  if (err) throw err;
                  console.log('The sheet has been saved!');
                });
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 4: Get sheet as CSV
            var fs = require("fs")

            // Set options
            var options = {
              id: 4583173393803140 // Id of Sheet
            };

            // Get sheet
            smartsheet.sheets.getSheetAsCSV(options)
              .then(function(fileContents) {
                // Write sheet to file
                fs.writeFile('output.csv', fileContents, (err) => {
                  if (err) throw err;
                  console.log('The sheet has been saved!');
                });
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Get sheet
            sheet = smartsheet_client.Sheets.get_sheet(
              4583173393803140)           # sheet_id

            # Sample 2: Get sheet as Excel
            smartsheet_client.Sheets.get_sheet_as_excel(
              1531988831168388,           # sheet_id
              download_directory_path)

            # Sample 3: Get sheet as PDF
            smartsheet_client.Sheets.get_sheet_as_pdf(
              1531988831168388,           # sheet_id
              download_directory_path,
              'A1')                       # paperSize

            # Sample 4: Get sheet as CSV
            smartsheet_client.Sheets.get_sheet_as_csv(
              1531988831168388,           # sheet_id
              download_directory_path)
    delete:
      summary: Delete Sheet
      description: Deletes the sheet specified in the URL.
      operationId: deleteSheet
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - DELETE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.DeleteSheet(
              1531988831168388            // sheetId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().deleteSheet(
                    1531988831168388L        // long sheetId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              id: 1531988831168388 // Id of Sheet
            };

            // Delete sheet
            smartsheet.sheets.deleteSheet(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.delete_sheet(
              1531988831168388)       # sheet_id
    put:
      summary: Update Sheet
      description: >-
        Updates the sheet specified in the URL.

        To modify sheet contents, see [Add
        Rows](/api/smartsheet/openapi/rows/rows-addtosheet), [Update
        Rows](/api/smartsheet/openapi/rows/update-rows), [Add
        Columns](/api/smartsheet/openapi/columns/columns-addtosheet), and
        [Update Column](/api/smartsheet/openapi/columns/column-updatecolumn).

        This operation can be used to update an individual user's sheet
        settings. If the request body contains only the **userSettings**
        attribute, this operation may be performed even if the user only has
        read-only access to the sheet (for example, the user has viewer
        permissions or the sheet is read-only).
      operationId: updateSheet
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      requestBody:
        description: >
          [Sheet object](/api/smartsheet/openapi/sheets/sheet) limited to the
          following attributes:

          * **name** (optional).

          * **projectSettings** (optional): [ProjectSettings
          object](/api/smartsheet/openapi/schemas/projectsettings), containing
          at least one of the **projectSettings** attributes, for updating this
          sheet's project settings and dependencies.

          * **userSettings** (optional): [SheetUserSettings
          object](/api/smartsheet/openapi/schemas/sheetusersettings) for
          updating these user's settings for the sheet.

          NOTE:

          * Attributes not specified in **projectSettings** are not updated.

          * If **projectSettings.nonWorkingDays** is specified as an empty
          array, all non-working days are removed from the project sheet.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSheet'
      responses:
        '200':
          description: >-
            Returns [Result object](/api/smartsheet/openapi/schemas/result)
            containing a [Sheet object](/api/smartsheet/openapi/sheets/sheet)
            for the updated sheet.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Sheet'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify updated sheet properties

            Sheet sheetSpecification = new Sheet

            {
              Id = 4583173393803140,
              Name = "New Sheet Name",
              UserSettings = new SheetUserSettings{CriticalPathEnabled = true}
            };


            // Update sheet

            Sheet updatedSheet =
            smartsheet.SheetResources.UpdateSheet(sheetSpecification);
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{"name":"New Sheet Name",
              "userSettings": {"criticalPathEnabled": true},
              "projectSettings":{
                "workingDays": ["MONDAY", "TUESDAY", "WEDNESDAY"],
                "nonWorkingDays": ["2018-01-01"],
                "lengthOfDay": 6
              } \
            }'
        - lang: Java
          label: Java
          source: >
            // Specify updated sheet properties

            Sheet sheetSpecification = new Sheet();

            sheetSpecification.setUserSettings(new
            SheetUserSettings().setCriticalPathEnabled(true))
                    .setName("New Sheet Name")
                    .setId(7960873114331012L);

            // Update sheet

            Sheet updatedSheet =
            smartsheet.sheetResources().updateSheet(sheetSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify updated sheet properties
            var sheet = {
              "name": "New Sheet Name",
              "userSettings": {
                "criticalPathEnabled": true,
              }
            };

            // Set options
            var options = {
              id: 7960873114331012, // Id of Sheet
              body: sheet
              };

            // Update sheet
            smartsheet.sheets.updateSheet(options)
              .then(function(updatedSheet) {
                console.log(updatedSheet);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_sheet = smartsheet_client.Sheets.update_sheet(
              4583173393803140,       # sheet_id
              smartsheet.models.Sheet({
                'name': 'New Sheet Name',
                'user_settings': smartsheet.models.SheetUserSettings({
                  'critical_path_enabled': True
                })
              })
            )
  /sheets/{sheetId}/attachments:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Attachments
      description: >
        Gets a list of all attachments that are on the sheet, including sheet,
        row, and discussion-level attachments.
      operationId: attachments-listOnSheet
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of attachments
                        type: array
                        items:
                          $ref: '#/components/schemas/Attachment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Attachment> attachments =
            smartsheet.SheetResources.AttachmentResources.ListAttachments(
              9283173393803140,           // sheetId
              null                        // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination

            PagedResult<Attachment> attachments =
            smartsheet.sheetResources().attachmentResources().listAttachments(
                    9283173393803140L,               // long sheetId
                    null                             // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140
            };

            // List attachments
            smartsheet.sheets.listAttachments(options)
              .then(function(attachmentsList) {
                console.log(attachmentsList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List All
            response = smartsheet_client.Attachments.list_all_attachments(
              9283173393803140,       # sheet_id
              include_all=True)
            attachments = response.data

            # Sample 2: Paginate the list of attachments
            response = smartsheet_client.Attachments.list_all_attachments(
              9283173393803140,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            attachments = response.data
    post:
      summary: Attach File or URL to Sheet
      description: >
        Attaches a file to the sheet. The URL can be any of the following:


        * Normal URL (attachmentType "LINK")

        * Box.com URL (attachmentType "BOX_COM")

        * Dropbox URL (attachmentType "DROPBOX")

        * Egnyte URL (attachmentType "EGNYTE")

        * Evernote URL (attachmentType "EVERNOTE")

        * Google Drive URL (attachmentType "GOOGLE_DRIVE")

        * OneDrive URL (attachmentType "ONEDRIVE")


        >**Important:** Smartsheet Gov allows only the following attachment
        types:

        > - BOX_COM

        > - FILE

        > - GOOGLE_DRIVE

        > - LINK

        > - ONEDRIVEß


        For multipart uploads please use "multipart/form-data" content type.
      operationId: attachments-attachToSheet
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                  format: binary
          application/json:
            schema:
              $ref: '#/components/schemas/URLAttachmentRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Attachment'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Attachment attachment =
            smartsheet.SheetResources.AttachmentResources.AttachFile(
              9283173393803140,           // sheetId
              filePath,
              "application/msword"
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/msword" \

            -H 'Content-Disposition: attachment; filename="ProgressReport.docx"'
            \

            -H "Content-Length: FILE_SIZE" \

            -X POST \

            --data-binary @ProgressReport.docx
        - lang: Java
          label: Java
          source: |
            // Specify file to be attached
            File file = new File("/Users/jdoe/Documents/ProgressReport.docx");

            // Attach file to sheet
                    Attachment attachment = smartsheet.sheetResources().attachmentResources().attachFile(
                    9283173393803140L,       // long sheetId
                    file,
                    "application/msword"
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Enable FileStream
            var fs = require("fs")

            // Set options
            var options = {
              sheetId: 1694401624483716,
              fileSize: 20765,
              fileName: "ProgressReport.docx",
              fileStream: fs.createReadStream("/Users/jdoe/Documents/ProgressReport.docx")
            };

            // Attach file to sheet
            smartsheet.sheets.addFileAttachment(options)
              .then(function(attachment) {
                  console.log(attachment);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            updated_attachment =
            smartsheet_client.Attachments.attach_file_to_sheet(
              9283173393803140,       # sheet_id
              ('ProgressReport.docx',
                open('/path/to/ProgressReport.docx', 'rb'),
                'application/msword')
            )
  /sheets/{sheetId}/attachments/{attachmentId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/attachmentId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Attachment
      description: >
        Fetches a temporary URL that allows you to download an attachment. The
        urlExpiresInMillis attribute tells you how long the URL is valid.
      operationId: attachments-get
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Attachment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Attachment attachment =
            smartsheet.SheetResources.AttachmentResources.GetAttachment(
              9283173393803140,               // sheetId
              4583173393803140                // attachmentId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments/{attachmentId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            Attachment attachment =
            smartsheet.sheetResources().attachmentResources().getAttachment(
                    9283173393803140L,       // long sheetId
                    4583173393803140L        // long attachmentId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140,
              attachmentId: 4583173393803140
            };

            // Get attachment
            smartsheet.sheets.getAttachment(options)
              .then(function(attachment) {
                  console.log(attachment);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            attachment = smartsheet_client.Attachments.get_attachment(
              9283173393803140,       # sheet_id
              4583173393803140)       # attachment_id
    delete:
      summary: Delete Attachment
      description: |
        Deletes the attachment specified in the URL.
      operationId: attachments-delete
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.AttachmentResources.DeleteAttachment(
              9283173393803140,           // sheetId
              7169782752536452            // attachmentId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments/{attachmentId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().attachmentResources().deleteAttachment(
                    9283173393803140L,       // long sheetId
                    7169782752536452L        // sheetAttachmentId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              attachmentId: 7169782752536452,
            };

            // Delete attachment
            smartsheet.sheets.deleteAttachment(options)
              .then(function(results) {
                  console.log(results);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Attachments.delete_attachment(
              9283173393803140,       # sheet_id
              7169782752536452)       # attachment_id
  /sheets/{sheetId}/attachments/{attachmentId}/versions:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/attachmentId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Versions
      description: >
        Gets a list of all versions of the given attachmentId in order from
        newest to oldest.
      operationId: attachments-versionList
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of attachments
                        type: array
                        items:
                          $ref: '#/components/schemas/Attachment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Attachment> attachments =
            smartsheet.SheetResources.AttachmentResources.VersioningResources.ListVersions(
              2252168947361668,               // sheetId
              5510069950408580,               // attachmentId
              null                            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments/{attachmentId}/versions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination

            PagedResult<Attachment> attachments =
            smartsheet.sheetResources().attachmentResources().versioningResources().listAllVersions(
                    2252168947361668L,       // long sheetId
                    5510069950408580L,       // long attachmentId
                    null                     // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              attachmentId: 5510069950408580
            };

            // List versions of the attachment
            smartsheet.sheets.listAttachmentVersions(options)
              .then(function(versionList) {
                console.log(versionList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Attachments.list_attachment_versions(
              2252168947361668,       # sheet_id
              5510069950408580,       # attachment_id
              include_all=True)
            versions = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Attachments.list_attachment_versions(
              2252168947361668,       # sheet_id
              5510069950408580,       # attachment_id
              page_size=5,
              page=1)
            pages = response.total_pages
            versions = response.data
    post:
      summary: Attach New version
      description: >
        Uploads a new version of a file to a sheet or row. This operation can be
        performed using a simple upload or a multipart upload.
      operationId: attachments-versionUpload
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                  format: binary
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Attachment'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Attachment attachment =
            smartsheet.SheetResources.AttachmentResources.VersioningResources.AttachNewVersion(
              9283173393803140,               // sheetId
              0123456789123456,               // attachmentId
              filePath,
              "application/msword"
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments/{attachmentId}/versions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/msword" \

            -H 'Content-Disposition: attachment; filename="ProgressReport.docx"'
            \

            -H "Content-Length: FILE_SIZE" \

            -X POST \

            --data-binary @ProgressReport.docx
        - lang: Java
          label: Java
          source: |
            // Specify the new file to be attached
            File file = new File("/Users/jdoe/Documents/ProgressReport.docx");

            // Attach new version of the file
                    Attachment attachment = smartsheet.sheetResources().attachmentResources().versioningResources().attachNewVersion(
                    9283173393803140L,       // long sheetId
                    0123456789123456L,       // long attachmentId
                    file,
                    "application/msword"
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Enable FileStream
            var fs = require("fs")

            // Set options
            var options = {
              sheetId: 9283173393803140,
              attachmentId: 0123456789123456,
              fileSize: 17291,
              fileName: "ProgressReport.docx",
              fileStream: fs.createReadStream("/Users/jdoe/Documents/ProgressReport.docx")
            };

            // Attach new version
            smartsheet.sheets.attachNewVersion(options)
              .then(function(updatedAttachment) {
                console.log(updatedAttachment);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Attachments.attach_new_version(
              9283173393803140,       # sheet_id
              0123456789123456,       # attachment_id
              ('ProgressReport.docx',
                open('/path/to/ProgressReport.docx', 'rb'),
                'application/msword')
            )

            updated_attachment = response.result
    delete:
      summary: Delete All Versions
      description: >
        Deletes all versions of the attachment corresponding to the specified
        attachmentId. For attachments with

        multiple versions, this effectively deletes the attachment from the
        object that it’s attached to.
      operationId: attachments-versionsDelete
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            smartsheet.SheetResources.AttachmentResources.VersioningResources.DeleteAllVersions(
              9283173393803140,               // sheetId
              0123456789123456                // attachmentId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/attachments/{attachmentId}/versions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: >
            smartsheet.sheetResources().attachmentResources().versioningResources().deleteAllVersions(
                    9283173393803140L,       // long sheetId
                    0123456789123456L        // long attachmentId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              attachmentId: 5510069950408580
            };

            // Delete all versions of the attachment
            smartsheet.sheets.deleteAllAttachmentVersions(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Attachments.delete_attachment_versions(
              9283173393803140,       # sheet_id
              0123456789123456)       # attachment_id
  /sheets/{sheetId}/automationrules:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: automationrules-list
      summary: List All Automation Rules
      description: >
        Returns all automation rules associated with the specified sheet.


        Multistep workflows are not returned via the API.

        Instead, you'll see an error 400 - 1266: This rule is not accessible
        through the API.

        Only single-action notifications, approval requests, or update requests
        qualify.


        For users of Smartsheet for Slack, note that Slack notifications are not
        returned.
      tags:
        - automationRules
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: The list of AutomationRule objects
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of Automation Rules
                        type: array
                        items:
                          $ref: '#/components/schemas/AutomationRule'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            PaginatedResult<AutomationRule> AutomationRules =
            smartsheet.SheetResources.AutomationRuleResources.ListAutomationRules(
              9283173393803140,  // sheetId
              null               // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/automationrules
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140
            };

            // List automation rules
            smartsheet.sheets.listAutomationRules(options)
                .then(function(automationRulesList) {
                  console.log(automationRulesList);
                })
                .catch(function(error) {
                  console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List All
            response = smartsheet_client.Sheets.list_automation_rules(
              9283173393803140,       # sheet_id
              include_all=True)
            automation_rules = response.data

            # Sample 2: Paginate the list of automation rules
            response = smartsheet_client.Sheets.list_automation_rules(
              9283173393803140,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            automation_rules = response.data
  /sheets/{sheetId}/automationrules/{automationRuleId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/automationRuleId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get an Automation Rule
      description: |
        Returns the specified automation rule, including any action values.
      operationId: automationrule-get
      tags:
        - automationRules
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: AutomationRule object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/AutomationRule'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            AutomationRule automationRule =
            smartsheet.SheetResources.GetAutomationRule(
              9283173393803140,              // sheetId
              789994550205316                // automationRuleId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/automationrules/{automationRuleId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140,
              automationRuleId: 789994550205316
            };

            // Get automation rule
            smartsheet.sheets.getAutomationRule(options)
                .then(function(automationRule) {
                  console.log(automationRule);
                })
                .catch(function(error) {
                  console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            automation_rule = smartsheet_client.Sheets.get_automation_rule(
              4478580756375428,       # sheet_id
              4220838007334788)       # automation_rule_id
    put:
      summary: Update an Automation Rule
      description: >
        Updates an existing automation rule.


        When sending an AutomationRule, you must always specify **action.type**
        and it must match the existing rule type.
      operationId: automationrule-update
      tags:
        - automationRules
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AutomationRule'
      responses:
        '200':
          description: Result object containing the updated AutomationRule object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/AutomationRule'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set recipient

            Recipient recipient = new Recipient

            {
              Email = "jane.roe@smartsheet.com"
            };


            // Specify the changes

            AutomationRule autoRule = new AutomationRule

            {
              Id = 789994550205316,
              Action = new AutomationAction
              {
                Recipients = new[] { recipient },
                Type = AutomationActionType.NOTIFICATION_ACTION,
                Frequency = AutomationActionFrequency.WEEKLY
              }
            };


            // Update the automation rule

            AutomationRule automationRule =
            smartsheet.SheetResources.UpdateAutomationRule(
              4583173393803140,  // sheetId
              autoRule
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/automationrules/{automationRuleId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X PUT \

            -d '{
                "action": {
                    "type": "APPROVAL_REQUEST_ACTION",
                    "recipients": [{
                        "email": "jane.roe@smartsheet.com"
                    }],
                    "frequency": "WEEKLY"
                }
            }'
        - lang: Node.js
          label: Node.js
          source: |
            // Specify the changes
            var body = {
              "name": "Approval Request",
              "action": {
                "type": "APPROVAL_REQUEST_ACTION",
                "recipients": [
                  {
                    "email": "jane.roe@smartsheet.com"
                  }
                ],
                "frequency": "WEEKLY",
                "includeAllColumns": true,
                "includeAttachments": true,
                "includeDiscussions": true,
                "notifyAllSharedUsers": false
              }
            };

            // Set options
            var options = {
              sheetId: 4583173393803140,
              automationRuleId: 789994550205316,
              body: body
            };

            // Update the automation rule
            smartsheet.sheets.updateAutomationRule(options)
                .then(function(updatedAutomationRule) {
                  console.log(updatedAutomationRule);
                })
                .catch(function(error) {
                  console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            automation_spec = smartsheet.models.AutomationRule({
              'enabled': False,                # Disable Automation Rule
              'name': 'New Name',              # Change Name of Automation Rule
              'action': {
                'type': 'NOTIFICATION_ACTION'  # Action/Type must always be included
              }
            })

            response = smartsheet_client.Sheets.update_automation_rule(
              4478580756375428,                # sheet_id
              4220838007334788,                # automation_rule_id
              automation_spec)

            updated_automation = response.result
    delete:
      summary: Delete an Automation Rule
      description: |
        Deletes an automation rule.
      operationId: automationrule-delete
      tags:
        - automationRules
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            AutomationRule automationRule =
            smartsheet.SheetResources.AutomationRuleResources.DeleteAutomationRule(
              9283173393803140,               // sheetId
              789004550205316                 // automationRuleId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/automationrules/{automationRuleId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140,
              automationRuleId: 789004550205316
            };

            // Delete automation rule
            smartsheet.sheets.deleteAutomationRule(options)
                .then(function(results) {
                  console.log(results);
                })
                .catch(function(error) {
                  console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.delete_automation_rule(
              4478580756375428,       # sheet_id
              4220838007334788)       # automation_rule_id
  /sheets/{sheetId}/columns:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Columns
      description: Gets a list of all columns belonging to the sheet specified in the URL.
      operationId: columns-listOnSheet
      parameters:
        - $ref: '#/components/parameters/columnsLevel'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      tags:
        - columns
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: >-
            Returns [IndexResult object]() containing an array of [Column
            objects]().
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/GetColumn'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit 'include' parameter and pagination parameters

            PaginatedResult<Column> columns =
            smartsheet.SheetResources.ColumnResources.ListColumns(
              9283173393803140,               // sheetId
              null,                           // IEnumerable<ColumnInclusion> include
              null,                           // PaginationParameters
              2                               // int compatibilityLevel
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/columns \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit 'include' parameter and pagination parameters

            PagedResult<Column> columns =
            smartsheet.sheetResources().columnResources().listColumns(
                    9283173393803140L,                   // long sheetId
                    null,                                // EnumSet<ColumnInclusion> includes
                    null                                 // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140
            };

            // List columns
            smartsheet.sheets.getColumns(options)
              .then(function(columnList) {
                console.log(columnList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List All
            response = smartsheet_client.Sheets.get_columns(
              9283173393803140,       # sheet_id
              include_all=True)
            columns = response.data

            # Sample 2: Paginate the list of columns
            response = smartsheet_client.Sheets.get_columns(
              9283173393803140,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            columns = response.data
    post:
      summary: Add Columns
      description: >-
        Inserts one or more columns into the sheet specified in the URL.This
        operation can be performed using a [simple
        upload](/api/smartsheet/openapi/attachments) or a [multipart
        upload](/api/smartsheet/openapi/attachments). For more information, see
        [Post an Attachment](/api/smartsheet/openapi/attachments).
      operationId: columns-addToSheet
      tags:
        - columns
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: |
          A [Column object]() that contains the following attributes
            * **title**
            * **type**
            * **formula** (optional)
            * **index** (zero-based)
            * **autoNumberFormat** (optional)
            * **description** (optional)
            * **locked**(optional)
            * **options** (optional)
            * **symbol** (optional)
            * **systemColumnType** (optional)
            * **validation** (optional)
            * **width** (optional)
           
           **NOTES:**
            * When setting a column type of PICKLIST or MULTI_PICKLIST, you must follow a one operation per API call rule. For these column types, you must set the column type first, and then add any additional constraints in a second call, such as setting *validation* to *true*.
            * When creating more than one column at a time, you cannot designate multiple index locations. Use one common index as the starting point. For example, designate the primary column as "1".
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColumnObjectAttributes'
      responses:
        '200':
          description: >-
            Returns [Result object](/api/smartsheet/openapi/schemas/result)
            containing the newly created columns -- either a single [Column
            object](/api/smartsheet/openapi/columns/column) or an array of
            Column objects, corresponding to what was specified in the request.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/AddColumns'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Create a column

            Column columnA = new Column

            {
              Title = "This is a new multi-picklist column",
              Index = 0,
              Type = ColumnType.MULTI_PICKLIST,
              Options = new string[] { "Cat", "Rat", "Bat" }
            };


            // Create another column

            Column columnB = new Column

            {
              Title = "New Date Column",
              Index = 4,
              Type = ColumnType.DATE
            };


            // Add columns to the sheet

            IList<Column> addedColumns =
            smartsheet.SheetResources.ColumnResources.AddColumns(
              2252168947361668,   // sheet Id
              new Column[] { columnA, columnB }
            );
        - lang: cURL
          label: cURL
          source: "curl https://api.smartsheet.com/2.0/sheets/{sheetId}/columns \\\n-H \"Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789\" \\\n-H \"Content-Type: application/json\" \\\n-X POST \\\n-d '[{\"title\": \"New Multi-Picklist Column 1\", \"type\": \"MULTI_PICKLIST\", \"options\": [\"First\", \"Second\", \"Third\"], \"index\": 4} , {\"title\":\"New Date Column\", \"type\":\"DATE\", \"formula\": \"=data@row\", \"validation\":\"true\", \"index\":4},]' \\\n-d '[{\"index\": 6, \"title\": \"Dropdown Multi Select\", \"type\": \"MULTI_PICKLIST\", \"options\": [\"Template\", \"Blog\",\t\"Newsletter\",\t\"Email\", \"Press Release\", \"Advertisement\"],\t\"validation\": false, \"width\": 150}]'\n"
        - lang: Java
          label: Java
          source: |
            // Create columns
            Column column1 = new Column()
                    .setTitle("New Multi-Picklist Column 1")
                    .setType(ColumnType.MULTI_PICKLIST)
                    .setIndex(4)
                    .setOptions(Arrays.asList("First", "Second", "Third"));

                    Column column2 = new Column()
                    .setTitle("New Date Column")
                    .setType(ColumnType.DATE)
                    .setFormula("=data@row")
                    .setValidation(true)
                    .setIndex(4);

            // Add columns to the sheet
                    List<Column> newColumns = smartsheet.sheetResources().columnResources().addColumns(
                    2252168947361668L,       // long sheetId
                    Arrays.asList(column1, column2)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify new columns
            var column = [
              {
                "title": "New Picklist Column 1",
                "type": "PICKLIST",
                "options": [
                  "First",
                  "Second",
                  "Third"
                ],
                "index": 4
              },
              {
                "title": "New Date Column",
                "type": "DATE",
                "formula": "=data@row",
                "validation": true,
                "index": 4
              }
            ];

            // Set options
            var options = {
              sheetId: 2252168947361668,
              body: column
              };

            // Add columns to the sheet
            smartsheet.sheets.addColumn(options)
              .then(function(newColumns) {
                  console.log(newColumns);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Create the columns
            column1 = smartsheet.models.Column({
              'title': 'New Picklist Column 1',
              'type': 'PICKLIST',
              'options': [
                'First',
                'Second',
                'Third'
              ],
              'index': 4
            })

            column2 = smartsheet.models.Column({
              'title': 'New Date Column',
              'type': 'DATE',
              'formula': '=data@row',
              'validation': 'True',
              'index': 4
            })

            # Add columns to the sheet
            new_columns = smartsheet_client.Sheets.add_columns(
              2252168947361668,       # sheet_id
              [column1, column2])
  /sheets/{sheetId}/columns/{columnId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/columnId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Column
      description: >-
        Gets definitions for the column specified in the URL. **NOTE:** If you
        need to see the values of individual cells within the column, use [Get
        Sheet](#operation/getSheet) or [Get Row](#operation/row-get).
      operationId: column-get
      parameters:
        - $ref: '#/components/parameters/sheetLevel'
      tags:
        - columns
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GetColumn'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Sample 1: Omit 'include' parameter
            Column column = smartsheet.SheetResources.ColumnResources.GetColumn(
              9283173393803140,               // sheetId
              7960873114331012,               // columnId
              null                            // IEnumerable<ColumnInclusion> includes
            );

            // Sample 2: Specify 'include' parameter with value of "FILTERS"
            Column column = smartsheet.SheetResources.ColumnResources.GetColumn(
              9283173393803140,               // sheetId
              7960873114331012,               // columnId
              new ColumnInclusion[] { ColumnInclusion.FILTERS }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/columns/{columnId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'include' parameter

            Column column =
            smartsheet.sheetResources().columnResources().getColumn(
                    9283173393803140L,       // long sheetId
                    7960873114331012L,       // long columnId
                    null                     // EnumSet<ColumnInclusion> includes
                    );

            // Sample 2: Specify 'include' parameter with value of "FILTERS"
                    Column column = smartsheet.sheetResources().columnResources().getColumn(
                    9283173393803140L,       // long sheetId
                    7960873114331012L,       // long columnId
                    EnumSet.of(ColumnInclusion.FILTERS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140,
              columnId: 7960873114331012
            };

            // Get column
            smartsheet.sheets.getColumns(options)
              .then(function(column) {
                console.log(column);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            column = smartsheet_client.Sheets.get_column(
              9283173393803140,       # sheet_id
              7960873114331012,       # column_id
              level=1)
    delete:
      summary: Delete Column
      description: Deletes the column specified in the URL.
      operationId: column-delete
      tags:
        - columns
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.ColumnResources.DeleteColumn(
              9283173393803140,               // sheetId
              0123456789012345                // columnId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/columns/{columnId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().columnResources().deleteColumn(
                    9283173393803140L,       // long sheetId
                    0123456789012345L        // long columnId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140,
              columnId: 0123456789012345
            };

            // Delete column
            smartsheet.sheets.deleteColumn(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.delete_column(
              9283173393803140,       # sheet_id
              0123456789012345)       # column_id
    put:
      summary: Update Column
      description: >
        Updates properties of the column, moves the column, or renames the
        column.


        **NOTE:**

        * You cannot change the type of a Primary column.

        * While dependencies are enabled on a sheet, you can't change the type
        of any special calendar/Gantt columns.

        * If the column type is changed, all cells in the column are converted
        to the new column type and column validation is cleared.

        * Type is optional when moving or renaming, but required when changing
        type or dropdown values.
      operationId: column-updateColumn
      tags:
        - columns
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      requestBody:
        description: >
          A [Column object]() that contains the following attributes:
           * **index**
           * **autoNumberFormat** (optional)
           * **contactOptions** (optional) -- must have set column type to CONTACT_LIST
           * **description** (optional)
           * **format** (optional)
           * **formula** (optional)
           * **hidden**(optional)
           * **locked** (optional)
           * **options** (optional)
           * **symbol** (optional)
           * **systemColumnType** (optional)
           * **title** (optional)
           * **type** (optional)
           * **validation** (optional)
           * **width** (optional)
           
          **NOTE:** When setting a column type of PICKLIST or MULTI_PICKLIST,
          you must follow a one operation per API call rule. For these column
          types, you must set the column type first, and then add any additional
          constraints in a second call, such as setting *validation* to *true*.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColumnObjectAttributes'
      responses:
        '200':
          description: >-
            Returns [Result object](/api/smartsheet/openapi/schemas/result)
            containing the [Column
            object](/api/smartsheet/openapi/columns/column) that was modified.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/UpdateColumn'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify column properties

            Column columnSpecification = new Column

            {
              Id = 5005385858869124,
              Title = "First Column",
              Index = 0,
              Type = ColumnType.PICKLIST,
              Options = new string[] { "One", "Two"}
            };


            // Update column

            Column updatedColumn =
            smartsheet.SheetResources.ColumnResources.UpdateColumn(
              2252168947361668,   // sheetId
              columnSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/columns/{columnId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X PUT \

            -d '{"title": "New multi-select dropdown column", "index": 0,
            "type": "MULTI_PICKLIST", "options": ["One", "Two"]}'
        - lang: Java
          label: Java
          source: |
            // Specify column properties
            Column columnSpecification = new Column(5005385858869124L)
                    .setTitle("First Column")
                    .setIndex(0)
                    .setType(ColumnType.PICKLIST)
                    .setOptions(Arrays.asList("One", "Two"));

            // Update column
                    Column updatedColumn = smartsheet.sheetResources().columnResources().updateColumn(
                    2252168947361668L,   // sheetId
                    columnSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify column properties
            var column = {
              "index": 0,
              "title": "First Column",
              "type": "PICKLIST",
              "options": ["One", "Two"]
            };

            // Set options
            var options = {
              sheetId: 2252168947361668,
              columnId: 5005385858869124,
              body: column
              };

            // Update column
            smartsheet.sheets.updateColumn(options)
              .then(function(updatedColumn) {
                console.log(updatedColumn);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Specify column properties
            column_spec = smartsheet.models.Column({
              'title': 'First Column',
              'type': 'PICKLIST',
              'options': ["One", "Two"],
              'index': 0
            })

            # Update column
            response = smartsheet_client.Sheets.update_column(
              2252168947361668,       # sheet_id
              5005385858869124,       # column_id
              column_spec)

            updated_column = response.result
  /sheets/{sheetId}/comments/{commentId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get a comment
      description: |
        Gets the comment specified by commentId.
      operationId: comment-get
      tags:
        - comments
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Comment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Comment comment =
            smartsheet.SheetResources.CommentResources.GetComment(
              2252168947361668,               // sheetId
              48569348493401200               // commentId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/comments/{commentId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            Comment comment =
            smartsheet.sheetResources().commentResources().getComment(
                    2252168947361668L,       // long sheetId
                    4856934849340120L        // long commentId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              commentId: 48569348493401200
            };

            // Get comment
            smartsheet.sheets.getComment(options)
              .then(function(comment) {
                console.log(comment);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            comment = smartsheet_client.Discussions.get_discussion_comment(
              2252168947361668,       # sheet_id
              4856934849340120        # comment_id
            )
    put:
      summary: Edit a comment
      description: >
        Updates the text of a comment. NOTE: Only the user that created the
        comment is permitted to update it.
      operationId: comment-edit
      tags:
        - comments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentCreationRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Comment'
                properties:
                  version:
                    description: >-
                      New version of the Sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify edited comment properties

            Comment commentSpecification = new Comment

            {
              Id = 7144101943502724,
              Text = "This is the updated comment text"
            }


            // Edit comment

            Comment updatedComment =
            smartsheet.SheetResources.DiscussionResources.CommentResources.UpdateComment(
              3285357287499652,          // sheetId
              commentSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/comments/{commentId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X PUT \

            -d '{"text":"This is the updated comment text."}'
        - lang: Node.js
          label: Node.js
          source: |
            // Specify text
            var body = {
              text: "This is the updated comment text."
            };

            // Set options
            var options = {
              sheetId: 3285357287499652,
              commentId: 7144101943502724,
              body: body
            };

            // Edit comment
            smartsheet.sheets.editComment(options)
              .then(function(updatedComment) {
                console.log(updatedComment);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            comment = smartsheet_client.Discussions.update_comment(
              3285357287499652,       # sheet_id
              7144101943502724,       # comment_id
              smartsheet.models.Comment({
                'text': 'This is the updated comment text'}))
    delete:
      summary: Delete a comment
      description: |
        Deletes the comment specified in the URL.
      operationId: comment-delete
      tags:
        - comments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                properties:
                  version:
                    description: >-
                      New version of the Sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.CommentResources.DeleteComment(
              2252168947361668,           // sheetId
              4952999001909124            // commentId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/comments/{commentId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X 'DELETE'
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().commentResources().deleteComment(
                    2252168947361668L,       // long sheetId
                    4952999001909124L        // long commentId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              commentId: 4952999001909124
            };

            // Delete comment
            smartsheet.sheets.deleteComment(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Discussions.delete_discussion_comment(
              2252168947361668,       # sheet_id
              4952999001909124)       # comment_id
  /sheets/{sheetId}/comments/{commentId}/attachments:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/commentId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Attach File or URL to Comment
      description: >
        Attaches a file to the comment. The URL can be any of the following:


        * Normal URL (attachmentType "LINK")

        * Box.com URL (attachmentType "BOX_COM")

        * Dropbox URL (attachmentType "DROPBOX")

        * Egnyte URL (attachmentType "EGNYTE")

        * Evernote URL (attachmentType "EVERNOTE")

        * Google Drive URL (attachmentType "GOOGLE_DRIVE")

        * OneDrive URL (attachmentType "ONEDRIVE")


        >**Important:** Smartsheet Gov allows only the following attachment
        types:

        > - BOX_COM

        > - FILE

        > - GOOGLE_DRIVE

        > - LINK

        > - ONEDRIVEß


        This operation can be performed using a simple upload or a multipart
        upload.
      operationId: attachments-attachToComment
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                  format: binary
          application/json:
            schema:
              $ref: '#/components/schemas/URLAttachmentRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Attachment'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Attachment attachment =
            smartsheet.SheetResources.CommentResources.AttachmentResources.AttachFile(
              9283173393803140,           // sheetId
              1234567890234568,           // commentId
              filePath,
              "application/msword"
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/comments/{commentId}/attachments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/msword" \

            -H 'Content-Disposition: attachment; filename="ProgressReport.docx"'
            \

            -H "Content-Length: FILE_SIZE" \

            -X POST \

            --data-binary @ProgressReport.docx
        - lang: Java
          label: Java
          source: |
            // Specify file to be attached
            File file = new File("/Users/jdoe/Documents/ProgressReport.docx");

            // Attach file to comment
                    Attachment attachment = smartsheet.sheetResources().commentResources().attachmentResources().attachFile(
                    9283173393803140L,       // long sheetId
                    1234567890234568L,       // long commentId
                    file,
                    "application/msword"
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Enable FileStream
            var fs = require("fs")

            // Set options
            var options = {
              sheetId: 1696803624483716,
              commentId: 7722333183016324,
              fileSize: 20765,
              fileName: "ProgressReport.docx",
              fileStream: fs.createReadStream("/Users/jdoe/Documents/ProgressReport.docx")
            };

            // Attach file to comment
            smartsheet.sheets.addCommentFileAttachment(options)
              .then(function(attachment) {
                  console.log(attachment);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            updated_attachment =
            smartsheet_client.Attachments.attach_file_to_comment(
              9283173393803140,       # sheet_id
              1234567890234568,       # comment_id
              ('ProgressReport.docx',
                open('/path/to/ProgressReport.docx', 'rb'),
                'application/msword')
            )
  /sheets/{sheetId}/copy:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/sheetCopyInclude'
      - $ref: '#/components/parameters/sheetCopyExclude'
    post:
      summary: Copy Sheet
      description: |
        Creates a copy of the specified sheet.
      operationId: copy-sheet
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      requestBody:
        description: Destination where to create a copy of the specified sheet.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerDestination'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/components-schemas-Sheet'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination {
              DestinationId = 3791509922310020,               // long destinationFolderId
              DestinationType = DestinationType.FOLDER,
              NewName = "newSheetName"
            };

            // Sample 1: Omit 'include' parameter
            Sheet sheet = smartsheet.SheetResources.CopySheet(
              9283173393803140,                               // sheetId
              destination,
              null                                            // IEnumerable<SheetCopyInclusion> include
            );

            // Sample 2: Specify 'include' parameter with value of "data"
            Sheet sheet = smartsheet.SheetResources.CopySheet(
              9283173393803140,                               // sheetId
              destination,
              new SheetCopyInclusion[] { SheetCopyInclusion.DATA }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/copy?include=data,attachments'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -d '{
              "destinationType": "folder",
              "destinationId": 7960873114331012,
              "newName": "newSheetName"
            }' \

            -X POST
        - lang: Java
          label: Java
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination()
                    .setDestinationType(DestinationType.FOLDER)
                    .setDestinationId(9283173393803140L)
                    .setNewName("newSheetName");

            // Sample 1: Omit 'include' parameter
            Sheet sheet = smartsheet.sheetResources().copySheet(
                    4583173393803140L,                          // long sheetId
                    destination,
                    null                                        // EnumSet<SheetCopyInclusion> includes
                    );

            // Sample 2: Specify 'include' parameter with value of "data"
            Sheet sheet = smartsheet.sheetResources().copySheet(
                    4583173393803140L,                         // long sheetId
                    destination,
                    EnumSet.of(SheetCopyInclusion.DATA)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set destination information
            var body = {
              destinationType: "home",
              newName: "newSheetName"
            };

            // Set elements to copy
            var params = {
              include: "attachments,data",
              includeAll: true
            };

            // Set options
            var options = {
              sheetId: 7254137655060356,
              body: body,
              queryParameters: params
            };

            // Copy sheet
            smartsheet.sheets.copySheet(options)
              .then(function(copiedSheet) {
                console.log(copiedSheet);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Copy sheet
            response = smartsheet_client.Sheets.copy_sheet(
              4583173393803140,                               # sheet_id
              smartsheet.models.ContainerDestination({
                'destination_type': 'folder',               # folder, workspace, or home
                'destination_id': 9283173393803140,         # folder_id
                'new_name': 'newSheetName'
              })
            )

            # Sample 2: Copy sheet with attachments and discussions
            response = smartsheet_client.Sheets.copy_sheet(
              4583173393803140,       # sheet_id
              include='attachments,discussions'
            )
  /sheets/{sheetId}/crosssheetreferences:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Create Cross-sheet References
      description: >-
        Adds a cross-sheet reference between two sheets and defines the data
        range for formulas. Each distinct data range requires a new cross-sheet
        reference.
      operationId: add-crosssheet-reference
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      tags:
        - crossSheetReferences
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      requestBody:
        description: CrossSheetReference object to create
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CrossSheetReferenceRequestWithColumnIds'
                - $ref: '#/components/schemas/CrossSheetReferenceRequestWithRowIds'
                - $ref: >-
                    #/components/schemas/CrossSheetReferenceRequestWithColumnAndRowIds
      responses:
        '200':
          description: >-
            Result object containing a CrossSheetReference object, corresponding
            to what was specified in the request.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/CrossSheetReference'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            CrossSheetReference xref = new CrossSheetReference();

            xref.Name = "Sample Time Log Sheet Range 1";

            xref.SourceSheetId = 154378742065028;

            xref.StartRowId = 4089096300717956;

            xref.EndRowId = 2681721417164676;

            xref.StartColumnId = 824812248557444;

            xref.EndColumnId = 824812248557444;

            CrossSheetReference newXRef =
            smartsheet.SheetResources.CrossSheetReferenceResources.CreateCrossSheetReference(
                1755440242550660,   //sheetId
                xref
              );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/crosssheetreferences
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{
              "name": "Sample Time Log Sheet Range 1",
              "sourceSheetId": 154378742065028,
              "startRowId": 4089096300717956,
              "endRowId": 2681721417164676,
              "startColumnId": 824812248557444,
              "endColumnId": 824812248557444
            }'
        - lang: Java
          label: Java
          source: >
            CrossSheetReference xref = new CrossSheetReference();
                    xref.setName("Sample Time Log Sheet Range 1");
                    xref.setSourceSheetId(154378742065028L);
                    xref.setStartRowId(4089096300717956L);
                    xref.setEndRowId(2681721417164676L);
                    xref.setStartColumnId(824812248557444L);
                    xref.setEndColumnId(824812248557444L);

            CrossSheetReference newXRef =
            smartsheet.sheetResources().crossSheetReferenceResources().createCrossSheetReference(
                    1755440242550660,   //sheetId
                    xref
                    );
        - lang: Node.js
          label: Node.js
          source: >
            var body = {
              name: "my cross sheet reference",
              sourceSheetId: 154378742065028,
              startRowId: 4089096300717956,
              endRowId: 2681721417164676,
              "startColumnId": 824812248557444,
              "endColumnId": 824812248557444
            };


            smartsheet.sheets.createCrossSheetReference({sheetId: 456745674567,
            body: body})
              .then((result) => {
                console.log("success");
                console.log(JSON.stringify(result));
              })
              .catch((error) => {
                console.log("error");
                console.log(JSON.stringify(error));
              });
        - lang: Python
          label: Python
          source: |
            xref = smartsheet.models.CrossSheetReference({
                'name': 'Sample Time Log Sheet Range 1',
                'source_sheet_id': 154378742065028,
                'start_row_id': 4089096300717956,
                'end_row_id': 2681721417164676,
                'start_column_id': 824812248557444,
                'end_column_id': 824812248557444
            })
            result = smartsheet_client.Sheets.create_cross_sheet_reference(
              1755440242550660, xref)
    get:
      summary: List Cross-sheet References
      description: Lists all cross-sheet references for the sheet.
      operationId: list-crosssheet-references
      tags:
        - crossSheetReferences
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >-
            IndexResult object containing an array of CrossSheetReference
            objects
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/CrossSheetReference'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            //Sample 1: List all

            smartsheet.SheetResources.CrossSheetReferenceResources.ListCrossSheetReferences(
                9283173393803140, // sheetId
                null              // PaginationParameters
              );

            //Sample 2: Paginate the list

            PaginationParameters paginationParameters = new
            PaginationParameters(
                false,  // includeAll
                100,    // pageSize
                1       // page
              );
            smartsheet.SheetResources.CrossSheetReferenceResources.ListCrossSheetReferences(
                9283173393803140,   // sheetId
                paginationParameters
              );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/crosssheetreferences
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            //Sample 1: List all

            smartsheet.sheetResources().crossSheetReferenceResources().listCrossSheetReferences(
                    9283173393803140L,  // sheetId
                    null    // PaginationParameters
                    );

            //Sample 2: Paginate the list

            PaginationParameters paginationParameters = new
            PaginationParameters(
                    false,  // includeAll
                    100,    // pageSize
                    1       // page
                    );
            smartsheet.sheetResources().crossSheetReferenceResources().listCrossSheetReferences(
                    9283173393803140L,  // sheetId
                    paginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: >
            smartsheet.sheets.listCrossSheetReferences({sheetId:
            9283173393803140})
              .then((result) => {
                console.log("success");
                console.log(JSON.stringify(result));
              })
              .catch((error) => {
                console.log("error");
                console.log(JSON.stringify(error));
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List All
            result = smartsheet_client.Sheets.list_cross_sheet_references(
              9283173393803140)

            # Sample 2: Paginate the list of cross-sheet references
            response = smartsheet_client.Sheets.list_cross_sheet_references(
              9283173393803140,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            crosssheetreferences = response.data
  /sheets/{sheetId}/crosssheetreferences/{crossSheetReferenceId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/crossSheetReferenceId'
    get:
      summary: Get Cross-sheet Reference
      description: Gets the cross-sheet reference specified in the URL.
      operationId: get-crosssheet-reference
      tags:
        - crossSheetReferences
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: CrossSheetReference object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrossSheetReference'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            CrossSheetReference xref =
            smartsheet.SheetResources.CrossSheetReferenceResources.GetCrossSheetReference(
                9283173393803140, // sheetId
                8157685695702916  // crossSheetReferenceId
              );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/crosssheetreferences/{crossSheetReferenceId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            CrossSheetReference xref =
            smartsheet.sheetResources().crossSheetReferenceResources().getCrossSheetReference(
                    9283173393803140L, // sheetId
                    8157685695702916L  // crossSheetReferenceId
                    );
        - lang: Node.js
          label: Node.js
          source: >
            smartsheet.sheets.getCrossSheetReference({sheetId: 9283173393803140,
            crossSheetReferenceId: 8157685695702916})
              .then((result) => {
                console.log("success");
                console.log(JSON.stringify(result));
              })
              .catch((error) => {
                console.log("error");
                console.log(JSON.stringify(error));
              });
        - lang: Python
          label: Python
          source: |
            result = smartsheet_client.Sheets.get_cross_sheet_reference(
                9283173393803140, # sheet_id
                8157685695702916  # cross_sheet_reference_id
              )
  /sheets/{sheetId}/discussions:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Discussions
      description: >
        Gets a list of all discussions associated with the specified sheet.
        Remember that discussions are containers

        for the conversation thread. To see the entire thread, use the
        include=comments parameter.
      operationId: discussions-list
      tags:
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/discussionInclude'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of discussions
                        type: array
                        items:
                          $ref: '#/components/schemas/Discussion'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PaginatedResult<Discussion> results =
            smartsheet.SheetResources.DiscussionResources.ListDiscussions(
              9283173393803140,               // sheetId
              null,                           // IEnumerable<DiscussionInclusion> include
              null                            // PaginationParameters
            );


            // Sample 2: Specify 'include' parameter with values of 'COMMENTS'
            and 'ATTACHMENTS', and 'includeAll' parameter with value of 'true'

            PaginatedResult<Discussion> results =
            smartsheet.SheetResources.DiscussionResources.ListDiscussions(
              9283173393803140,               // sheetId
              new DiscussionInclusion[] { DiscussionInclusion.COMMENTS, DiscussionInclusion.ATTACHMENTS },
              new PaginationParameters(
                true,                       // includeAll
                null,                       // int pageSize
                null)                       // int page
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions?include=comments,attachments'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PagedResult<Discussion> results =
            smartsheet.sheetResources().discussionResources().listDiscussions(
                    9283173393803140L,   // long sheetId
                    null,                // PaginationParameters
                    null                 // EnumSet<DiscussionInclusion> includes
                    );

            // Sample 2: Specify pagination parameter 'includeAll'

            PaginationParameters parameters = new PaginationParameters()
                    .setIncludeAll(true);

            // List discussions (specify 'include' parameter with values of
            'COMMENTS' and 'ATTACHMENTS', and 'includeAll' parameter with value
            of 'true')

            PagedResult<Discussion> results =
            smartsheet.sheetResources().discussionResources().listDiscussions(
                    9283173393803140L,   // long sheetId
                    parameters,
                    EnumSet.of(DiscussionInclusion.COMMENTS, DiscussionInclusion.ATTACHMENTS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 3138415114905476
            };

            // List discussions
            smartsheet.sheets.getDiscussions(options)
              .then(function(discussionList) {
                console.log(discussionList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Discussions.get_all_discussions(
              9283173393803140,       # sheet_id
              include_all=True)
            discussions = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Discussions.get_all_discussions(
              9283173393803140,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            discussions = response.data
    post:
      summary: Create a Discussion
      description: >
        Creates a new discussion on a sheet. To create a discussion with an
        attachment please use "multipart/form-data" content type.
      operationId: discussions-create
      tags:
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscussionCreationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DiscussionCreationRequestWithAttachment'
            encoding:
              discussion:
                contentType: application/json
              file:
                contentType: application/octet-stream
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Discussion'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Example request: create discussion on sheet (without attachment)


            // Create discussion (including the comment)

            Discussion discussionSpecification = new Discussion

            {
              Comment = new Comment
              {
                Text = "This text is the body of the first comment"
              },
              Comments = null         // workaround for SDK issue
            };


            // Add discussion to sheet

            Discussion newDiscussion =
            smartsheet.SheetResources.DiscussionResources.CreateDiscussion(
              9283173393803140,                   // sheetId
              discussionSpecification
            );


            // Example request: create discussion on sheet (with attachment)


            // Create discussion (including the comment)

            Discussion discussionSpecification = new Discussion

            {
              Comment = new Comment
              {
                Text = "This text is the body of the first comment"
              },
              Comments = null         // workaround for SDK issue
            };


            // Add discussion (including comment with attachment) to sheet

            Discussion newDiscussion =
            smartsheet.SheetResources.DiscussionResources.CreateDiscussionWithAttachment(
              9283173393803140,                   // sheetId
              discussionSpecification,
              filePath,
              "application/octet-stream"
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: create discussion on sheet (without attachment)


            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"comment": {"text":"This text is the body of the first
            comment"}}'


            # Example request: create discussion on sheet (with attachment)


            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: multipart/form-data" \

            -X POST \

            -F 'discussion={ "comment": { "text": "This text is the body of the
            first comment" } };type=application/json' \

            -F "file=@file_to_attach;type=application/octet-stream"
        - lang: Java
          label: Java
          source: |
            // Example request: create discussion on sheet (without attachment)

            // Create comment
            Comment commentSpecification = new Comment()
                    .setText("This text is the body of the first comment");

            // Create discussion (including the comment)
                    Discussion discussionSpecification = new Discussion()
                    .setComment(commentSpecification)
                    .setComments(null);     // workaround for SDK issue

            // Add discussion to sheet
                    Discussion newDiscussion = smartsheet.sheetResources().discussionResources().createDiscussion(
                    9283173393803140L,       // long sheetId
                    discussionSpecification
                    );

            // Example request: create discussion on sheet (with attachment)

            // Create comment
                    Comment commentSpecification = new Comment()
                    .setText("This text is the body of the first comment");

            // Create discussion (including the comment)
                    Discussion discussionSpecification = new Discussion()
                    .setComment(commentSpecification)
                    .setComments(null);     // workaround for SDK issue

                    File file = new File(filePath);

            // Add discussion (including comment with attachment) to sheet
                    Discussion newDiscussion = smartsheet.sheetResources().discussionResources().createDiscussionWithAttachment(
                    9283173393803140L,       // long sheetId
                    discussionSpecification,
                    file,
                    "application/octet-stream"
                    );
        - lang: Node.js
          label: Node.js
          source: >
            // Example request: create discussion on sheet (without attachment)


            // Specify discussion

            var discussion = {
              "comment": {
                "text": "This text is the body of the first comment"
              }
            };


            // Set options

            var options = {
              sheetId: 2252168947361668,
              body: discussion
              };

            // Add discussion to sheet

            smartsheet.sheets.createDiscussion(options)
              .then(function(newDiscussion) {
                console.log(newDiscussion);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Example request: create discussion on sheet (with attachment)


            // Multipart operations are not supported by the Node SDK. Instead,
            see instructions to Create Discussion on Sheet, and then Attach File
            to Comment.
        - lang: Python
          label: Python
          source: >
            # Example request: create discussion on sheet (without attachment)


            response = smartsheet_client.Discussions.create_discussion_on_sheet(
              9283173393803140,           # sheet_id
              smartsheet.models.Discussion({
                'comment': smartsheet.models.Comment({
                  'text': 'This text is the body of the first comment'
                })
              })
            )


            # Example request: create discussion on sheet (with attachment)


            response =
            smartsheet_client.Discussions.create_discussion_on_sheet_with_attachment(
              9283173393803140,           # sheet_id
              smartsheet.models.Discussion({
                'comment': smartsheet.models.Comment({
                  'text': 'This text is the body of the first comment'
                })
              }),
              ('photo.jpg', open('/path/to/photo.jpg', 'rb'), 'image/jpeg')
            )
  /sheets/{sheetId}/discussions/{discussionId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/discussionId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Discussion
      description: |
        Gets the discussion specified by discussionId.
      operationId: discussion-get
      tags:
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Discussion'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Discussion discussion =
            smartsheet.SheetResources.DiscussionResources.GetDiscussion(
              9283173393803140,               // sheetId
              0123456789012345                // discussionId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions/{discussionId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            Discussion discussion =
            smartsheet.sheetResources().discussionResources().getDiscussion(
                    9283173393803140L,       // long sheetId
                    0123456789012345L        // long discussionId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              discussionId: 2331373580117892
            };

            // Get discussion
            smartsheet.sheets.getDiscussions(options)
              .then(function(discussion) {
                console.log(discussion);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            discussion = smartsheet_client.Discussions.get_discussion(
              9283173393803140,       # sheet_id
              0123456789012345)       # discussion_id

            # discussion is an instance of smartsheet.models.Discussion
    delete:
      summary: Delete a Discussion
      description: |
        Deletes the discussion specified in the URL.
      operationId: discussion-delete
      tags:
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.DiscussionResources.DeleteDiscussion(
              9283173393803140,               // sheetId
              0123456789012345                // discussionId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions/{discussionId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"\

            -X 'DELETE'
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().discussionResources().deleteDiscussion(
                    9283173393803140L,       // long sheetId
                    0123456789012345L        // long discussionId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              discussionId: 991393444325252
            };

            // Delete discussion
            smartsheet.sheets.deleteDiscussion(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Discussions.delete_discussion(
              9283173393803140,       # sheet_id
              0123456789012345)       # discussion_id
  /sheets/{sheetId}/discussions/{discussionId}/attachments:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/discussionId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Discussion Attachments
      description: |
        Gets a list of all attachments that are in the discussion.
      operationId: discussion-listAttachments
      tags:
        - attachments
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of attachments
                        type: array
                        items:
                          $ref: '#/components/schemas/Attachment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Attachment> attachments =
            smartsheet.SheetResources.DiscussionResources.AttachmentResources.ListAttachments(
              9283173393803140,               // sheetId
              1234567890123456,               // discussionId
              null                            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions/{discussionId}/attachments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination

            PagedResult<Attachment> attachments =
            smartsheet.sheetResources().discussionResources().attachmentResources().getAttachments(
                    9283173393803140L,       // long sheetId
                    1234567890123456L,       // long discussionId
                    null                     // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              discussionId: 3962273862576004
            };

            // List discussion attachments
            smartsheet.sheets.listDiscussionAttachments(options)
              .then(function(attachmentsList) {
                  console.log(attachmentsList);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: List All

            response =
            smartsheet_client.Attachments.list_discussion_attachments(
              9283173393803140,       # sheet_id
              1234567890123456,       # discussion_id
              include_all=True)
            attachments = response.data


            # Sample 2: Paginate the list

            response =
            smartsheet_client.Attachments.list_discussion_attachments(
              9283173393803140,       # sheet_id
              1234567890123456,       # discussion_id
              page_size=10,
              page=1)
            pages = response.total_pages

            attachments = response.data
  /sheets/{sheetId}/discussions/{discussionId}/comments:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/discussionId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Create a comment
      description: >
        Adds a comment to a discussion. To create a comment with an attachment
        please use "multipart/form-data" content type.
      operationId: comments-create
      tags:
        - comments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentCreationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CommentCreationRequestWithAttachment'
            encoding:
              comment:
                contentType: application/json
              file:
                contentType: application/octet-stream
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Comment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Example request: add comment (without attachment)


            // Create comment

            Comment commentSpecification = new Comment

            {
              Text = "This is a new comment."
            };


            // Add comment to discussion

            Comment newComment =
            smartsheet.SheetResources.DiscussionResources.CommentResources.AddComment(
              2252168947361668,               // sheetId
              3962273862576004,               // discussionId
              commentSpecification
            );


            // Example request: add comment (with attachment)


            // Create comment

            Comment commentSpecification = new Comment

            {
              Text = "This is a new comment."
            };


            // Add comment (with attachment) to discussion

            Comment newComment =
            smartsheet.SheetResources.DiscussionResources.CommentResources.AddCommentWithAttachment(
              2252168947361668,                   // sheetId
              3962273862576004,                   // discussionId
              commentSpecification,
              filePath,
              "application/octet-stream"
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: add comment (without attachment)


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions/{discussionId}/comments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"text":"This is a new comment."}'


            # Example request: add comment (with attachment)


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/discussions/{discussionId}/comments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: multipart/form-data" \

            -X POST \

            -F 'comment={ "text":"This is a new comment."
            };type=application/json' \

            -F "file=@insurance_benefits.pdf;type=application/octet-stream"
        - lang: Java
          label: Java
          source: |
            // Example request: add comment (without attachment)

            // Create comment
            Comment commentSpecification = new Comment()
                    .setText("This is a new comment.");

            // Add comment to discussion
                    Comment newComment = smartsheet.sheetResources().discussionResources().commentResources().addComment(
                    2252168947361668L,       // long sheetId
                    3962273862576004L,       // long discussionId
                    commentSpecification
                    );

            // Example request: add comment (with attachment)

            // Create comment
                    Comment commentSpecification = new Comment()
                    .setText("This is a new comment.");

            // Add comment (with attachment) to discussion
                    File file = new File(filePath);
                    smartsheet.sheetResources().discussionResources().commentResources().addCommentWithAttachment(
                    2252168947361668L,       // long sheetId
                    3962273862576004L,       // long discussionId
                    commentSpecification,
                    file,
                    "application/octet-stream"
                    );
        - lang: Node.js
          label: Node.js
          source: >
            // Example request: add comment (without attachment)


            // Specify comment

            var comment = { "text": "This is a new comment." };


            // Set options

            var options = {
              sheetId: 2252168947361668,
              discussionId: 3962273862576004,
              body: comment
              };

            // Add comment to discussion

            smartsheet.sheets.addDiscussionComment(options)
              .then(function(newComment) {
                console.log(newComment);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Example request: add comment (with attachment)


            // Multipart operations are not supported by the Node SDK. Instead,
            see instructions to Add Comment, and then Attach File to Comment.
        - lang: Python
          label: Python
          source: >
            # Example request: add comment (without attachment)


            response = smartsheet_client.Discussions.add_comment_to_discussion(
              2252168947361668,       # sheet_id
              3962273862576004,       # discussion_id
              smartsheet.models.Comment({
                'text': 'This is a new comment.'
              })
            )


            # Example request: add comment (with attachment)


            # Create comment

            comment = smartsheet.models.Comment({
              'text': 'This is a new comment.'
            })


            # Add comment (with attachment) to discussion

            response =
            smartsheet_client.Discussions.add_comment_to_discussion_with_attachment(
              2252168947361668,           # sheet_id
              3962273862576004,           # discussion_id
              comment,
              ('image.png', open('/path/to/image.png', 'rb'), 'image/png')
            )
  /sheets/{sheetId}/emails:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Content-Type'
    post:
      summary: Send Sheet via Email
      description: >-
        Sends the sheet as a PDF attachment via email to the designated
        recipients.
      operationId: sheet-send
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      requestBody:
        description: |
          [SheetEmail object](/api/smartsheet/openapi/sendviaemail/sheetemail)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SheetEmail'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify recipients

            Recipient[] recipients = new Recipient[] {
              new Recipient { Email = "john.doe@smartsheet.com" },
              new Recipient { GroupId = 2258118617917316 }
            };


            // Configure email

            SheetEmail sheetEmail = new SheetEmail {
              SendTo = recipients,
              Subject = "Check this report out!",
              Message = "Here are the rows I mentioned in our meeting",
              CcMe = false,
              Format = SheetEmailFormat.PDF,
              FormatDetails = new FormatDetails { PaperSize = PaperSize.A4 }
            };


            // Send sheet via email

            smartsheet.SheetResources.SendSheet(4293147074291588,
            sheetEmail);      // sheetId
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/emails \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"sendTo" : [{"email": "john.doe@smartsheet.com"}, {"groupId":
            2258118617917316}], "subject": "Check these rows out!", "message":
            "Here is the Sheet I mentioned in our meeting.", "ccMe": false,
            "format": "PDF", "formatDetails": {"paperSize": "A4"}}'
        - lang: Java
          label: Java
          source: >
            // Specify individual recipient

            RecipientEmail recipientEmail = new
            RecipientEmail.AddRecipientEmailBuilder()
                    .setEmail("john.doe@smartsheet.com")
                    .build();

            // Specify group recipient

            RecipientGroup recipientGroup = new
            RecipientGroup.AddRecipientGroupBuilder()
                    .setGroupId(2258118617917316L)
                    .build();

            // Set recipients

            List<Recipient> recipients =
            Arrays.asList(recipientEmail,recipientGroup);


            // Set format details

            FormatDetails formatDetails = new FormatDetails();

            formatDetails.setPaperSize(PaperSize.A0);


            // Configure email

            SheetEmail email = new SheetEmail.AddSheetEmailBuilder()
                    .setSendTo(recipients)
                    .setSubject("Check these rows out!")
                    .setMessage("Here are the rows I mentioned in our meeting")
                    .setCcMe(false)
                    .setFormat(SheetEmailFormat.PDF)
                    .setFormatDetails(formatDetails)
                    .build();

            // Send sheet via email

            smartsheet.sheetResources().sendSheet(4293147074291588L,
            email);        // sheetId
        - lang: Node.js
          label: Node.js
          source: |
            // Configure email
            var email = {
              "sendTo": [
                {
                  "email": "john.doe@smartsheet.com"
                },
                {
                  "groupId": 2258118617917316
                }
              ],
              "subject": "Check these rows out!",
              "message": "Here are the rows I mentioned in our meeting",
              "ccMe": false,
              "format": "PDF",
              "formatDetails": {
                "paperSize": "A4"
              }
            };

            // Set options
            var options = {
              body: email,
              sheetId: 2252168947361668
            };

            // Send sheet via email
            smartsheet.sheets.sendSheetViaEmail(options)
              .then(function(data) {
                console.log(data);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sheets.send_sheet(
              4293147074291588,           # sheet_id
              smartsheet.models.SheetEmail({
                'send_to': [
                  smartsheet.models.Recipient({'email': 'john.doe@smartsheet.com'}),
                  smartsheet.models.Recipient({'group_id': 2258118617917316})
                ],
                'subject': 'Check these rows out!',
                'message': 'Here are the rows I mentioned in our meeting.',
                'cc_me': False,
                'format': 'PDF',
                'format_details': smartsheet.models.FormatDetails({
                  'paper_size': 'A4'
                })
              })
            )
  /sheets/{sheetId}/move:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Content-Type'
    post:
      summary: Move Sheet
      description: >
        Moves the specified sheet to a new location.

        When a sheet that is shared to one or more users and/or groups is moved
        into or out of a workspace, those sheet-level shares are preserved.
      operationId: move-sheet
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      requestBody:
        description: Destination to move the specified sheet.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerDestinationForMove'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/components-schemas-Sheet'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination {
              DestinationId = 7960873114331012,           // destinationFolderId
              DestinationType = DestinationType.FOLDER,
            };

            // Move sheet
            Sheet sheet = smartsheet.SheetResources.MoveSheet(
              4583173393803140,                           // sheetId
              destination
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/move \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -d '{
              "destinationType": "folder",
              "destinationId": 7960873114331012
            }' \
            -X POST
        - lang: Java
          label: Java
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination();
                    destination.setDestinationType(DestinationType.FOLDER)
                    .setDestinationId(7960873114331012L);

            // Move sheet
            Sheet sheet = smartsheet.sheetResources().moveSheet(
                    4583173393803140L,                         // long sheetId
                    destination
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set destination information
            var body = {
              destinationType: "folder",
              destinationId: 7960873114331012
            };

            // Set options
            var options = {
              sheetId: 4583173393803140,
              body: body
            };

            // Move sheet
            smartsheet.sheets.moveSheet(options)
              .then(function(movedSheet) {
                console.log(movedSheet);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            sheet = smartsheet_client.Sheets.move_sheet(
              4583173393803140,                       # sheet_id
              smartsheet.models.ContainerDestination({
                'destination_type': 'folder',       # folder, workspace, or home
                'destination_id': 7960873114331012  # folder_id
              })
            )
  /sheets/{sheetId}/proofs:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      summary: List Proofs
      description: |
        Gets a list of all proofs for a given sheet.
      operationId: proofs-getAllProofs
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of all proofs
                        type: array
                        items:
                          $ref: '#/components/schemas/Proof'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
  /sheets/{sheetId}/proofs/{proofId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/proofId'
      - $ref: '#/components/parameters/Authorization'
    get:
      parameters:
        - $ref: '#/components/parameters/proofInclude'
      summary: Get Proof
      description: >
        Gets the proof specified in the URL. Returns the proof, which is
        optionally populated with discussion and attachment objects.
      operationId: proofs-get
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Proof'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}?include=attachments,discussions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
    delete:
      summary: Delete Proof
      description: >
        Deletes the proof including all versions. The proofId must be for the
        original version.
      operationId: proofs-delete
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}' \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
    put:
      summary: Update Proof Status
      description: |
        Sets the proof status as either complete or incomplete.
      operationId: proofs-update
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProofStatusRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Proof'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Disposition: attachment; filename="abc.bmp"" \

            -X PUT
  /sheets/{sheetId}/proofs/{proofId}/attachments:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/proofId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Proof Attachments
      description: >
        Gets a list of all attachments that are in the proof, excluding
        discussion-level attachments in the proof.
      operationId: proofs-listAttachments
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of proof attachments
                        type: array
                        items:
                          $ref: '#/components/schemas/Attachment'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/attachments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
    post:
      summary: Attach File to Proof
      description: |
        Attaches a file to the proof.
      operationId: proofs-attachToProof
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Attachment'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/attachments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: image/gif" \

            -H "Content-Disposition: attachment; filename="giphy.gif"" \

            -X POST \

            --data-binary "@home/giphy.gif"
  /sheets/{sheetId}/proofs/{proofId}/discussions:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/proofId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Proof Discussions
      description: |
        Gets a list of all discussions that are in the proof.
      operationId: proofs-listDiscussions
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/discussionInclude'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of proof discussions
                        type: array
                        items:
                          $ref: '#/components/schemas/Discussion'
    post:
      summary: Create Proof Discussion
      description: |
        Creates a discussion on a proof.
      operationId: proofs-createDiscussion
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscussionCreationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DiscussionCreationRequestWithAttachment'
            encoding:
              discussion:
                contentType: application/json
              file:
                contentType: application/octet-stream
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Discussion'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: create proof discussion (without attachment)

            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/discussions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: multipart/form-data \

            -X POST \

            --data-binary "@/home/Downloads/test_b (4).pdf"


            // Sample 2: create proof discussion (with attachment)

            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/discussions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: multipart/form-data \

            -X POST \

            -F 'discussion={ "comment": { "text": "This text is the body of the
            first comment" } };type=application/json' \

            -F "file=@/home/Downloads/test_b
            (4).pdf;type=application/octet-stream"
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/discussions'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
  /sheets/{sheetId}/proofs/{proofId}/requestactions:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/proofId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Proof Request Actions
      description: >
        Gets a summarized list of all request actions associated with the
        specified proof.
      operationId: proofs-listRequestActions
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of proof request actions
                        type: array
                        items:
                          $ref: '#/components/schemas/ProofRequestAction'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/requestactions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
  /sheets/{sheetId}/proofs/{proofId}/requests:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/proofId'
      - $ref: '#/components/parameters/Authorization'
    delete:
      summary: Delete Proof Requests
      description: |
        Deletes all proof requests in a proof.
      operationId: proofs-deleteProofRequests
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/requests
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
    post:
      summary: Create Proof Request
      description: |
        Creates a proof request.
      operationId: proofs-createProofRequests
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProofRequestBody'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/ProofRequest'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/requests
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{
              "sendTo": [{
                "email": "john.doe@smartsheet.com"
              }],
              "subject": "This is a test."
            }'
  /sheets/{sheetId}/proofs/{proofId}/versions:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/proofId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Proof Versions
      description: >
        Gets a list of all versions of the given proofId in order from newest to
        oldest.
      operationId: proofs-getVersions
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of proof versions
                        type: array
                        items:
                          $ref: '#/components/schemas/Proof'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/versions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
    delete:
      summary: Delete Proof Version
      description: |
        Deletes a proof version. Proof Id must be a current version proof Id.
      operationId: proofs-deleteVersion
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/versions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
    post:
      summary: Create Proof Version
      description: |
        Creates a proof version. Proof Id must be for the original proof.
      operationId: proofs-createVersion
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                  format: binary
          application/json:
            schema:
              $ref: '#/components/schemas/URLAttachmentRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Proof'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/proofs/{proofId}/versions
            \

            -H "Content-Disposition: attachment; filename="error.gif"" \

            -H "Content-Type: image/gif" \

            -X POST \

            --data-binary "@/home/Downloads/giphy.gif"
  /sheets/{sheetId}/publish:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Sheet Publish Status
      description: |
        Gets the sheet's 'Publish' settings.
      operationId: get-sheetPublish
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SheetPublish'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            SheetPublish status = smartsheet.SheetResources.GetPublishStatus(
              4583173393803140            // sheetId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/publish \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            SheetPublish status = smartsheet.sheetResources().getPublishStatus(
                    4583173393803140L,       // long sheetId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 4583614634583940
            };

            // Get sheet publish status
            smartsheet.sheets.getPublishStatus(options)
              .then(function(status) {
                console.log(status);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sheets.get_publish_status(
              4583173393803140)       # sheet_id
            status = response.result
            # status is a smartsheet.models.SheetPublish object
    put:
      summary: Set Sheet Publish Status
      description: >
        Sets the publish status of the sheet and returns the new status,
        including the URLs of any enabled publishings.
      operationId: set-sheetPublish
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: >
          SheetPublish object.


          For Read Only, if you do not specify a value for
          **readOnlyFullAccessibleBy**, the value defaults

          to the organization-level 'Sheet Publishing' setting (if the sheet
          owner belongs to an organization account)

          or to **ALL** (if the sheet owner does not belong to an organization
          account).


          For Read Write, if you do not specify a value for
          **readWriteAccessibleBy**, the value defaults

          to the organization-level 'Sheet Publishing' setting (if the sheet
          owner belongs to an organization account)

          or to **ALL** (if the sheet owner does not belong to an organization
          account).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SheetPublishRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SheetPublish'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify sheet publish status properties

            SheetPublish publishSpecification = new SheetPublish

            {
              ReadOnlyLiteEnabled = true,
              ReadOnlyFullEnabled = false,
              ReadWriteEnabled = false,
              IcalEnabled = false
            };


            // Set sheet publish status

            SheetPublish updatedStatus =
            smartsheet.SheetResources.UpdatePublishStatus(
              4583614634583940,       // sheetId
              publishSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/publish \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{"readOnlyLiteEnabled": true,"readOnlyFullEnabled":
            false,"readWriteEnabled": false,"icalEnabled": false}'
        - lang: Java
          label: Java
          source: >
            // Specify sheet publish status properties

            SheetPublish publishSpecification = new SheetPublish()
                    .setIcalEnabled(false)
                    .setReadOnlyFullEnabled(false)
                    .setReadWriteEnabled(false)
                    .setReadOnlyLiteEnabled(true);

            // Set sheet publish status

            SheetPublish updatedStatus =
            smartsheet.sheetResources().updatePublishStatus(
                    4583614634583940L,       // long sheetId
                    publishSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify publish status
            var publishStatus = {
              "readOnlyLiteEnabled": true,
              "readOnlyFullEnabled": false,
              "readWriteEnabled": false,
              "icalEnabled": false
            };

            // Set options
            var options = {
              sheetId: 4583614634583940,
              body: publishStatus
              };

            // Set publish status
            smartsheet.sheets.setPublishStatus(options)
              .then(function(updatedStatus) {
                console.log(updatedStatus);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # With the Python SDK, if fewer than all four flags are set, current
            status is retrieved and merged with the flags that _are_ set with
            this method call.


            updated_status = smartsheet_client.Sheets.set_publish_status(
              4583173393803140,       # sheet_id
              smartsheet.models.SheetPublish({
                'read_only_lite_enabled': True
              })
            )
  /sheets/{sheetId}/rows:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Add Rows
      description: >
        Inserts one or more rows into the sheet specified in the URL. If you
        want to insert the rows in any position but the default, use
        [location-specifier attributes](/api/smartsheet/openapi/rows) (that is,
        toTop, toBottom, parentId, siblingId, above, indent, outdent). See
        language tabs for variations in syntax.


        Note: This operation does not add rows with cells that have images.
        However, you can upload an image to a cell *after* the cell exists in a
        sheet. To do so, call the operation described in the [Add Image to
        Cell](/api/smartsheet/openapi/cellimages/addimagetocell) page.


        This operation supports both single-object and bulk semantics. For more
        information, see [Optional Bulk
        Operations](/api/smartsheet/guides/advanced-topics/scalability-options#bulk-operations).
      operationId: rows-addToSheet
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/allowPartialSuccess'
        - $ref: '#/components/parameters/overrideValidation'
      requestBody:
        description: >
          [Row object](/api/smartsheet/openapi/rows/row) or an array of Row
          objects, with the following attributes:
           * One or more [location-specifier attributes](/api/smartsheet/openapi/rows) (required)
           * **expanded** (optional)
           * **format** (optional)
           * **cells** (optional) -- if specified, must be an array of [Cell objects](/api/smartsheet/openapi/cells/cell), where each object is limited to the following attributes:
             * **columnId** (required)
             * One of the following (required):
                * **formula**: the formula for the cell. For cross-sheet formulas, you must first define a [cross-sheet reference](/api/smartsheet/openapi/crosssheetreferences)
                * **value**
             * When **value** is specified
                * [hyperlink](/api/smartsheet/openapi/schemas/widgethyperlink) (optional) with exactly one of the following attributes set:
                  * **reportId**
                  * **sheetId**
                  * **url**
                * [linkInFromCell]() (optional) with all of the following attributes set:
                  * **columnId**
                  * **rowId**
                  * **sheetId**
                * **strict** (optional)
             * **format** (optional)
             * **overrideValidation** (optional)
           * **locked** (optional) - **true** to lock the row or **false** to unlock the row.

          See [Column Types](/api/smartsheet/openapi/columns) for more
          information.


          **NOTES:**

          * Column Ids must be valid for the sheet to which the row belongs, and
          must only be used once for each row in the operation.

          * Cells of a project sheet in the "Finish Date" column cannot be
          updated via API.

          * Cells of a project sheet in the "Start Date" column cannot be
          updated via API for rows that contain a value in the "Predecessor"
          column.

          * Max length for a cell value is 4000 characters after which
          truncation occurs without warning. Empty string values are converted
          to null.

          * When adding or updating rows, there is a 500 row limit for each API
          call.  

          * Calculation errors or problems with a formula do not cause the API
          call to return an error code. Instead, the response contains the same
          value as in the UI, such as cell.value = "#CIRCULAR REFERENCE".

          * If you are adding or updating a row using *linkInFromCell*, you
          cannot use *overrideValidation* as a query param. In this case, you
          must pass *overrideValidation* in the body as a cell update field.
          Additionally, *linkInFromCell* requires a *value* of null.

          * Any one sheet can have up to 500,000 inbound cell links. (Smartsheet
          Gov has an inbound cell link limit of 100,000.) 

          * If you want to clear a cell link, you can either pass *value* as an
          empty string or set the *value* to the current value and omit
          *linkInFromCell*.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Row'
                - type: array
                  items:
                    $ref: '#/components/schemas/Row'
      responses:
        '200':
          description: >-
            Returns [Result object](/api/smartsheet/openapi/schemas/result)
            containing the newly created rows -- either a single [Row
            object](/api/smartsheet/openapi/rows/row) or array of Row objects,
            corresponding to what was specified in the request, as well as the
            new version of the sheet.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/AddRowsObject'
        default:
          description: >
            When **allowPartialSuccess=false** (or not specified):


            If an error occurs, the [Error
            object](/api/smartsheet/openapi/schemas/error) returned contains a
            **detail** attribute set to an object with the following attribute:

            * **index**: the array index of the row that caused the error (0 if
            a single Row was passed in)


            If any error occurs, the entire request fails (no rows are added),
            and the error response returned describes the first problem that was
            encountered. For example:

            ```

            {
              "errorCode": 1042,
              "message": "The cell value in column 5504245941200772 did not conform to the strict requirements for type CHECKBOX."
              "detail": {
                "index": 4
              }
            }

            ```


            When **allowPartialSuccess=true**:


            When partial success is enabled, and one or more of the objects in
            the request fail to be added/updated/deleted, a standard [Result
            object](/api/smartsheet/openapi/schemas/result) is returned, but
            with a **message** of **'PARTIAL_SUCCESS'** (instead of
            **'SUCCESS'**), and a **resultCode** of **3**. Additionally, the
            object contains a **failedItems** attribute -- an array of
            [BulkItemFailure
            objects](/api/smartsheet/openapi/schemas/bulkitemfailure) that
            contains an item for each object in the request that failed to be
            added/updated/deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify cell values for first row
            Cell[] cellsToInsert = new Cell[]
            {
              new Cell
              {
                ColumnId = addedColumns[0].Id,
                ObjectValue = new MultiPicklistObjectValue(new string[] {"Bat", "Cat"})
              }
            };
            Row rowA = new Row
            {
              ToTop = true,
              Cells = cellsToInsert
            };

            // Specify cell values of second row
            Cell[] cellsB = new Cell[] {
              new Cell
              {
                ColumnId = 7960873114331012,
                Value = true
              },
              new Cell
              {
                ColumnId = 642523719853956,
                Value = "New status"
              }
            };

            // Specify contents of second row
            Row rowB = new Row
            {
              ToTop = true,
              Cells = cellsB
            };

            // Add rows to sheet
            IList<Row> newRows = smartsheet.SheetResources.RowResources.AddRows(
              2331373580117892,               // sheetId
              new Row[] { rowA, rowB }        // IEnumerable<Row> rowsToAdd
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/rows \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{"toTop":true, "cells": [ {"columnId": 7960873114331012,
            "value": true}, {"columnId": 642523719853956, "value": "New status",
            "strict": false} ] }, {"toTop":true, "cells": [ {"columnId":
            7960873114331012, "value": true}, {"columnId": 642523719853956,
            "value": "New status", "strict": false} ] }]'
        - lang: Java
          label: Java
          source: >
            // Specify cell values for first row

            List<Cell> rowACells = Arrays.asList(
                    new Cell(7960873114331012L)   // column Id
                    .setValue(true),
                    new Cell(642523719853956L)    // column Id
                    .setValue("New status")
                    );

            // Specify contents of first row

            Row rowA = new Row();

            rowA.setCells(rowACells)
                    .setToBottom(true);

            // Specify cell values for second row

            List<Cell> rowBCells = Arrays.asList(
                    new Cell(7960873114331012L)
                    .setValue(true),
                    new Cell(642523719853956L)
                    .setValue("New status")
                    );

            // Specify contents of second row

            Row rowB = new Row();

            rowB.setCells(rowBCells)
                    .setToBottom(true);

            // Add rows to sheet

            List<Row> newRows =
            smartsheet.sheetResources().rowResources().addRows(
                    1639534409607044L,    // sheet Id
                    Arrays.asList(rowA, rowB));
        - lang: Node.js
          label: Node.js
          source: |
            // Specify rows
            var row = [
              {
                "toTop": true,
                "cells": [
                  {
                    "columnId": 7960873114331012,
                    "value": true
                  },
                  {
                    "columnId": 642523719853956,
                    "value": "New status",
                    "strict": false
                  }
                ]
              },
              {
                "toTop": true,
                "cells": [
                  {
                    "columnId": 7960873114331012,
                    "value": true
                  },
                  {
                    "columnId": 642523719853956,
                    "value": "New status",
                    "strict": false
                  }
                ]
              }
            ];

            // Set options
            var options = {
              sheetId: 2252168947361668,
              body: row
              };

            // Add rows to sheet
            smartsheet.sheets.addRows(options)
              .then(function(newRows) {
                console.log(newRows);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Specify cell values for one row
            row_a = smartsheet.models.Row()
            row_a.to_top = True
            row_a.cells.append({
              'column_id': 7960873114331012,
              'value': True
            })
            row_a.cells.append({
              'column_id': 642523719853956
              'value': 'New Status',
              'strict': False
            })

            # Specify cell values for another row
            row_b = smartsheet.models.Row()
            row_b.to_top = True
            row_b.cells.append({
              'column_id': 7960873114331012,
              'value': True
            })
            row_b.cells.append({
              'column_id': 642523719853956
              'value': 'New Status',
              'strict': False
            })

            # Add rows to sheet
            response = smartsheet_client.Sheets.add_rows(
              2331373580117892,       # sheet_id
              [row_a, row_b])
    delete:
      summary: Delete Rows
      description: Deletes one or more rows from the sheet specified in the URL.
      operationId: delete-rows
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/rowIds'
        - $ref: '#/components/parameters/ignoreRowsNotFound'
      responses:
        '200':
          description: >-
            Returns [Result object](/api/smartsheet/openapi/schemas/result)
            containing row Ids corresponding to all rows that were successfully
            deleted (including any child rows of rows specified in the URL).
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          type: number
        '404':
          $ref: '#/components/responses/404'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify 'ignoreRowsNotFound' parameter with value of 'true'
            smartsheet.SheetResources.RowResources.DeleteRows(
              2252168947361668,                                    // sheetId
              new long[] { 207098194749316, 207098194749317 },     // rowIds
              true                                                 // Boolean ignoreRowsNotFound
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/rows?ids={rowId1},{rowId2},{rowId3}&ignoreRowsNotFound=true'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            // Specify 'ignoreRowsNotFound' parameter with value of 'true'
            smartsheet.sheetResources().rowResources().deleteRows(
                    2252168947361668L,               // long sheetId
                    new HashSet(Arrays.asList(
                    207098194749316L,            // long rowId,
                    207098194749317L,            // long additional rowId
                    207098194749318L,)           // long additional rowId
                    true                             // Boolean ignoreRowsNotFound
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              rowId: 207098194749316
            };

            // Delete row
            smartsheet.sheets.deleteRow(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.delete_rows(
              2252168947361668,                       # sheet_id
              [207098194749316, 207098194749317])     # row_ids
    put:
      summary: Update Rows
      description: >
        Updates cell values in the specified rows, expands/collapses the
        specified rows, or modifies the position of specified rows (including
        indenting/outdenting). For detailed information about changing row
        positions, see [location-specifier
        attributes](/api/smartsheet/openapi/rows).


        Note: This operation does not handle adding images to cells. However,
        you can upload an image to a cell by calling the operation described in
        the [Add Image to
        Cell](/api/smartsheet/openapi/cellimages/addimagetocell) page.
      operationId: update-rows
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/allowPartialSuccess'
        - $ref: '#/components/parameters/overrideValidation'
      requestBody:
        description: >
          [Row object](/api/smartsheet/openapi/rows/row) or an array of Row
          objects, with the following attributes:

          * **id** (required)

          * One or more [location-specifier
          attributes](/api/smartsheet/openapi/rows) (optional)

          * **expanded** (optional)

          * **format** (optional)

          * **cells** (optional) -- if specified, must be an array of [Cell
          objects](/api/smartsheet/openapi/cells/cell), where each object is
          limited to the following attributes:
            * **columnId** (required)
            * One of the following (required):
              * **formula**: the formula for the cell. For cross-sheet formulas, you must first define a [cross-sheet reference](/api/smartsheet/openapi/crosssheetreferences)
              * **value**: a desired value, a label for a **hyperlink** you're inserting (see below), or an empty string `""` if you're linking to another cell (see **linkInFromCell** below).
            * **hyperlink**: (optional) a link to a report, sheet, or URL. Note, you must set the **value** attribute (e.g., set to a label you want or set to an empty string `""` to use the linked item's title). Specify the one attribute applicable to the item you're linking:
                * **reportId**
                * **sheetId**
                * **url**
            * **linkInFromCell** (optional) links in another cell's value. Smartsheet synchronizes the source cell into this cell. Note, the synchronization may take several minutes. Set all of the following attributes:
              * **columnId**
              * **rowId**
              * **sheetId**
            * **strict** (optional) - Set it `false` for lenient value parsing; default is `true`. See [Cell value parsing](/api/smartsheet/openapi/cells) for details.
            * **format** (optional)
            * **image** (optional) -- object for setting a cell image's attributes, such as its alternate text (e.g., `altText = string`).
            * **overrideValidation** (optional)
          * **locked** (optional) - **true** to lock the row or **false** to
          unlock the row.


          See [Column Types](/api/smartsheet/openapi/columns) for more
          information.


          **NOTE:**

          * Column Ids must be valid for the sheet to which the row belongs, and
          must only be used once for each row in the operation.

          * Cells of a project sheet in the "Finish Date" column cannot be
          updated via API.

          * Cells of a project sheet in the "Start Date" column cannot be
          updated via API for rows that contain a value in the "Predecessor"
          column.

          * Max length for a cell value is 4000 characters after which
          truncation occurs without warning. Empty string values are converted
          to null.

          * Calculation errors or problems with a formula do not cause the API
          call to return an error code. Instead, the response contains the same
          value as in the UI, such as cell.value = "#CIRCULAR REFERENCE".
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Row'
                - type: array
                  items:
                    $ref: '#/components/schemas/Row'
      responses:
        '200':
          description: >-
            Returns [Result object](/api/smartsheet/openapi/schemas/result)
            containing an array of the updated rows.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/UpdateRowsObject'
        default:
          description: >
            When **allowPartialSuccess=false** (or not specified):


            If an error occurs, the [Error
            object](/api/smartsheet/openapi/schemas/error) returned contains a
            **detail** attribute set to an object with the following attribute:

            * **index**: the array index of the row that caused the error (0 if
            a single Row was passed in)

            * **rowId**: the id of the row that caused the error (omitted if the
            row was missing an Id)


            If any error occurs, the entire request fails (no rows are added),
            and the error response returned describes the first problem that was
            encountered. For example:

            ```

            {

            "errorCode": 1042,

            "message": "The cell value in column 5504245941200772 did not
            conform to the strict requirements for type CHECKBOX."

            "detail": {
              "index": 4
              "rowId": 6572427401553796
              }
            }

            ```

            When **allowPartialSuccess=true**:


            When partial success is enabled, and one or more of the objects in
            the request fail to be added/updated/deleted, a standard [Result
            object](/api/smartsheet/openapi/schemas/result) is returned, but
            with a **message** of **'PARTIAL_SUCCESS'** (instead of
            **'SUCCESS'**), and a **resultCode** of **3**. Additionally, the
            object contains a **failedItems** attribute -- an array of
            [BulkItemFailure
            objects](/api/smartsheet/openapi/schemas/bulkitemfailure) that
            contains an item for each object in the request that failed to be
            added/updated/deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify updated value for first cell

            var cellToUpdateA = new Cell

            {
              ColumnId = 7518312134403972,
              Value = "new value"
            };


            // Specify updated value for second cell

            var cellToUpdateB = new Cell

            {
              ColumnId = 1888812600190852,
              Value = "A"
            };


            // Identify row and add new cell values to it

            var rowToUpdate = new Row

            {
              Id = 6572427401553796,
              Cells = new Cell[] { cellToUpdateA, cellToUpdateB }
            };


            IList<Row> updatedRow =
            smartsheet.SheetResources.RowResources.UpdateRows(
              2068827774183300,    // sheet Id
              new Row[] {rowToUpdate}
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/rows \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '[{"id": "6572427401553796", "cells": [{"columnId":
            7518312134403972,"image": {"altText": "New Alt Text"},"value": "new
            value"}, {"columnId": 1888812600190852,"value": "A"}]}, {"id":
            "2068827774183300", "cells": [{"columnId": 7518312134403972,"value":
            "desc_updated"}, {"columnId": 1888812600190852,"value": "B"},
            {"columnId": 6552023773538180,"objectValue": {"objectType":
            "MULTI_CONTACT","values": [{"objectType": "CONTACT","email":
            "john.doe@smartsheet.com","name": "John Doe"}, {"objectType":
            "CONTACT","email": "jane.roe@smartsheet.com","name": "Jane
            Roe"}]}}]}]'
        - lang: Java
          label: Java
          source: >
            // Specify updated cell values for first row

            Cell cellA = new Cell(7518312134403972L)   // column Id
                    .setValue("new value");

            Cell cellB = new Cell(6392412227561348L)   // column Id
                    .setValue(123);

            Row rowA = new Row(2068827774183300L);
                    rowA.setCells(Arrays.asList(cellA, cellB));

            // Specify updated cell values for second row

            Cell cellC = new Cell(7518312134403972L)
                    .setValue("desc_updated");

            Cell cellD = new Cell(6392412227561348L)
                    .setValue(456);

            Row rowB = new Row(6572427401553796L);
                    rowB.setCells(Arrays.asList(cellC, cellD));

            // Update rows in sheet

            List<Row> updatedRows =
            smartsheet.sheetResources().rowResources().updateRows(
                    1639534409607044L,                      // long sheetId
                    Arrays.asList(rowA, rowB)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify updated cell values
            var row = [
              {
                "id": "6572427401553796",
                "cells": [
                  {
                    "columnId": 7518312134403972,
                    "value": "new value"
                  },
                  {
                    "columnId": 1888812600190852,
                    "value": "A"
                  }
                ]
              },
              {
                "id": "2068827774183300",
                "cells": [
                  {
                    "columnId": 7518312134403972,
                    "value": "desc_updated"
                  },
                  {
                    "columnId": 1888812600190852,
                    "value": "B"
                  }
                ]
              }
            ];

            // Set options
            var options = {
              sheetId: 2068827774183300,
              body: row
              };

            // Update rows in sheet
            smartsheet.sheets.updateRow(options)
              .then(function(updatedRows) {
                console.log(updatedRows);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Build new cell value
            new_cell = smartsheet.models.Cell()
            new_cell.column_id = 7036894123976580
            new_cell.value = "new value"
            new_cell.strict = False

            # Build the row to update
            new_row = smartsheet.models.Row()
            new_row.id = 6809535313667972
            new_row.cells.append(new_cell)

            # Update rows
            updated_row = smartsheet_client.Sheets.update_rows(
              2068827774183300,      # sheet_id
              [new_row])
  /sheets/{sheetId}/rows/emails:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Send Rows via Email
      description: Sends one or more rows via email.
      operationId: rows-send
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: >
          The columns included for each row in the email are populated according
          to the following rules:

          * If the **columnIds** attribute of the MultiRowEmail object is
          specified as an array of column Ids, those specific columns are
          included.

          * If the **columnIds** attribute of the MultiRowEmail object is
          omitted, all columns except hidden columns shall be included.

          * If the **columnIds** attribute of the MultiRowEmail object is
          specified as empty, no columns shall be included. (**NOTE:** In this
          case, either **includeAttachments=true** or
          **includeDiscussions=true** must be specified.)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiRowEmail'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify recipients

            Recipient[] recipients = new Recipient[] {
              new Recipient { Email = "recipient@smartsheet.com" }
            };


            // Configure email

            MultiRowEmail multiRowEmail = new MultiRowEmail {
              SendTo = recipients,
              Subject = "some subject",
              Message = "some message",
              CcMe = false,
              RowIds = new long[] { 6327127650920324, 3404239197235076 },
              ColumnIds = new long[] { 5190835902932868, 3791509922310020 },
              IncludeAttachments = false,
              IncludeDiscussions = false
            };


            // Send rows via email

            smartsheet.SheetResources.RowResources.SendRows(4293147074291588,
            multiRowEmail);       // sheetId
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/emails \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '{
              "sendTo": [
                {"email": "recipient@smartsheet.com"}
              ],
              "subject": "Check these rows out!",
              "message": "Here are the rows I mentioned in our meeting",
              "ccMe": false,
              "rowIds": [
                6327127650920324, 3404239197235076
              ],
              "columnIds": [
                5190835902932868, 3791509922310020
              ],
              "includeAttachments": false,
              "includeDiscussions": false
            }'
        - lang: Java
          label: Java
          source: >
            // Specify recipients

            RecipientEmail recipientEmail = new
            RecipientEmail.AddRecipientEmailBuilder()
                    .setEmail("recipient@smartsheet.com")
                    .build();

            List<Recipient> recipients = new ArrayList<Recipient>();

            recipients.add(recipientEmail);


            // Configure email

            MultiRowEmail multiRowEmail = new
            MultiRowEmail.AddMultiRowEmailBuilder()
                    .setSendTo(recipients)
                    .setSubject("some subject")
                    .setMessage("some message")
                    .setCcMe(false)
                    .setRowIds(Arrays.asList(6327127650920324L, 3404239197235076L)
                    .setColumnIds(Arrays.asList(5190835902932868L, 3791509922310020L)
                    .setIncludeAttachments(false)
                    .setIncludeDiscussions(false)
                    .build();

            // Send rows via email

            smartsheet.sheetResources().rowResources().sendRows(4293147074291588L,
            multiRowEmail);   // sheetId
        - lang: Node.js
          label: Node.js
          source: |
            // Configure email
            var email = {
              "sendTo": [
                {
                  "email": "john.doe@smartsheet.com"
                },
                {
                  "groupId": 2258118617917316
                }
              ],
              "subject": "Check these rows out!",
              "message": "Here are the rows I mentioned in our meeting",
              "ccMe": false,
              "includeDiscussions": false,
              "includeAttachments": true,
              "rowIds": [
                1049041315358596,
                5552640942729092
              ]
            };

            // Set options
            var options = {
              "body": email,
              "sheetId": 2252168947361668
            };

            // Send row via email
            smartsheet.sheets.sendRows(options)
              .then(function(data) {
                console.log(data);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Configure email
            email = smartsheet.models.MultiRowEmail()
            email.send_to = smartsheet.models.Recipient({
              'email': 'john.doe@smartsheet.com'
            })
            email.row_ids = [6327127650920324, 3404239197235076]
            email.column_ids = [5190835902932868, 3791509922310020]

            # Send rows via email
            response = smartsheet_client.Sheets.send_rows(
              4293147074291588,       # sheet_id
              email)
  /sheets/{sheetId}/rows/copy:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Copy Rows to Another Sheet
      description: >-
        Copies rows from the sheet specified in the URL to (the bottom of)
        another sheet.
      operationId: copy-rows
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/copyRowsInclude'
        - $ref: '#/components/parameters/ignoreRowsNotFoundForCopyRows'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CopyOrMoveRowDirective'
      responses:
        '200':
          description: CopyOrMoveRowResult object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CopyOrMoveRowResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify destination sheet

            CopyOrMoveRowDestination destination = new CopyOrMoveRowDestination
            { SheetId = 2258256056870788 };


            // Specify rows to be copied (and destination sheet)

            CopyOrMoveRowDirective directive = new CopyOrMoveRowDirective {
            RowIds = new long[] { 145417762563972, 8026717110462340 }, To =
            destination };


            // Sample 1: Omit 'include' and 'ignoreRowsNotFound' parameters

            CopyOrMoveRowResult results =
            smartsheet.SheetResources.RowResources.CopyRowsToAnotherSheet(
              4583173393803140,           // sheetId
              directive,
              null,                       // IEnumerable<CopyRowInclusion> include
              null                        // Nullable<bool> ignoreRowsNotFound
            );


            // Sample 2: Specify 'include' parameter with value of "CHILDREN",
            and 'ignoreRowsNotFound' parameter with value of 'true'

            CopyOrMoveRowResult results =
            smartsheet.SheetResources.RowResources.CopyRowsToAnotherSheet(
              4583173393803140,           // sheetId
              directive,
              new CopyRowInclusion[] {
                CopyRowInclusion.CHILDREN },
              true
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/copy \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{ "rowIds": [145417762563972, 8026717110462340], "to":
            {"sheetId": 2258256056870788} }'
        - lang: Java
          label: Java
          source: >
            // Specify destination sheet

            CopyOrMoveRowDestination destination = new
            CopyOrMoveRowDestination()
                    .setSheetId(2258256056870788L);

            // Specify rows to be copied (and destination sheet)

            CopyOrMoveRowDirective directive = new CopyOrMoveRowDirective()
                    .setRowIds(Arrays.asList(145417762563972L, 8026717110462340L))
                    .setTo(destination);

            // Sample 1: Omit 'include' and 'ignoreRowsNotFound' parameters

            CopyOrMoveRowResult results =
            smartsheet.sheetResources().rowResources().copyRows(
                    4583173393803140L,                        // long sheetId
                    null,                                     // EnumSet<RowCopyInclusion> includes
                    true,                                     // Boolean ignoreRowsNotFound
                    directive
                    );

            // Sample 2: Specify 'include' parameter with value of "CHILDREN",
            and 'ignoreRowsNotFound' parameter with value of 'true'

            CopyOrMoveRowResult results =
            smartsheet.sheetResources().rowResources().copyRows(
                    4583173393803140L,                        // long sheetId
                    EnumSet.of(RowCopyInclusion.CHILDREN),
                    true,
                    directive
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify the directive
            var copyRow = {
              "rowIds": [145417762563972,8026717110462340],
              "to": {
                "sheetId": 2258256056870788
              }
            };

            // Set options
            var options = {
              sheetId: 4583173393803140,
              body: copyRow
              };

            // Copy rows
            smartsheet.sheets.copyRowToAnotherSheet(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sheets.copy_rows(
              4583173393803140,               # sheet_id of rows to be copied
              smartsheet.models.CopyOrMoveRowDirective({
                'row_ids': [145417762563972, 8026717110462340],
                'to': smartsheet.models.CopyOrMoveRowDestination({
                  'sheet_id': 2258256056870788
                })
              })
            )
  /sheets/{sheetId}/rows/move:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Move Rows to Another Sheet
      description: >-
        Moves rows from the sheet specified in the URL to (the bottom of)
        another sheet.
      operationId: move-rows
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/moveRowsInclude'
        - $ref: '#/components/parameters/ignoreRowsNotFoundForMoveRows'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CopyOrMoveRowDirective'
      responses:
        '200':
          description: CopyOrMoveRowResult object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CopyOrMoveRowResult'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify destination sheet

            CopyOrMoveRowDestination destination = new CopyOrMoveRowDestination
            { SheetId = 2258256056870788 };


            // Specify rows to be moved (and destination sheet)

            CopyOrMoveRowDirective directive = new CopyOrMoveRowDirective {
            RowIds = new long[] { 145417762563972, 8026717110462340 }, To =
            destination };


            // Sample 1: Omit 'include' and 'ignoreRowsNotFound' parameters

            CopyOrMoveRowResult results =
            smartsheet.SheetResources.RowResources.MoveRowsToAnotherSheet(
              4583173393803140,               // sheetId
              directive,
              null,                           // IEnumerable<MoveRowInclusion> include
              null                            // Nullable<bool> ignoreRowsNotFound
            );


            // Sample 2: Specify 'include' parameter with value of "ATTACHMENTS"
            and "DISCUSSIONS", and 'ignoreRowsNotFound' parameter with value of
            'true'

            CopyOrMoveRowResult results =
            smartsheet.SheetResources.RowResources.MoveRowsToAnotherSheet(
              4583173393803140,               // sheetId
              directive,
              new MoveRowInclusion[] {
                MoveRowInclusion.ATTACHMENTS,
                MoveRowInclusion.DISCUSSIONS },
              true                            // Nullable<bool> ignoreRowsNotFound
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/move \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{ "rowIds": [145417762563972, 8026717110462340], "to":
            {"sheetId": 2258256056870788} }'
        - lang: Java
          label: Java
          source: >
            // Specify destination sheet

            CopyOrMoveRowDestination destination = new
            CopyOrMoveRowDestination()
                    .setSheetId(2258256056870788L);

            // Specify rows to be moved (and destination sheet)

            CopyOrMoveRowDirective directive = new CopyOrMoveRowDirective()
                    .setRowIds(Arrays.asList(145417762563972L, 8026717110462340L))
                    .setTo(destination);

            // Sample 1: Omit 'include' and 'ignoreRowsNotFound' parameters

            CopyOrMoveRowResult results =
            smartsheet.sheetResources().rowResources().moveRows(
                    4583173393803140L,                  // long sheetId
                    null,                               // EnumSet<RowMoveInclusion> includes
                    true,                               // Boolean ignoreRowsNotFound
                    directive
                    );

            // Sample 2: Specify 'include' parameter with value of "ATTACHMENTS"
            and "DISCUSSIONS", and 'ignoreRowsNotFound' parameter with value of
            'true'

            CopyOrMoveRowResult results =
            smartsheet.sheetResources().rowResources().moveRows(
                    4583173393803140L,                  // long sheetId
                    EnumSet.of(
                    RowMoveInclusion.ATTACHMENTS,
                    RowMoveInclusion.DISCUSSIONS),
                    true,                               // Boolean ignoreRowsNotFound
                    directive
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify the directive
            var moveRow = {
              "rowIds": [145417762563972,8026717110462340],
              "to": {
                "sheetId": 2258256056870788
              }
            };

            // Set options
            var options = {
              sheetId: 4583173393803140,
              body: moveRow
              };

            // Move rows
            smartsheet.sheets.moveRowToAnotherSheet(options)
              .then(function(movedRow) {
                console.log(movedRow);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sheets.move_rows(
              4583173393803140,           # sheet_id of rows to be moved
              smartsheet.models.CopyOrMoveRowDirective({
                'row_ids': [145417762563972, 8026717110462340],
                'to': smartsheet.models.CopyOrMoveRowDestination({
                  'sheet_id': 2258256056870788
                })
              })
            )
  /sheets/{sheetId}/rows/{rowId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/rowId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Row
      description: Gets the row specified in the URL.
      operationId: row-get
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/rowInclude'
        - $ref: '#/components/parameters/sheetExclude'
        - $ref: '#/components/parameters/sheetLevel'
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: >-
            Returns [Row object]() populated according to the specified
            parameters.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GetRowObject'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit 'include' parameter and pagination parameters

            Row row = smartsheet.SheetResources.RowResources.GetRow(
              4583173393803140,               // sheetId
              2361756178769796,               // rowId
              null,                           // IEnumerable<RowInclusion> include
              null                            // IEnumerable<RowExclusion> exclude
            );


            // Specify 'include' parameter with values of "COLUMNS" and
            "COLUMN_TYPE", and 'exclude' parameter with value of
            "NONEXISTENT_CELLS"

            Row row = smartsheet.SheetResources.RowResources.GetRow(
              4583173393803140,               // sheetId
              2361756178769796,               // rowId
              new RowInclusion[] {
                RowInclusion.COLUMNS,
                RowInclusion.COLUMN_TYPE },
              new ObjectExclusion[] { ObjectExclusion.NONEXISTENT_CELLS }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}?include=discussions,attachments,columns,columnType'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            Row row = smartsheet.sheetResources().rowResources().getRow(
                    4583173393803140L,       // long sheetId
                    2361756178769796L,       // long rowId
                    null,                    // EnumSet<RowInclusion> includes
                    null                     // EnumSet<ObjectExclusion> excludes
                    );

            // Sample 2: Specify 'include' parameter with values of "COLUMNS"
            and "COLUMN_TYPE", and 'exclude' parameter with value of
            "NONEXISTENT_CELLS"

            Row row = smartsheet.sheetResources().rowResources().getRow(
                    4583173393803140L,       // long sheetId
                    2361756178769796L,       // long rowId
                    EnumSet.of(
                    RowInclusion.COLUMNS,
                    RowInclusion.COLUMN_TYPE),
                    EnumSet.of(
                    ObjectExclusion.NONEXISTENT_CELLS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 4583173393803140,
              rowId: 2361756178769796
            };

            // Get row
            smartsheet.sheets.getRow(options)
              .then(function(row) {
                console.log(row);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: Get row

            row = smartsheet_client.Sheets.get_row(
              4583173393803140,       # sheet_id
              2361756178769796        # row_id
            )


            # Sample 2: Include discussions, attachments, columns, and
            columnType

            row = smartsheet_client.Sheets.get_row(
              4583173393803140,       # sheet_id
              2361756178769796,       # row_id
              include='discussions,attachments,columns,columnType'
            )
  /sheets/{sheetId}/rows/{rowId}/attachments:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/rowId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Row Attachments
      description: >
        Gets a list of all attachments that are on the row, including row and
        discussion-level attachments.
      operationId: attachments-listOnRow
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of attachments
                        type: array
                        items:
                          $ref: '#/components/schemas/Attachment'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Attachment> attachments =
            smartsheet.SheetResources.RowResources.AttachmentResources.ListAttachments(
              2252168947361668,               // sheetId
              4293147074291588,               // rowId
              null                            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/attachments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination

            PagedResult<Attachment> attachments =
            smartsheet.sheetResources().rowResources().attachmentResources().getAttachments(
                    2252168947361668L,       // long sheetId
                    4293147074291588L,       // long rowId
                    null                     // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              rowId: 4293147074291588
            };

            // List row attachments
            smartsheet.sheets.getRowAttachments(options)
              .then(function(attachmentsList) {
                  console.log(attachmentsList);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Attachments.list_row_attachments(
              2252168947361668,       # sheet_id
              4293147074291588,       # row_id
              include_all=True)
            attachments = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Attachments.list_row_attachments(
              2252168947361668,       # sheet_id
              4293147074291588,       # row_id
              page_size=10,
              page=1)
            pages = response.total_pages
            attachments = response.data
    post:
      summary: Attach File or URL to Row
      description: >
        Attaches a file to the row. The URL can be any of the following:


        * Normal URL (attachmentType "LINK")

        * Box.com URL (attachmentType "BOX_COM")

        * Dropbox URL (attachmentType "DROPBOX")

        * Egnyte URL (attachmentType "EGNYTE")

        * Evernote URL (attachmentType "EVERNOTE")

        * Google Drive URL (attachmentType "GOOGLE_DRIVE")

        * OneDrive URL (attachmentType "ONEDRIVE")


        >**Important:** Smartsheet Gov allows only the following attachment
        types:

        > - BOX_COM

        > - FILE

        > - GOOGLE_DRIVE

        > - LINK

        > - ONEDRIVEß


        For multipart uploads please use "multipart/form-data" content type.
      operationId: row-attachments-attachFile
      tags:
        - attachments
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                  format: binary
          application/json:
            schema:
              $ref: '#/components/schemas/URLAttachmentRequest'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Attachment'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Attachment attachment =
            smartsheet.SheetResources.RowResources.AttachmentResources.AttachFile(
              9283173393803140,           // sheetId
              0123456789012345,           // rowId
              filePath,
              "application/msword"
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/attachments
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/msword" \

            -H 'Content-Disposition: attachment; filename="ProgressReport.docx"'
            \

            -H "Content-Length: FILE_SIZE" \

            -X POST \

            --data-binary @ProgressReport.docx
        - lang: Java
          label: Java
          source: |
            // Specify file to be attached
            File file = new File("/Users/jdoe/Documents/ProgressReport.docx");

            // Attach file to row
                    Attachment attachment = smartsheet.sheetResources().rowResources().attachmentResources().attachFile(
                    9283173393803140L,       // long sheetId
                    0123456789012345L,       // long rowId
                    file,
                    "application/msword"
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Enable FileStream
            var fs = require("fs")

            // Set options
            var options = {
              sheetId: 1696803624483716,
              rowId: 1049041355358596,
              fileSize: 20765,
              fileName: "ProgressReport.docx",
              fileStream: fs.createReadStream("/Users/jdoe/Documents/ProgressReport.docx")
            };

            // Attach file to row
            smartsheet.sheets.addRowFileAttachment(options)
              .then(function(attachment) {
                  console.log(attachment);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            updated_attachment =
            smartsheet_client.Attachments.attach_file_to_row(
              9283173393803140,       # sheet_id
              0123456789012345,       # row_id
              ('ProgressReport.docx',
                open('/path/to/ProgressReport.docx', 'rb'),
                'application/msword')
            )
  /sheets/{sheetId}/rows/{rowId}/columns/{columnId}/cellimages:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/rowId'
      - $ref: '#/components/parameters/columnId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Add Image to Cell
      description: Uploads an image to the specified cell within a sheet.
      operationId: addImageToCell
      tags:
        - cellImages
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Content-Disposition'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/altText'
        - $ref: '#/components/parameters/overrideValidation'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Row'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Set options
            Image image = new Image
              {
                AltText = "Caution Sign",
                Height = 16,
                Width = 16
              };

            smartsheet.SheetResources.RowResources.CellResources.AddImageToCell(
              1696831624483716, // sheetId
              1049441315358596, // rowId
              74761903175665540, // columnId
              "/Users/jdoe/Documents/images/img_pl_decisionshapesHold.png",
              "image"
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/columns/{columnId}/cellimages?altText=my%20image'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: image/jpeg" \

            -H 'Content-Disposition: attachment; filename="picture.jpg"' \

            -H "Content-Length: FILE_SIZE" \

            -X POST \

            --data-binary @picture.jpg
        - lang: Java
          label: Java
          source: |
            // Set options
            Image image = new Image()
                    .setAltText("Caution sign")
                    .setHeight(16L)
                    .setWidth(16L);

                    smartsheet.sheetResources().rowResources().cellResources().addImageToCell(
                    1639534409607044L,      // sheetId
                    1049441315358596L,      // rowId
                    74761903175665540L,      // columnId
                    "/Users/jdoe/Documents/images/img_pl_decisionshapesHold.png",
                    "image"
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Enable FileStream
            var fs = require("fs")

            // Set options
            var options = {
              sheetId: 1696831624483716,
              rowId: 1049441315358596,
              columnId: 74761903175665540,
              fileSize: 458,    // Must be exact bytes; no rounding
              fileName: "img_pl_decisionshapesHold.png",
              fileStream: fs.createReadStream("/Users/jroe/Documents/images/img_pl_decisionshapesHold.png"),
              queryParameters: {
                "altText": "Caution sign",
                "overrideValidation": true
              }
            };

            // Add image to cell
            smartsheet.sheets.addImageToCell(options)
              .then(function(image) {
                console.log(image);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            sheet_id = 1696831624483716

            column_id = 74761903175665540

            row_id = 1049441315358596

            caution_pic =
            "/Users/jdoe/Documents/images/img_pl_decisionshapesHold.png"

            file_type = "png"

            smartsheet_client.Cells.add_image_to_cell(sheet_id, row_id,
            column_id, caution_pic, file_type)
  /sheets/{sheetId}/rows/{rowId}/columns/{columnId}/history:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/rowId'
      - $ref: '#/components/parameters/columnId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Cell History
      description: |
        Gets the cell modification history.
      operationId: cellHistory-get
      parameters:
        - $ref: '#/components/parameters/cellHistoryInclude'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/sheetLevel'
      tags:
        - cells
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: List of cell history objects
                        type: array
                        items:
                          $ref: '#/components/schemas/CellHistory'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PaginatedResult<CellHistory> results =
            smartsheet.SheetResources.RowResources.CellResources.GetCellHistory(
              9283173393803140,               // sheetId
              0123456789012345,               // rowId
              4567890123456789,               // columnId
              null,                           // IEnumerable<CellInclusion> includes
              null                            // PaginationParameters
            );


            // Sample 2: Specify 'include' parameter with value of "COLUMN_TYPE"
            and 'includeAll' parameter with value of 'true'

            PaginatedResult<CellHistory> results =
            smartsheet.SheetResources.RowResources.CellResources.GetCellHistory(
              9283173393803140,               // sheetId
              0123456789012345,               // rowId
              4567890123456789,               // columnId
              new CellInclusion[] { CellInclusion.COLUMN_TYPE },
              new PaginationParameters(
                true,                       // Boolean includeAll
                null,                       // int pageSize
                null)                       // int page
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/columns/{columnId}/history?include=columnType'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination

            PagedResult<CellHistory> cellHistory =
            smartsheet.sheetResources().rowResources().cellResources().getCellHistory(
                    9283173393803140L,       // long sheetId
                    0123456789012345L,       // long rowId
                    4567890123456789L,       // long columnId
                    null                     // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 9283173393803140,
              rowId: 0123456789012345,
              columnId: 4567890123456789
            };

            // Get cell history
            smartsheet.sheets.getCellHistory(options)
              .then(function(history) {
                  console.log(history);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Get history
            response = smartsheet_client.Cells.get_cell_history(
              9283173393803140,       # sheet_id
              0123456789012345,       # row_id
              4567890123456789,       # column_id
              include_all=True)
            revisions = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Cells.get_cell_history(
              9283173393803140,       # sheet_id
              0123456789012345,       # row_id
              4567890123456789,       # column_id
              page_size=5,
              page=1)
            pages = response.total_pages
            revisions = response.data
  /sheets/{sheetId}/rows/{rowId}/discussions:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/rowId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Discussions with a Row
      description: >
        Gets a list of all discussions associated with the specified row.
        Remember that discussions are containers

        for the conversation thread. To see the entire thread, use the
        include=comments parameter.
      operationId: row-discussions-list
      tags:
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/discussionInclude'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of discussions
                        type: array
                        items:
                          $ref: '#/components/schemas/Discussion'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PaginatedResult<Discussion> results =
            smartsheet.SheetResources.RowResources.DiscussionResources.ListDiscussions(
              2252168947361668,                   // sheetId
              4293147074291588,                   // rowId
              null,                               // IEnumerable<DiscussionInclusion> include
              null                                // PaginationParameters
            );


            // Sample 2: Specify 'include' parameter with values of 'COMMENTS'
            and 'ATTACHMENTS', and 'includeAll' parameter with value of 'true'

            PaginatedResult<Discussion> results =
            smartsheet.SheetResources.RowResources.DiscussionResources.ListDiscussions(
              2252168947361668,                   // sheetId
              4293147074291588,                   // rowId
              new DiscussionInclusion[] { DiscussionInclusion.COMMENTS, DiscussionInclusion.ATTACHMENTS },
              new PaginationParameters(
                true,                           // includeAll
                null,                           // int pageSize
                null)                           // int page
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/discussions?include=comments,attachments'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'include' parameter and pagination parameters

            PagedResult<Discussion> results =
            smartsheet.sheetResources().rowResources().discussionResources().listDiscussions(
                    2252168947361668L,       // long sheetId
                    4293147074291588L,       // long rowId
                    null,                    // PaginationParameters
                    null                     // EnumSet<DiscussionInclusion> includes
                    );

            // Sample 2: Specify pagination parameter 'includeAll'

            PaginationParameters parameters = new PaginationParameters()
                    .setIncludeAll(true);

            // Get all row discussions (specify 'include' parameter with values
            of 'COMMENTS' and 'ATTACHMENTS', and 'includeAll' parameter with
            value of 'true')

            PagedResult<Discussion> results =
            smartsheet.sheetResources().rowResources().discussionResources().listDiscussions(
                    2252168947361668L,       // long sheetId
                    4293147074291588L,       // long rowId
                    parameters,
                    EnumSet.of(DiscussionInclusion.COMMENTS, DiscussionInclusion.ATTACHMENTS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 2252168947361668,
              rowId: 4293147074291588
            };

            // List row discussions
            smartsheet.sheets.getRowDiscussions(options)
              .then(function(discussionList) {
                console.log(discussionList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Discussions.get_row_discussions(
              2252168947361668,               # sheet_id
              4293147074291588,               # row_id
              include_all=True)
            discussions = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Discussions.get_row_discussions(
              2252168947361668,               # sheet_id
              4293147074291588,               # row_id
              page_size=10)
            pages = response.total_pages          # starts on page 1 by default
            discussions = response.data
    post:
      summary: Create a Discussion on a Row
      description: >
        Creates a new discussion on a row. To create a discussion with an
        attachment please use "multipart/form-data" content type.
      operationId: row-discussions-create
      tags:
        - discussions
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiscussionCreationRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DiscussionCreationRequestWithAttachment'
            encoding:
              discussion:
                contentType: application/json
              file:
                contentType: application/octet-stream
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Discussion'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Example request: create discussion on row (without attachment)


            // Create discussion (including the comment)

            Discussion discussionSpecification = new Discussion

            {
              Comment = new Comment
                {
                  Text = "This text is the body of the first comment"
                },
              Comments = null         // workaround for SDK issue
            };


            // Add discussion to row

            Discussion newDiscussion =
            smartsheet.SheetResources.RowResources.DiscussionResources.CreateDiscussion(
              9283173393803140,               // sheetId
              0123456789012345,               // rowId
              discussionSpecification
            );


            // Example request: create discussion on row (with attachment)


            // Create discussion (including the comment)

            Discussion discussionSpecification = new Discussion

            {
              Comment = new Comment
              {
                Text = "This text is the body of the first comment"
              },
              Comments = null         // workaround for SDK issue
            };


            // Add discussion to row

            Discussion newDiscussion =
            smartsheet.SheetResources.RowResources.DiscussionResources.CreateDiscussionWithAttachment(
              9283173393803140,                   // sheetId
              0123456789012345,                   // rowId
              discussionSpecification,
              filePath,
              "application/octet-stream"
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: create discussion on row (without attachment)


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/discussions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"comment": {"text":"This text is the body of the first
            comment"}}'


            # Example request: create discussion on row (with attachment)


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/discussions
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: multipart/form-data" \

            -X POST \

            -F 'discussion={ "comment": { "text": "This text is the body of the
            first comment" } };type=application/json' \

            -F "file=@insurance_benefits.pdf;type=application/octet-stream"
        - lang: Java
          label: Java
          source: |
            // Example request: create discussion on row (without attachment)

            // Create comment
            Comment commentSpecification = new Comment()
                    .setText("This text is the body of the first comment");

            // Create discussion (including the comment)
                    Discussion discussionSpecification = new Discussion()
                    .setComment(commentSpecification)
                    .setComments(null);     // workaround for SDK issue

            // Add discussion to row
                    Discussion newDiscussion = smartsheet.sheetResources().rowResources().discussionResources().createDiscussion(
                    9283173393803140L,       // sheetId
                    0123456789012345L,       // rowId
                    discussionSpecification
                    );

            // Example request: create discussion on row (with attachment)

            // Create comment
                    Comment commentSpecification = new Comment()
                    .setText("This text is the body of the first comment");

            // Create discussion (including the comment)
                    Discussion discussionSpecification = new Discussion()
                    .setComment(commentSpecification)
                    .setComments(null);     // workaround for SDK issue

            // Set file path
                    File file = new File(filePath);

            // Add discussion to row
                    Discussion newDiscussion = smartsheet.sheetResources().rowResources().discussionResources().createDiscussionWithAttachment(
                    9283173393803140L,       // long sheetId
                    0123456789012345L,       // long rowId
                    discussionSpecification,
                    file,
                    "application/octet-stream"
                    );
        - lang: Node.js
          label: Node.js
          source: >
            // Example request: create discussion on row (without attachment)


            // Specify discussion

            var discussion = {
              "comment": {
                "text": "This text is the body of the first comment"
              }
            };


            // Set options

            var options = {
              sheetId: 2252168947361668,
              rowId: 4293147074291588,
              body: discussion
              };

            // Add discussion to row

            smartsheet.sheets.createRowDiscussion(options)
              .then(function(newDiscussion) {
                console.log(newDiscussion);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Example request: create discussion on row (with attachment)


            // Multipart operations are not supported by the Node SDK. Instead,
            see instructions to Create Discussion on Row, and then Attach File
            to Comment.
        - lang: Python
          label: Python
          source: >
            # Example request: create discussion on row (without attachment)


            response = smartsheet_client.Discussions.create_discussion_on_row(
              9283173393803140,           # sheet_id
              0123456789012345,           # row_id
              smartsheet.models.Discussion({
                'comment': smartsheet.models.Comment({
                  'text': 'This text is the body of the first comment'
                })
              })
            )


            # Example request: create discussion on row (with attachment)


            # Add discussion to row

            response =
            smartsheet_client.Discussions.create_discussion_on_row_with_attachment(
              9283173393803140,       # sheet_id
              0123456789012345,       # row_id
              smartsheet.models.Discussion({
                'comment': smartsheet.models.Comment({
                  'text': 'This text is the body of the first comment'
                })
              }),
              ('photo.jpg', open('/path/to/photo.jpg', 'rb'), 'image/jpeg')
            )
  /sheets/{sheetId}/rows/{rowId}/proofs:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/rowId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Create Proof
      description: |
        Creates a proof on a row.
      operationId: proofs-create
      tags:
        - proofs
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Proof'
                properties:
                  version:
                    description: >-
                      New version of the sheet. Applicable only for operations
                      which update sheet data.
                    type: number
                    nullable: true
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/rows/{rowId}/proofs
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Disposition: attachment; filename="giphy.gif"" \

            -H "Content-Type: image/gif" \

            --data-binary @giphy.gif \

            -X POST
  /sheets/{sheetId}/sentupdaterequests:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Sent Update Requests
      description: |
        Gets a summarized list of all sent update requests on the sheet.
        Only the following fields are returned in the response:
          * **id**
          * **message**
          * **sendTo**
          * **sentAt**
          * **sentBy**
          * **status**
          * **subject**
          * **updateRequestId**
      operationId: sentupdaterequests-list
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: The list of SentUpdateRequest objects
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of Sent Update Requests
                        type: array
                        items:
                          $ref: '#/components/schemas/SentUpdateRequest'
              examples:
                EmailResponse:
                  summary: Sent to Individual User
                  value:
                    pageNumber: 1
                    pageSize: 50
                    totalPages: 25
                    totalCount: 136
                    data:
                      - id: 3319834533488516
                        updateRequestId: 6742614230755204
                        message: Some message
                        sentAt: '2020-05-29T03:14:28Z'
                        sentBy:
                          email: jane.doe@smartsheet.com
                          name: Jane Doe
                        sentTo:
                          email: person@company.org
                        status: COMPLETE
                        subject: Sample Bi-Weekly Update Request
                GroupResponse:
                  summary: Sent to Group
                  value:
                    pageNumber: 1
                    pageSize: 50
                    totalPages: 25
                    totalCount: 136
                    data:
                      - id: 3319834533488516
                        updateRequestId: 6742614230755204
                        message: Some message
                        sentAt: '2020-05-29T03:14:28Z'
                        sentBy:
                          email: jane.doe@smartsheet.com
                          name: Jane Doe
                        sentTo:
                          groupId: 197256463378308
                        status: COMPLETE
                        subject: Sample Bi-Weekly Update Request
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: list sent update requests


            PaginatedResult<SentUpdateRequest> results =
            smartsheet.SheetResources.UpdateRequestResources.ListSentUpdateRequests(
                1639534409607044,       // sheetId
                null                    // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: list sent update requests


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/sentupdaterequests \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            # Example request: list sent update requests


            PagedResult<SentUpdateRequest> results =
            smartsheet.sheetResources().updateRequestResources().listSentUpdateRequests(
                1639534409607044L,      // long sheetId
                null                    // PaginationParameters
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: list sent update requests

            // Set options
            var options = {
                sheetId: 1639534409607044
            };

            // List sent update requests
            smartsheet.sheets.getAllSentUpdateRequests(options)
                .then(function(requestsList) {
                    console.log(requestsList);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List sent update requests
            response = smartsheet_client.Sheets.list_sent_update_requests(
              5190835902932868)      # sheet_id
            update_requests = response.data

            # Sample 2: Paginate the list of sent update requests
            response = smartsheet_client.Sheets.list_sent_update_requests(
              5190835902932868,      # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            update_requests = response.data
  /sheets/{sheetId}/sentupdaterequests/{sentUpdateRequestId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - name: sentUpdateRequestId
        in: path
        required: true
        description: ID of the sent update request
        schema:
          type: string
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Sent Update Request
      description: |
        Gets the specified sent update request on the sheet.
      operationId: sentupdaterequest-get
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: SentUpdateRequest object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SentUpdateRequest'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: get sent update request


            SentUpdateRequest results =
            smartsheet.SheetResources.UpdateRequestResources.GetSentUpdateRequest(
                3285357287499652,      // sheetId
                2303451729291140       // sentUpdateRequestId
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: get sent update request


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/sentupdaterequests/{sentUpdateRequestId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            # Example request: get sent update request


            SentUpdateRequest results =
            smartsheet.sheetResources().updateRequestResources().getSentUpdateRequest(
                1639534409607044L,      // long sheetId
                67287475611524L         // long sentUpdateRequestId
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: get sent update request

            // Set options
            var options = {
                sheetId: 1639534409607044,
                sentUpdateRequestId: 67287475611524
            };

            // Get sent update request
            smartsheet.sheets.getSentUpdateRequest(options)
                .then(function(updateRequest) {
                    console.log(updateRequest);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Example request: get sent update request

            response = smartsheet_client.Sheets.get_sent_update_request(
                5190835902932868,       # sheet_id
                7510551698925444        # update_request_id
            )
    delete:
      summary: Delete Sent Update Request
      description: >
        Deletes the specified sent update request.


        **Delete operation is supported only when the specified sent update
        request is in the pending status.

        Deleting a sent update request that was already completed by recipient
        is not allowed.**
      operationId: sentupdaterequest-delete
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
            - WRITE_SHEETS
      responses:
        '200':
          description: Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: delete sent update request


            smartsheet.SheetResources.UpdateRequestResources.DeleteSentUpdateRequest(
                3285357287499652,      // sheetId
                2303451729291140       // sentUpdateRequestId
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: delete sent update request


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/sentupdaterequests/{sentUpdateRequestId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: >
            # Example request: delete sent update request


            smartsheet.sheetResources().updateRequestResources().deleteSentUpdateRequest(
                1639534409607044L,      // long sheetId
                965780272637828L        // long sentUpdateRequestId
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: delete sent update request

            // Set options
            var options = {
                sheetId: 1639534409607044,
                sentUpdateRequestId: 965780272637828
            };

            // Delete sent update request
            smartsheet.sheets.deleteSentUpdateRequest(options)
                .then(function(result) {
                    console.log(result);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Example request: delete sent update request

            smartsheet_client.Sheets.delete_sent_update_request(
                5190835902932868,   # sheet_id
                381297098024836     # sent_update_request_id
            )
  /sheets/{sheetId}/summary:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Sheet Summary
      description: >-
        Returns object containing array of summary fields. Allows for pagination
        of results.
      operationId: list-summary-fields
      tags:
        - sheetSummary
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/sheetSummaryInclude'
        - $ref: '#/components/parameters/sheetSummaryExclude'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SheetSummary'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.SummaryResources.GetSheetSummary(
              1421228469708676,    // sheetId
              new List<SummaryFieldInclusion> { SummaryFieldInclusion.FORMAT, SummaryFieldInclusion.WRITER_INFO },
              new List<SummaryFieldExclusion> { SummaryFieldExclusion.DISPLAY_VALUE }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/summary?include=writerInfo
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().summaryResources().getSheetSummary(
                    1421228469708676L,    // long sheetId
                    EnumSet.of(SummaryFieldInclusion.FORMAT, SummaryFieldInclusion.WRITERINFO),
                    EnumSet.of(SummaryFieldExclusion.DISPLAYVALUE)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              sheetId: 1421228469708676
            };

            smartsheet.sheets.getSummary(options)
              .then(function(summary) {
                console.log(summary);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.get_sheet_summary(
                1421228469708676,    # sheet_id
                include='format,writerInfo',
                exclude='displayValue'
            )
  /sheets/{sheetId}/summary/fields:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Summary Fields
      description: >-
        Returns object containing array of summary fields. Allows for pagination
        of results.
      operationId: list-summary-fields-paginated
      tags:
        - sheetSummary
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/sheetSummaryInclude'
        - $ref: '#/components/parameters/sheetSummaryExclude'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: List of Summary Fields
                        type: array
                        items:
                          $ref: '#/components/schemas/SummaryField'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            PaginationParameters paginationParameters = new
            PaginationParameters(
              false,    // includeAll
              100,    // pageSize
              1    // page
            );

            smartsheet.SheetResources.SummaryResources.GetSheetSummaryFields(
              1421228469708676,    // sheetId
              new List<SummaryFieldInclusion> { SummaryFieldInclusion.FORMAT, SummaryFieldInclusion.WRITER_INFO },
              new List<SummaryFieldExclusion> { SummaryFieldExclusion.DISPLAY_VALUE },
              paginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/summary/fields
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            PaginationParameters paginationParameters = new
            PaginationParameters(
                    false,    // includeAll
                    100,    // pageSize
                    1    // page
                    );
            smartsheet.sheetResources().summaryResources().getSheetSummaryFields(
                    1421228469708676L,    // long sheetId
                    EnumSet.of(SummaryFieldInclusion.FORMAT, SummaryFieldInclusion.WRITERINFO),
                    EnumSet.of(SummaryFieldExclusion.DISPLAYVALUE),
                    paginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              sheetId: 1421228469708676
            };

            smartsheet.sheets.getSummaryFields(options)
              .then(function(summary) {
                console.log(summary);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.get_sheet_summary_fields(
                1421228469708676,    # sheet_id
                include='format,writerInfo',
                exclude='displayValue',
                100,    # page_size
                1,    # page
                False    # include_all
            )
    put:
      summary: Update Summary Fields
      description: Updates the summary fields for the given sheet.
      operationId: update-summary-fields
      tags:
        - sheetSummary
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      parameters:
        - $ref: '#/components/parameters/renameIfConflict'
      requestBody:
        description: Array of SummaryField objects
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/SummaryFieldUpdateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    description: A list of updated summary fields
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/SummaryField'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            SummaryField summaryField = new SummaryField();
            summaryField.Type = ColumnType.TEXT_NUMBER;
            summaryField.ObjectValue = new StringObjectValue("Sally Smart");
            summaryField.Index = 2;
            summaryField.Title = "Author";

            smartsheet.SheetResources.SummaryResources.UpdateSheetSummaryFields(
              1421228469708676,    // sheetId
              new SummaryField[] { summaryField },
              false    // renameIfConflict
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/summary/fields
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '[{
              "id": 5629723890335892,
              "type": "CONTACT_LIST",
              "objectValue": {
                "objectType": "CONTACT",
                "email": "jane.roe@smartsheet.com",
                "name": "Jane Roe"
              },
              "index": 2,
              "title": "Author"
            }]'
        - lang: Java
          label: Java
          source: >
            SummaryField summaryField = new SummaryField();

            summaryField.setType(ColumnType.TEXT_NUMBER);

            summaryField.setObjectValue(new StringObjectValue("Sally Smart"));

            summaryField.setIndex(2);

            summaryField.setTitle("Author");


            smartsheet.sheetResources().summaryResources().updateSheetSummaryFields(
                    1421228469708676L,    // long sheetId
                    Arrays.asList(summaryField),
                    false    // renameIfConflict
                    );
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              sheetId: 1421228469708676,
              body: [{
                id: 5629723890335892,
                objectValue: 'Accepted'
              }]
            };

            smartsheet.sheets.updateSummaryFields(options)
              .then(function(summary) {
                console.log(summary);
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            summary_field1 = smartsheet.models.SummaryField()

            summary_field1.type = ColumnType.TEXT_NUMBER

            summary_field1.object_value =
            smartsheet.models.StringObjectValue('Sally Smart')

            summary_field1.index = 2

            summary_field1.title = 'Author'


            smartsheet_client.Sheets.update_sheet_summary_fields(
                1421228469708676,    # sheet_id
                [summary_field1],
                False    # rename_if_conflict
            )
    delete:
      summary: Delete Summary Fields
      description: Deletes summary fields from the specified sheet.
      operationId: delete-summary-fields
      tags:
        - sheetSummary
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      parameters:
        - $ref: '#/components/parameters/sheetSummaryFieldIds'
        - $ref: '#/components/parameters/ignoreSummaryFieldsNotFound'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    description: >-
                      A list of fieldIds corresponding to all summary fields
                      that were successfully deleted.
                    properties:
                      result:
                        type: array
                        items:
                          type: number
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.SummaryResources.DeleteSheetSummaryFields(
              1421228469708676,    // sheetId
              new long[] { 1421228469708676, 1421228469708676, 1421228469708676 },    // summaryFieldIds
              true    // ignoreSummaryFieldsNotFound
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/summary/fields?ids={fieldId1},{fieldId2},{fieldId3}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: >
            smartsheet.sheetResources().summaryResources().deleteSheetSummaryFields(
                    1421228469708676L,    // long sheetId
                    new HashSet(Arrays.asList(1421228469708676L, 1421228469708676L, 1421228469708676L)),    // long summaryFieldIds
                    true    // ignoreSummaryFieldsNotFound
                    );
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              sheetId: 1421228469708676,
              queryParameters: {
                ids: '207098194749316',
                '100091196549967',
                '450360473006272'
              }
            };

            smartsheet.sheets.deleteSummaryFields(options)
              .then(function(summary) {
                console.log(summary);
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.delete_sheet_summary_fields(
                1421228469708676,    # sheet_id
                [1421228469708676, 1421228469708676, 1421228469708676],    # summary_field_ids
                True    # ignore_summary_fields_not_found
            )
    post:
      summary: Add Summary Fields
      description: Creates one or more summary fields for the specified sheet.
      operationId: add-summary-fields
      tags:
        - sheetSummary
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
      parameters:
        - $ref: '#/components/parameters/renameIfConflict'
      requestBody:
        description: Array of SummaryField objects
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/SummaryFieldCreateRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    description: A list of created summary fields
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/SummaryField'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            SummaryField summaryField = new SummaryField();
            summaryField.Type = ColumnType.TEXT_NUMBER;
            summaryField.ObjectValue = new StringObjectValue("Sally Smart");
            summaryField.Index = 2;
            summaryField.Title = "Author";

            smartsheet.SheetResources.SummaryResources.AddSheetSummaryFields(
              1421228469708676,    // sheetId
              new SummaryField[] { summaryField },
              false    // renameIfConflict
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/summary/fields
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{
              "type": "TEXT_NUMBER",
              "objectValue": "Sally Smart",
              "index": 2,
              "title": "Author"
            }]'
        - lang: Java
          label: Java
          source: >
            SummaryField summaryField = new SummaryField();

            summaryField.setType(ColumnType.TEXT_NUMBER);

            summaryField.setObjectValue(new StringObjectValue("Sally Smart"));

            summaryField.setIndex(2);

            summaryField.setTitle("Author");


            smartsheet.sheetResources().summaryResources().addSheetSummaryFields(
                    1421228469708676L,    // long sheetId
                    Arrays.asList(summaryField),
                    false    // renameIfConflict
                    );
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              sheetId: 1421228469708676,
              body: [{
                type: 'TEXT_NUMBER',
                objectValue: 'Sally Smart',
                index: 2,
                title: 'Author'
              }]
            };

            smartsheet.sheets.addSummaryFields(options)
              .then(function(summary) {
                console.log(summary);
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            summary_field1 = smartsheet.models.SummaryField()

            summary_field1.type = ColumnType.TEXT_NUMBER

            summary_field1.object_value =
            smartsheet.models.StringObjectValue('Sally Smart')

            summary_field1.index = 2

            summary_field1.title = 'Author'


            smartsheet_client.Sheets.add_sheet_summary_fields(
                1421228469708676,    # sheet_id
                [summary_field1],
                False    # rename_if_conflict
            )
  /sheets/{sheetId}/summary/fields/{fieldId}/images:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/summaryFieldId'
      - $ref: '#/components/parameters/Authorization'
    post:
      summary: Add Image to Sheet Summary
      description: Adds an image to the summary field.
      operationId: add-image-summaryField
      tags:
        - sheetSummary
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/Content-Disposition'
        - $ref: '#/components/parameters/Content-Length'
        - $ref: '#/components/parameters/altText'
        - $ref: '#/components/parameters/overrideValidation'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SummaryFieldAddImage'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            smartsheet.SheetResources.SummaryResources.AddSheetSummaryFieldImage(
              1421228469708676,    // sheetId
              5629723890335892,    // fieldId
              "picture.jpg",    // file
              "image/jpeg",    // contentType
              "my image"    // altText
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/summary/fields/{fieldId}/images?altText=my%20image
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: image/jpeg" \

            -H 'Content-Disposition: attachment; filename="picture.jpg"' \

            -X POST \

            --data-binary @picture.jpg
        - lang: Java
          label: Java
          source: >
            smartsheet.sheetResources().summaryResources().addSheetSummaryFieldImage(
                    1421228469708676L,    // long sheetId
                    5629723890335892L,    // long fieldId
                    "picture.jpg",    // file
                    "image/jpeg",    // contentType
                    "my image"    // altText
                    );
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              sheetId: 1421228469708676,
              fieldId: 5629723890335892,
              path: 'C:/picture.jpg',
              fileName: 'picture.jpg'
            };

            smartsheet.sheets.addSummaryFieldImage(options)
              .then(function(summary) {
                console.log(summary);
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.add_sheet_summary_field_image(
                1421228469708676,    # sheet_id
                5629723890335892,    # field_id
                "picture.jpg",       # file
                "image/jpeg",        # file_type
                "my image"           # alt_text
            )
  /sheets/{sheetId}/updaterequests:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Update Requests
      description: >
        Gets a summarized list of all update requests that have future schedules
        associated with the specified sheet.

        Only the following fields are returned in the response:
          * **id**
          * **ccMe**
          * **createdAt**
          * **message**
          * **modifiedAt**
          * **schedule**
          * **sendTo**
          * **sentBy**
          * **subject**
      operationId: updaterequests-list
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: The list of UpdateRequest objects
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of UpdateRequest objects
                        type: array
                        items:
                          $ref: '#/components/schemas/UpdateRequest'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: list update requests


            PaginatedResult<UpdateRequest> results =
            smartsheet.SheetResources.UpdateRequestResources.ListUpdateRequests(
                1639534409607044,       // sheetId
                null                    // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: list update requests


            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/updaterequests
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            # Example request: list update requests


            PagedResult<UpdateRequest> results =
            smartsheet.sheetResources().updateRequestResources().listUpdateRequests(
                1639534409607044L,      // long sheetId
                null                    // PaginationParameters
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: list update requests

            // Set options
            var options = {
                sheetId: 1639534409607044
            };

            // List update requests
            smartsheet.sheets.getAllUpdateRequests(options)
                .then(function(requestsList) {
                    console.log(requestsList);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List update requests
            response = smartsheet_client.Sheets.list_update_requests(
              5190835902932868)      # sheet_id
            update_requests = response.data

            # Sample 2: Paginate the list of update requests
            response = smartsheet_client.Sheets.list_update_requests(
              5190835902932868,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            update_requests = response.data
    post:
      summary: Create an Update Request
      description: >
        Creates an update request for the specified rows within the sheet. An
        email notification (containing a link to the update request) is sent to
        the specified recipients according to the specified schedule.


        The recipients of an update request must be specified by using email
        addresses only. Sending an update request to a group is not supported.


        The following attributes have the following values when not specified:

        * **ccMe:** false

        * **message:** Please update the following rows in my online sheet.

        * **subject:** Update Request: {Sheet Name}


        When the Schedule object is not specified, the request is sent to the
        recipients immediately.


        If an error occurs because the request specified one or more *alternate
        email addresses*,

        please retry using the primary email address.
      operationId: updaterequests-create
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRequest'
      responses:
        '200':
          description: Result object containing the newly created UpdateRequest object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/UpdateRequest'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: create update request


            // Specify recipients

            Recipient[] recipientSpecification = new Recipient[] {
                new Recipient { Email = "recipient1@smartsheet.com"}
            };


            // Configure update request

            UpdateRequest updateRequestSpecification = new UpdateRequest

            {
                SendTo = recipientSpecification,
                Subject = "Sample Monthly Update Request",
                Message = "Please update my online sheet.",
                CcMe = true,
                RowIds = new long[] { 1123834706323332, 5627434333693828 },
                ColumnIds = new long[] { 4549065498224516, 2297265684539268 },
                IncludeAttachments = true,
                IncludeDiscussions = true
            };


            // Send update request via email

            UpdateRequest newUpdateRequest =
            smartsheet.SheetResources.UpdateRequestResources.CreateUpdateRequest(
                3285357287499652,       // sheetId
                updateRequestSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: create update request


            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/updaterequests
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{
              "sendTo": [
                {"email": "recipient1@smartsheet.com"},
                {"email": "recipient2@smartsheet.com"}
              ],
              "subject": "Sample Monthly Update Request",
              "message": "Please update my online sheet.",
              "ccMe": false,
              "rowIds": [4508292249610116, 2256492435924868],
              "columnIds": [4508284196546436, 2256484382861188],
              "includeAttachments": false,
              "includeDiscussions": false
            }'
        - lang: Java
          label: Java
          source: >
            # Example request: create update request


            // Specify recipients

            RecipientEmail recipientA = new RecipientEmail()
                .setEmail("recipient1@smartsheet.com");

            RecipientEmail recipientB = new RecipientEmail()
                .setEmail("recipient2@smartsheet.com");

            List<Recipient> recipients = Arrays.asList(recipientA, recipientB);


            // Specify parameters for update request

            UpdateRequest updateRequest = new UpdateRequest();

            updateRequest.setRowIds((Arrays.asList(3344087179913092L,
            7847686807283588L));

            updateRequest.setSendTo(recipients)
                .setSubject("Sample Monthly Update Request")
                .setMessage("Please update my online sheet.")
                .setColumnIds(Arrays.asList(1735559124150148L, 1735559124150148L))
                .setIncludeAttachments(false)
                .setIncludeDiscussions(false);

            // Create update request

            smartsheet.sheetResources().updateRequestResources().createUpdateRequest(
                1639534409607044L,      // long sheetId
                updateRequest
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: create update request

            // Set body
            var body = {
              rowIds: [
                1049041315358596,
                5552640942729092
              ],
              includeAttachments: true,
              includeDiscussions: false,
              sendTo: [
                {
                  email: "jane.roe@smartsheet.com"
                }
              ],
              subject: "Sample Monthly Update Request",
              message: "Please update my online sheet.",
              schedule: {
                type: "DAILY",
                startAt: "2016-04-01T00:00:00Z",
                endAt: "2018-12-31T00:00:00Z",
                dayDescriptors: [
                  "WEEKDAY"
                ]
              }
            };

            // Set options
            var options = {
              sheetId: 1696801624483716,
              body: body
            };

            // Create update request
            smartsheet.sheets.createUpdateRequest(options)
              .then(function(updatedRequest) {
                console.log(updatedRequest);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Example request: create update request

            # Configure update request
            request = smartsheet.models.UpdateRequest()
            request.send_to = [{'email': 'someone@smartsheet.com'}]
            request.subject = 'Please update based on meeting'
            request.message = 'Hello, please checkout my update request'
            request.cc_me = False
            request.include_discussions = False
            request.include_attachments = False
            request.row_ids = [6809535313667972]
            request.column_ids = [7036894123976580]

            # Send update request
            action = smartsheet_client.Sheets.create_update_request(
              5190835902932868,           # sheet_id
              request
            )
  /sheets/{sheetId}/updaterequests/{updateRequestId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - name: updateRequestId
        in: path
        required: true
        description: ID of the Update Request
        schema:
          type: string
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get an Update Request
      description: >
        Gets the specified update request for the sheet that has a future
        schedule.


        The rowIds and columnIds in the returned UpdateRequest object represent
        the list at the time

        the update request was created or last modified. The lists may contain
        Ids of rows or columns

        that are no longer valid (for example, they have been removed from the
        sheet).
      operationId: updaterequests-get
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: UpdateRequest object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateRequest'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: get update request


            UpdateRequest results =
            smartsheet.SheetResources.UpdateRequestResources.GetUpdateRequest(
                3285357287499652,      // sheetId
                2409350321989508       // updateRequestId
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: get update request


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/updaterequests/{updateRequestId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            # Example request: get update request


            UpdateRequest results =
            smartsheet.sheetResources().updateRequestResources().getUpdateRequest(
                1639534409607044L,      // long sheetId
                965780272637828L        // long updateRequestId
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: get update request

            // Set options
            var options = {
                sheetId: 3285357287499652,
                updateRequestId: 2409350321989508
            };

            // Get update request
            smartsheet.sheets.getUpdateRequest(options)
                .then(function(updateRequest) {
                    console.log(updateRequest);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Example request: get update request

            response = smartsheet_client.Sheets.get_update_request(
                5190835902932868,       # sheet_id
                7510551698925444        # update_request_id
            )
    put:
      summary: Update an Update Request
      description: >
        Changes the specified update request for the sheet.


        **Making changes to update requests that do not have future scheduled
        delivery is not allowed.**


        The UpdateRequest object in the request body must specify one or more of
        the following attributes:


        * **ccMe:** Boolean

        * **columnIds:** number[]

        * **includeAttachments:** Boolean

        * **includeDiscussions:** Boolean

        * **message:** string

        * **schedule:** Schedule object

        * **sendTo:** Recipient[]

        * **subject:** string


        If an error occurs because the request specified one or more *alternate
        email addresses*,

        please retry using the primary email address.
      operationId: updaterequests-update
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      responses:
        '200':
          description: Result object containing the modified UpdateRequest object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/UpdateRequest'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: change update request


            // Identify the update request you want to change

            UpdateRequest updateRequestSpecification = new UpdateRequest

            {
                Id = 7178482007467908,        // long updateRequestId
                Subject = "Sample Monthly Update Request",
                Message = "Please update my online sheet."
            };


            // Change update request

            UpdateRequest updatedUpdateRequest =
            smartsheet.SheetResources.UpdateRequestResources.UpdateUpdateRequest(
                3285357287499652,          // sheetId
                updateRequestSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: change update request


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/updaterequests/{updateRequestId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{
              "subject": "Sample Monthly Update Request",
              "message": "Please update my online sheet."
            }'
        - lang: Java
          label: Java
          source: >
            Example request: change update request


            UpdateRequest updateRequest = new UpdateRequest();

            updateRequest.setId(3294745817573252L);

            updateRequest.setColumnIds(Arrays.asList(1735559124150148L,
            1735559124150148L));

            updateRequest.setIncludeAttachments(true);

            smartsheet.sheetResources().updateRequestResources().updateUpdateRequest(
                3294745817573252L,  // long sheetId
                updateRequest
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: change update request

            // Set text
            var body = {
                subject: "Sample Monthly Update Request"
            };

            // Set options
            var options = {
                sheetId: 3285357287499652,
                updateRequestId: 7178482007467908,
                body: body
            };

            // Change update request
            smartsheet.sheets.changeUpdateRequest(options)
                .then(function(updatedRequest) {
                    console.log(updatedRequest);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Example request: change update request

            # Update required request fields
            request = smartsheet.models.UpdateRequest()
            request.subject = 'Sample Monthly Update Request'
            request.column_ids = [7036894123976580]
            request.include_attachments = True

            # Change update request
            action = smartsheet_client.Sheets.update_update_request(
                3294745817573252,       # sheet_id
                7820135625975684,       # update_request_id
                request
    delete:
      summary: Delete an Update Request
      description: >
        Terminates the future scheduled delivery of the update request specified
        in the URL.
      operationId: updaterequests-delete
      tags:
        - updateRequests
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SHEETS
            - WRITE_SHEETS
      responses:
        '200':
          description: Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            # Example request: delete update request


            smartsheet.SheetResources.UpdateRequestResources.DeleteUpdateRequest(
                3285357287499652,      // sheetId
                2409350321989508       // updateRequestId
            );
        - lang: cURL
          label: cURL
          source: >
            # Example request: delete update request


            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/updaterequests/{updateRequestId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: >
            # Example request: delete update request


            smartsheet.sheetResources().updateRequestResources().deleteUpdateRequest(
                1639534409607044L,      // long sheetId
                965780272637828L        // long updateRequestId
            );
        - lang: Node.js
          label: Node.js
          source: |
            # Example request: delete update request

            // Set options
            var options = {
                sheetId: 3285357287499652,
                updateRequestId: 2409350321989508
            };

            // Delete update request
            smartsheet.sheets.deleteUpdateRequest(options)
                .then(function(result) {
                    console.log(result);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            # Example request: delete update request

            smartsheet_client.Sheets.delete_update_request(
                5190835902932868,        # sheet_id
                7444581001258884         # update_request_id
            )
  /sheets/{sheetId}/shares:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/accessApiLevel'
    post:
      summary: Share Sheet
      description: Shares a sheet with the specified users and groups.
      operationId: share-sheet
      tags:
        - sharing
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      parameters:
        - $ref: '#/components/parameters/sendEmail'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Share'
                - type: array
                  items:
                    $ref: '#/components/schemas/Share'
      responses:
        '200':
          description: >
            Result object containing either a single Share object or an array of
            Share objects, corresponding to what

            was specified in the request. All shares have scope=ITEM.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Share'
                          - type: array
                            items:
                              $ref: '#/components/schemas/Share'
        '400':
          description: >
            If called with a single Share object, and that user or group share
            already exists, error code 1025 is returned.

            If called with an array of Share objects, and one or more user or
            group shares in the array already exist,

            they are ignored and omitted from the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify share (to one user as Editor)

            Share[] shareSpecification = new Share[] { new Share
              {
                Email = "jane.doe@smartsheet.com",
                AccessLevel = AccessLevel.EDITOR
              }
            };


            // Share sheet

            IList<Share> addressList =
            smartsheet.SheetResources.ShareResources.ShareTo(
              4583614634583940,               // sheetId
              shareSpecification,
              true                            // Nullable<bool> sendEmail
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sheets/{sheetId}/shares?sendEmail=true'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{"email": "jane.doe@smartsheet.com", "accessLevel": "EDITOR"}]'
        - lang: Java
          label: Java
          source: >
            // Specify share (to one user as Editor)

            Share shareSpecification = new Share()
                    .setEmail("jane.doe@smartsheet.com")
                    .setAccessLevel(AccessLevel.EDITOR);

            // Share sheet

            List<Share> addressList =
            smartsheet.sheetResources().shareResources().shareTo(
                    4583614634583940L,                    // long sheetId
                    (Arrays.asList(shareSpecification)),
                    true                                  // Boolean sendEmail
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify share (to one user as Editor)
            var share = [
              {
                "email": "jane.doe@smartsheet.com",
                "accessLevel": "EDITOR"
              }
            ];

            // Set options
            var options = {
              sheetId: 4583614634583940,
              body: share
              };

            // Share sheet
            smartsheet.sheets.share(options)
              .then(function(addressList) {
                console.log(addressList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sheets.share_sheet(
              4583614634583940,       # sheet_id
              smartsheet.models.Share({
                'access_level': 'EDITOR',
                'email': 'jane.doe@smartsheet.com'
              }),
              True                    # sendEmail
            )
    get:
      summary: List Sheet Shares
      description: >
        Gets a list of all users and groups to whom the specified Sheet is
        shared, and their access level. This operation

        supports query string parameters for pagination of results. For more
        information, see Paging Query String Parameters.
      operationId: list-sheet-shares
      tags:
        - sharing
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/sharingInclude'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >
            IndexResult object containing an array of Share objects. By default,
            this operation returns only item-level

            shares (scope=ITEM). Use the sharingInclude parameter to request
            that workspace-level shares

            (include=workspaceShares) also be returned.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Share> shares =
            smartsheet.SheetResources.ShareResources.ListShares(
              4583614634583940,               // sheetId
              null                            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/shares \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Share> shares =
            smartsheet.sheetResources().shareResources().listShares(
                    4583614634583940L,       // long sheetId
                    null,                    // PaginationParameters
                    true                     // Boolean includeWorkspaceShares
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 4583614634583940
            };

            // List sheet shares
            smartsheet.sheets.listShares(options)
              .then(function(shareList) {
                console.log(shareList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Sheets.list_shares(
              4583614634583940,       # sheet_id
              include_all=True)
            shares = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Sheets.list_shares(
              4583614634583940,       # sheet_id
              page_size=10,
              page=1)
            pages = response.total_pages
            shares = response.data
  /sheets/{sheetId}/shares/{shareId}:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/shareId'
      - $ref: '#/components/parameters/accessApiLevel'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Sheet Share.
      description: Gets the share specified in the URL.
      operationId: share-sheet-get
      tags:
        - sharing
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: Returns Share object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Share share = smartsheet.SheetResources.ShareResources.GetShare(
              4583614634583940,           // sheetId
              "AQAISF82FOeE"              // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Share share = smartsheet.sheetResources().shareResources().getShare(
                    4583614634583940L,       // long sheetId
                    "AAAASuWWFOeE"           // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 4583614634583940,
              shareId: "AQAISF82FOeE"
            };

            // Get sheet share
            smartsheet.sheets.getShare(options)
              .then(function(share) {
                console.log(share);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            share = smartsheet_client.Sheets.get_share(
              4583614634583940,       # sheet_id
              'AAAASuWWFOeE')         # share_id
    delete:
      summary: Delete Sheet Share
      description: Deletes the share specified in the URL.
      operationId: delete-sheet-share
      tags:
        - sharing
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SheetResources.ShareResources.DeleteShare(
              4583614634583940,               // sheetId
              "AAAASuWWFOeE"                  // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.sheetResources().shareResources().deleteShare(
                    4583614634583940L,       // long sheetId
                    "AAAASuWWFOeE"           // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 4583614634583940,
              shareId: "AAAASuWWFOeE"
            };

            // Delete sheet share
            smartsheet.sheets.deleteShare(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sheets.delete_share(
              4583614634583940,       # sheet_id
              'AAAFeF82FOeE')         # share_id
    put:
      summary: Update Sheet Share.
      description: Updates the access level of a user or group for the specified sheet.
      operationId: update-sheet-share
      tags:
        - sharing
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SHEETS
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessLevel:
                  $ref: '#/components/schemas/AccessLevel'
      responses:
        '200':
          description: Returns Result object containing the modified Share object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        type: object
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share

            {
              Id = "AAAFeF82FOeE",
              AccessLevel = AccessLevel.VIEWER
            };


            // Update sheet share

            Share updatedShare =
            smartsheet.SheetResources.ShareResources.UpdateShare(
              4583614634583940,               // sheetId
              shareSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sheets/{sheetId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{"accessLevel": "VIEWER"}'
        - lang: Java
          label: Java
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share()
                    .setEmail("jane.doe@smartsheet.com")
                    .setAccessLevel(AccessLevel.EDITOR);

            // Update sheet share

            Share updatedShare =
            smartsheet.sheetResources().shareResources().updateShare(
                    4583614634583940L,       // long sheetId
                    shareSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set access level to Viewer
            var shareSpecification = {"accessLevel": "VIEWER"};

            // Set options
            var options = {
              sheetId: 1696801624483716,
              shareId: "AAAHAYImFOeE",
              body: shareSpecification
            };

            // Update sheet share
            smartsheet.sheets.updateShare(options)
              .then(function(updatedShare) {
                console.log(updatedShare);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_share = smartsheet_client.Sheets.update_share(
              4583614634583940,       # sheet_id
              'AAAFeF82FOeE',         # share_id
              smartsheet.models.Share({
                'access_level': 'VIEWER'
              })
            )
  /sheets/{sheetId}/sort:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Content-Type'
    post:
      summary: Sort Rows in Sheet
      description: Sorts the rows of a sheet, either in ascending or descending order.
      operationId: rows-sort
      tags:
        - rows
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/sortRows'
      requestBody:
        description: >
          [SortSpecifier](/api/smartsheet/openapi/schemas/sortspecifier) with
          the following attribute:

          * **sortCriteria** --
          [SortCriterion](/api/smartsheet/openapi/schemas/sortcriterion) array
          in priority order. Specifies sort order.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SortSpecifier'
      responses:
        '200':
          description: >-
            Returns [Sheet object](/api/smartsheet/openapi/sheets/sheet),
            populated according to the specified parameters.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Sheet'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            SortCriterion criterion = new SortCriterion
            {
              ColumnId = 4583173393803140,    // columnId
              Direction = SortDirection.DESCENDING
            };
            SortSpecifier specifier = new SortSpecifier
            {
              SortCriteria = new SortCriterion[] { criterion }
            };

            Sheet sheet = smartsheet.SheetResources.SortSheet(
                4583173393803140,    // sheetId
                specifier
              );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/sort \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"sortCriteria": [{"columnId": 4583173393803140, "direction":
            "DESCENDING"}]}'
        - lang: Java
          label: Java
          source: |
            SortCriterion criterion = new SortCriterion();
            criterion.setColumnId(4583173393803140L);    // long columnId
            criterion.setDirection(SortDirection.DESCENDING);
            SortSpecifier specifier = new SortSpecifier();
            specifier.setSortCriteria(Arrays.asList(criterion));

            Sheet sheet = smartsheet.sheetResources().sortSheet(
                    4583173393803140L,    // long sheetId
                    specifier
                    );
        - lang: Node.js
          label: Node.js
          source: >
            // Specify sort criteria

            var body = {
              sortCriteria: [
                {
                  columnId: 4583173393803140,
                  direction: "DESCENDING"
                }
              ]
            };


            // Sort rows

            smartsheet.sheets.sortRowsInSheet({sheetId: 9283173393803140, body:
            body})
              .then((result) => {
                  console.log("success");
                  console.log(JSON.stringify(result));
              })
              .catch((error) => {
                  console.log("error");
                  console.log(JSON.stringify(error));
              });
        - lang: Python
          label: Python
          source: >
            sort_specifier = smartsheet.models.SortSpecifier({
                'sort_criteria': [smartsheet.models.SortCriterion({
                    'column_id': 4583173393803140,
                    'direction': 'DESCENDING'
                })]
            })

            sheet = smartsheet_client.Sheets.sort_sheet(9283173393803140,
            sort_specifier)
  /sheets/{sheetId}/version:
    parameters:
      - $ref: '#/components/parameters/sheetId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Sheet Version
      description: |
        Gets the sheet version without loading the entire sheet.
        The following actions increment sheet version:
        * add/modify cell value
        * add/modify discussion/comment
        * add/modify row
        * add/remove/update version attachment
        * cell updated via cell link
        * change formatting
      operationId: get-sheetVersion
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SheetVersion'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Integer version = smartsheet.SheetResources.GetSheetVersion(
              1531988831168388            // sheetId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sheets/{sheetId}/version \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Integer version = smartsheet.sheetResources().getSheetVersion(
                    1531988831168388L        // long sheetId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sheetId: 1531988831168388
            };

            // Get sheet version
            smartsheet.sheets.getSheetVersion(options)
              .then(function(version) {
                console.log(version);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            version = smartsheet_client.Sheets.get_sheet_version(
              1531988831168388)       # sheet_id
  /sights:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: list-sights
      summary: List Dashboards
      description: Gets a list of all dashboards that the user has access to.
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - READ_SIGHTS
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/modifiedSince'
        - $ref: '#/components/parameters/numericDates'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >
            IndexResult object containing an array of Dashboard objects with a
            subset of attributes.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: List of Dashboards
                        type: array
                        items:
                          $ref: '#/components/schemas/SightListItem'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            PaginatedResult<Sight> sights =
            smartsheet.SightResources.ListSights(
              null,       // PaginationParameters
              null        // Nullable<DateTime> modifiedSince
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            PagedResult<Sight> sights = smartsheet.sightResources().listSights(
                    null,       // PaginationParameters
                    null        // Date modifiedSince
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.sights.listSights()
              .then(function(sights) {
                console.log(sights.data);
              })
              .catch(function(error) {
                console.log(error);
              })
        - lang: Python
          label: Python
          source: |
            # Sample 1: List All
            response = smartsheet_client.Sights.list_sights(include_all=True)
            sights = response.data

            # Sample 2: Paginate the list of dashboards
            response = smartsheet_client.Sights.list_sights(
              page_size=10,
              page=1)
            pages = response.total_pages
            sights = response.data
  /sights/{sightId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/sightId'
    get:
      summary: Get Dashboard
      description: Gets the specified dashboard.
      operationId: get-sight
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/sightInclude'
        - $ref: '#/components/parameters/sightLevel'
        - $ref: '#/components/parameters/numericDates'
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - READ_SIGHTS
      responses:
        '200':
          description: Dashboard object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Sight'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Sight sight = smartsheet.SightResources.GetSight(
              6327127650920324        // long sightId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId}?level=4 \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Sight sight = smartsheet.sightResources().getSight(
                    6327127650920324L       // long sightId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sightId: 6327127650920324
            };

            // Get dashboard
            smartsheet.sights.getSight(options)
              .then(function(sight) {
                console.log(sight);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: Get dashboard

            sight = smartsheet_client.Sights.get_sight(
              6327127650920324)     # sightId

            # Sample 2: Determine whether a user has Commenter permissions for a
            dashboard

            response = smartsheet_client.Sights.get_sight(
              6327127650920324,       # sightId
              accessApiLevel=1)
    put:
      summary: Update Dashboard
      description: Updates (renames) the specified dashboard.
      operationId: update-sight
      parameters:
        - $ref: '#/components/parameters/numericDates'
        - $ref: '#/components/parameters/Content-Type'
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SIGHTS
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SightName'
      responses:
        '200':
          description: Result object containing the updated Dashboard object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ItemResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Sight'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Sight sight = smartsheet.SightResources.UpdateSight(
              new Sight {
                Id = 5363568917931908,    // sightId
                Name = "New Dashboard Name"
              }
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{"name": "New Dashboard Name"}'
        - lang: Java
          label: Java
          source: |
            Sight sight = new Sight();
            sight.setId(5363568917931908L);    // long sightId
            sight.setName("New Dashboard Name");
            Sight updatedSight = smartsheet.sightResources().updateSight(sight);
        - lang: Node.js
          label: Node.js
          source: |
            // Set property to change
            var body = {
              name: "New Dashboard Name"
            };

            // Set options
            var options = {
              sightId: 5363568917931908,
              body: body
            };

            // Update Dashboard
            smartsheet.sights.updateSight(options)
              .then(function(updatedSight) {
                console.log(updatedSight);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_sight = smartsheet_client.Sights.update_sight(
              5363568917931908,           # sight_id
              smartsheet.models.Sight({
                'name': 'New Dashboard Name'
              })
            )
    delete:
      summary: Delete Dashboard
      description: Deletes the dashboard specified in the URL.
      operationId: delete-sight
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - DELETE_SIGHTS
      responses:
        '200':
          description: Generic response result
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SightResources.DeleteSight(
              5077532685952900            // sightId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            smartsheet.sightResources().deleteSight(
                    3100061023397764L       // long sightId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sightId: 5363568917931908
            };

            // Delete Dashboard
            smartsheet.sights.deleteSight(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            smartsheet_client.Sights.delete_sight(3404239197235076)     #
            sight_id
  /sights/{sightId}/copy:
    post:
      summary: Copy Dashboard
      description: Creates a copy of the specified dashboard.
      operationId: copy-sight
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SIGHTS
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/sightId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerDestination'
      responses:
        '200':
          description: >
            Result object containing a dashboard with a subset of attributes for
            the newly created dashboard.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ItemResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SightResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination
            {
              DestinationId = 3791509922310020,               // long destinationFolderId
              DestinationType = DestinationType.FOLDER,
              NewName = "newDashboardName"
            };

            // Copy Dashboard
            Sight sight = smartsheet.SightResources.CopySight(
              6327127650920324,                               // long sightId
              destination
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId}/copy \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -d '{
              "destinationType": "workspace",
              "destinationId": 7960873114331012,
              "newName": "newDashboardName"
            }' \
            -X POST
        - lang: Java
          label: Java
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination()
                    .setDestinationType(DestinationType.FOLDER)
                    .setDestinationId(3791509922310020L)
                    .setNewName("newDashboardName");

            // Copy Dashboard
            Sight sight = smartsheet.sightResources().copySight(
                    6327127650920324L,                          // long sightId
                    destination
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify new dashboard properties
            var body = {
              destinationType: "home",
              newName: "newDashboardName"
            };

            // Set options
            var options = {
              sightId: 6327127650920324,
              body: body
            };

            // Copy Dashboard
            smartsheet.sights.copySight(options)
              .then(function(copiedSight) {
                console.log(copiedSight);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            new_sight = smartsheet_client.Sights.copy_sight(
              6327127650920324,                           # sight_id
              smartsheet.models.ContainerDestination({
                'destination_type': 'folder',           # folder, workspace, or home
                'destination_id': 3791509922310020,     # folder_id
                'new_name': 'newDashboardName'
              })
            )
  /sights/{sightId}/move:
    post:
      summary: Move Dashboard
      description: Moves the specified dashboard to a new location.
      operationId: move-sight
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SIGHTS
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/sightId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerDestination'
      responses:
        '200':
          description: >
            Result object containing a Dashboard object with a subset of
            attributes for the moved dashboard.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ItemResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SightResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination
            {
              DestinationId = 8460057768683396,               // long destinationFolderId
              DestinationType = DestinationType.FOLDER
            };

            // Move Dashboard
            Sight sight = smartsheet.SightResources.MoveSight(
              5077532685952900,                               // long sightId
              destination
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId}/move \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -d '{
              "destinationType": "folder",
              "destinationId": workspace_or_folder_id
            }' \
            -X POST
        - lang: Java
          label: Java
          source: |
            // Specify destination
            ContainerDestination destination = new ContainerDestination()
                    .setDestinationType(DestinationType.FOLDER)
                    .setDestinationId(7960873114331012L);

            // Move Dashboard
            Sight sight = smartsheet.sightResources().moveSight(
                    4583173393803140L,                          // long sightId
                    destination
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set destination
            var body = {
              destinationType: "folder",
              destinationId: 8460057768683396
            };

            // Set options
            var options = {
              sightId: 5077532685952900,
              body: body
            };

            // Move Dashboard
            smartsheet.sights.moveSight(options)
              .then(function(movedSight) {
                console.log(movedSight);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sights.move_sight(
              5363568917931908,                           # sight_id
              smartsheet.models.ContainerDestination({
                'destination_type': 'folder',           # folder, workspace, or home
                'destination_id': 8460057768683396      # destination folder_id
              })
            )
  /sights/{sightId}/publish:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/sightId'
    get:
      summary: Get Dashboard Publish Status
      description: Gets the dashboard 'publish' settings.
      operationId: get-sight-publish-status
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - READ_SIGHTS
      responses:
        '200':
          description: SightPublish object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SightPublish'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            SightPublish publish = smartsheet.SightResources.GetPublishStatus(
                5363568917931908    // sightId
              );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId}/publish \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            SightPublish publish = smartsheet.sightResources().getPublishStatus(
                    5363568917931908L    // long sightId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sightId: 5363568917931908
            };

            // Get dashboard publish status
            smartsheet.sights.getSightPublishStatus(options)
              .then(function(status) {
                console.log(status);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            status = smartsheet_client.Sights.get_publish_status(
              5363568917931908)       # sight_id
    put:
      summary: Set Dashboard Publish Status
      description: Publishes or unpublishes a dashboard.
      operationId: set-sight-publish-status
      tags:
        - dashboards
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_SIGHTS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SightPublish'
      responses:
        '200':
          description: SightPublish object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ItemResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SightPublish'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            SightPublish publish = new SightPublish();
            publish.ReadOnlyFullEnabled = true;
            smartsheet.SightResources.SetPublishStatus(
              5363568917931908,    // sightId
              publish
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId}/publish \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{
              "readOnlyFullEnabled": true,
              "readOnlyFullAccessibleBy": "ALL"
            }'
        - lang: Java
          label: Java
          source: |
            SightPublish publish = new SightPublish();
            publish.setReadOnlyFullEnabled(true);
            smartsheet.sightResources().setPublishStatus(
                    5363568917931908L,    // long sightId
                    publish
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify property to change
            var body = {
              readOnlyFullEnabled: false
            };

            // Set options
            var options = {
              sightId: 5363568917931908,
              body: body
            };

            // Set dashboard publish status
            smartsheet.sights.setSightPublishStatus(options)
              .then(function(newStatus) {
                console.log(newStatus);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sights.set_publish_status(
              5363568917931908,       # sight_id
              smartsheet.models.SightPublish({
                'read_only_full_enabled': True
              })
            )
  /sights/{sightId}/shares:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/accessApiLevel'
      - $ref: '#/components/parameters/sightId'
    post:
      summary: Share Dashboard
      description: Shares a dashboard with the specified users and groups.
      operationId: share-sight
      tags:
        - dashboards
        - sharing
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SIGHTS
      parameters:
        - $ref: '#/components/parameters/sendEmail'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Share'
      responses:
        '200':
          description: >
            Result object containing either a single Share object or an array of
            Share objects, corresponding to what was

            specified in the request. All shares have scope=ITEM.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Share'
                          - type: array
                            items:
                              $ref: '#/components/schemas/Share'
        '400':
          description: >
            If called with a single Share object, and that user or group share
            already exists, error code 1025 is returned.

            If called with an array of Share objects, and one or more user or
            group shares in the array already exist,

            they are ignored and omitted from the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Share share = new Share {
              Type = ShareType.USER,
              AccessLevel = AccessLevel.EDITOR,
              Email = "jane.doe@smartsheet.com"
            }

            List<Share> sightShares =
            smartsheet.SightResources.ShareResources.ShareTo(
              6327127650920324,             // sightId
              new Share[] { share },        // IEnumerable<Share> shares
              true                          // bool sendEmail
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/sights/{sightId}/shares?sendEmail=true'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{"email": "jane.doe@smartsheet.com", "accessLevel": "VIEWER"}]'
        - lang: Java
          label: Java
          source: >
            // Specify share (to one user as Viewer)

            Share shareSpecification = new Share()
                    .setEmail("jane.doe@smartsheet.com")
                    .setAccessLevel(AccessLevel.VIEWER);

            // Share dashboard

            List<Share> addressList =
            smartsheet.sightResources().shareResources().shareTo(
                    4583614634583940L,                    // long sightId
                    (Arrays.asList(shareSpecification)),
                    true                                  // Boolean sendEmail
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify share (to one user as Viewer)
            var share = [
              {
                "email": "jane.doe@smartsheet.com",
                "accessLevel": "VIEWER"
              }
            ];

            // Set options
            var options = {
              sightId: 6327127650920324,
              body: share
            };

            // Share dashboard
            smartsheet.sights.share(options)
              .then(function(addressList) {
                console.log(addressList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sights.share_sight(
              6327127650920324,       # sight_id
              smartsheet.models.Share({
                'access_level': 'VIEWER',
                'email': 'jane.doe@smartsheet.com'
              }),
              True                    # sendEmail
            )
    get:
      summary: List Dashboard Shares
      description: >-
        Gets a list of all users and groups to whom the specified dashboard is
        shared, and their access level.
      operationId: list-sight-shares
      tags:
        - dashboards
        - sharing
      security:
        - APIToken: []
        - OAuth2:
            - READ_SIGHTS
      parameters:
        - $ref: '#/components/parameters/sharingInclude'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >
            IndexResult object containing an array of Share objects. By default,
            this operation returns only item-level

            shares (scope=ITEM). Use the sharingInclude parameter to request
            that workspace-level shares (scope=WORKSPACE)

            also be returned.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            PaginatedResult<Share> shares =
            smartsheet.SightResources.ShareResources.ListShares(
              6327127650920324,       // sightId
              null,                   // Pagination parameters
              ShareScope.Item         // ShareScope shareScope
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/sights/{sightId}/shares \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            //Sample 1: List all

            smartsheet.sightResources().shareResources().listShares(
                    6327127650920324L,    // long sightId
                    null,    // PaginationParameters
                    true    // includeWorkspaceShares
                    );

            //Sample 2: Paginate the list

            PaginationParameters paginationParameters = new
            PaginationParameters(
                    false,  // includeAll
                    100,    // pageSize
                    1   // page
                    );
            smartsheet.sightResources().shareResources().listShares(
                    6327127650920324L,    // long sightId
                    paginationParameters,
                    true    // includeWorkspaceShares
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sightId: 6327127650920324
            }

            // List dashboard shares
            smartsheet.sights.listShares(options)
              .then(function(shareList) {
                console.log(shareList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Sights.list_shares(
              6327127650920324,       # sight_id
              include_all=True)
            shares = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Sights.list_shares(
              6327127650920324,       # sight_id
              page_size=10,
              page=1)
            pages = response.total_pages
            shares = response.data
  /sights/{sightId}/shares/{shareId}:
    parameters:
      - $ref: '#/components/parameters/sightId'
      - $ref: '#/components/parameters/shareId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Dashboard Share
      description: >-
        Gets a list of all users and groups to whom the specified dashboard is
        shared, and their access level.
      operationId: share-sight-get
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
      tags:
        - dashboards
        - sharing
      security:
        - APIToken: []
        - OAuth2:
            - READ_SIGHTS
      responses:
        '200':
          description: Returns Share object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Share share = smartsheet.SightResources.ShareResources.GetShare(
              6327127650920324,           // long sightId
              "AAABbMomFOeE"              // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sights/{sightId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Share share = smartsheet.sightResources().shareResources().getShare(
                    6327127650920324L,           // long sightId
                    "AAABbMomFOeE"              // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sightId: 6327127650920324,
              shareId: "AAABbMomFOeE"
            }

            // Get dashboard share
            smartsheet.sights.getShare(options)
              .then(function(share) {
                console.log(share);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            share = smartsheet_client.Sights.get_share(
              6327127650920324,       # sight_id
              'AAACOqOmFOeE')         # share_id
    delete:
      summary: Delete Dashboard Share
      description: Deletes the share specified in the URL.
      operationId: delete-sight-share
      tags:
        - dashboards
        - sharing
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SIGHTS
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.SightResources.ShareResources.DeleteShare(
              6327127650920324,     // sightId
              "AAABbMomFOeE"        // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sights/{sightId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.sightResources().shareResources().deleteShare(
                    6327127650920324L,           // long sightId
                    "AAABbMomFOeE"               // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              sightId: 6327127650920324,
              shareId: "AAABbMomFOeE"
            }

            // Delete dashboard share
            smartsheet.sights.deleteShare(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Sights.delete_share(
              6327127650920324,       # sight_id
              'AAACOqOmFOeE')         # share_id
    put:
      summary: Update Dashboard Share
      description: Updates the access level of a user or group for the specified dashboard.
      operationId: update-sight-share
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
      tags:
        - dashboards
        - sharing
      security:
        - APIToken: []
        - OAuth2:
            - SHARE_SIGHTS
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessLevel:
                  $ref: '#/components/schemas/AccessLevel'
      responses:
        '200':
          description: Returns Result object containing the modified Share object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        type: object
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Share updatedShare =
            smartsheet.SightResources.ShareResources.UpdateShare(
              6327127650920324,          // sightId
              new Share {                // Share share
                Id = "AAALRqomFOeE",     // string shareId
                AccessLevel = AccessLevel.VIEWER  // AccessLevel accessLevel
              }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/sights/{sightId}/shares/{shareId} \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{"accessLevel": "VIEWER"}'
        - lang: Java
          label: Java
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share();
                    shareSpecification.setAccessLevel(AccessLevel.VIEWER)
                    .setId("AAAFeF82FOeE");   // string shareId

            // Update dashboard share

            Share updatedShare =
            smartsheet.sightResources().shareResources().updateShare(
                    6327127650920324L,       // long sightId
                    shareSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set access level to Viewer
            var shareSpecification = {"accessLevel": "VIEWER"};

            // Set options
            var options = {
              sightId: 6327127650920324,
              shareId: "AAALRqomFOeE",
              body: shareSpecification
            };

            // Update dashboard share
            smartsheet.sights.updateShare(options)
              .then(function(updatedShare) {
                console.log(updatedShare);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_share = smartsheet_client.Sights.update_share(
              6327127650920324,       # sight_id
              'AAALRqomFOeE',         # share_id
              smartsheet.models.Share({
                'access_level': 'VIEWER'
              })
            )
  /templates:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List User-Created Templates
      description: Gets a list of user-created templates that the user has access to.
      operationId: templates-list
      tags:
        - templates
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of Templates
                        type: array
                        items:
                          $ref: '#/components/schemas/Template'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Template> templates =
            smartsheet.TemplateResources.ListUserCreatedTemplates(
              null                // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/templates \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Template> templates =
            smartsheet.templateResources().listUserCreatedTemplates(
                    null        // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.templates.listUserCreatedTemplates()
              .then(function(templateList) {
                console.log(templateList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # List all templates and paginate the response
            response = smartsheet_client.Templates.list_user_created_templates(
              page_size=10,
              page=1)
            pages = response.total_pages
            templates = response.data
  /templates/public:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: List Public Templates
      description: Gets a list of public templates that the user has access to.
      operationId: templates-listPublic
      tags:
        - templates
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/includeAll'
        - name: level
          in: query
          required: false
          description: >-
            Level of public template types. 0 refers to only Sheet types, 1
            refers to all types.
          schema:
            type: number
            enum:
              - 0
              - 1
            default: 0
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of Templates
                        type: array
                        items:
                          $ref: '#/components/schemas/Template'
  /token:
    post:
      summary: Gets or Refreshes an Access Token
      description: Gets or refreshes an access token, as part of the OAuth process.
      operationId: tokens-getOrRefresh
      tags:
        - tokens
      parameters:
        - name: Content-Type
          in: header
          description: >
            Required for POST and PUT requests. Defines the structure for the
            response.
          schema:
            type: string
            enum:
              - application/x-www-form-urlencoded
        - in: query
          name: client_id
          schema:
            type: string
          description: The client Id you obtained when you registered your app.
          required: true
        - in: query
          name: client_secret
          schema:
            type: string
          description: >-
            (Optional) Must use either this value or hash. Plain text method for
            sending this value. For example, client_secret={app_secret}.
            Encryption occurs at the HTTPS level.
        - in: query
          name: code
          schema:
            type: string
          description: >-
            Authorization code acquired after user selects "Allow" in the Web
            login UI.
        - in: query
          name: grant_type
          schema:
            type: string
            enum:
              - authorization_code
              - refresh_token
          required: true
          description: Must be set to "authorization_code".
        - in: query
          name: hash
          schema:
            type: string
          description: >-
            (Optional) Must use either this value or client_secret. SHA-256 hash
            of your app secret concatenated with a pipe and the authorization
            code. For example, hash={SHA_256(app_secret|code)}.
        - in: query
          name: refresh_token
          schema:
            type: string
          description: refresh_token value that came with the access token.
        - in: query
          name: redirect_url
          schema:
            type: string
          description: >-
            Deprecated. If supplied, must match the redirect URI you registered
            for your app.
      responses:
        '200':
          description: An access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
        default:
          description: Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Sample 1: Get access token
            // Option 1: Use a hash
            Token token = oauth.ObtainNewToken(
              authResult      // AuthorizationResult authResult
            );

            // Option 2: Use plain text
            // In progress

            // Sample 2: Refresh access token
            Token tokenRefreshed = oauth.RefreshToken(token);
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: Get access token

            // Option 1: Use a hash

            curl https://api.smartsheet.com/2.0/token \

            -d
            'grant_type=authorization_code&code={your_code}&client_id={your_client_id}&hash={SHA_256(app_secret|code)}'
            \

            -X POST


            // Option 2: Use plain text

            curl https://api.smartsheet.com/2.0/token \

            -d
            'grant_type=authorization_code&code={your_code}&client_id={your_client_id}&client_secret={app_secret}'
            \

            -X POST


            // Sample 2: Refresh access token

            // Option 1: Use a hash

            curl https://api.smartsheet.com/2.0/token \

            -d
            'grant_type=refresh_token&refresh_token={your_refresh_token}&client_id={your_client_id}&hash={SHA_256(app_secret|refresh_token)}'
            \

            -X POST


            // Option 2: Use plain text

            curl https://api.smartsheet.com/2.0/token \

            -d
            'grant_type=refresh_token&refresh_token={your_refresh_token}&client_id={your_client_id}&client_secret={app_secret}'
            \

            -X POST
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Get access token
            // Option 1: Use a hash
            // Create hash
            var hash =
              crypto.createHash('sha256')
                .update('9samp7le3for71you' + '|' + 'sample6p9qisx6a')
                    // ('Your App Secret' + '|' + 'Received Authorization Code')
                .digest('hex');

            // Set options
            var options = {
              queryParameters: {
                client_id: '1samp48lel5for68you',   // Your App Client ID
                code: 'sample6p9qisx6a',            // Received Authorization Code
                hash: hash
              },
              contentType: 'application/x-www-form-urlencoded'
            };

            // Get access token
            smartsheet.tokens.getAccessToken(options)
              .then(function(token) {
              console.log(token);
            })
            .catch(function(error) {
                console.log(error);
              });

            // Option 2: Use plain text
            // In progress

            // Sample 2: Refresh access token
            // Create hash
            var hash =
              crypto.createHash('sha256')
                .update('9samp7le3for71you' + '|' + 'sample6p9qisx6a')
                    // ('Your App Secret' + '|' + 'Your App Refresh Token')
                .digest('hex');

            // Set options
            var options = {
              queryParameters: {
                client_id: '1samp48lel5for68you',   // Your App Client ID
                refresh_token: 'e9x352a9mp4151le2505',
                hash: hash
              },
              contentType: 'application/x-www-form-urlencoded'
            };

            // Refresh access token
            smartsheet.tokens.refreshAccessToken(options)
              .then(function(updatedToken) {
                  console.log(updatedToken);
              })
              .catch(function(error) {
                  console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            import requests


            url =
            "https://api.smartsheet.com/2.0/token?client_id=string&client_secret=string&code=string&grant_type=authorization_code&hash=string&refresh_token=string&redirect_url=string"


            query = {
              "client_id": "string",
              "client_secret": "string",
              "code": "string",
              "grant_type": "authorization_code",
              "hash": "string",
              "refresh_token": "string",
              "redirect_url": "string"
            }


            headers = {"Content-Type": "application/x-www-form-urlencoded"}


            response = requests.post(url, headers=headers, params=query)


            data = response.json()

            print(data)
    delete:
      summary: Revoke Access Token
      description: >-
        Revokes the access token used to make this request. The access token is
        no longer valid, and subsequent API calls made using the token fail.
      operationId: tokens-delete
      tags:
        - tokens
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - name: deleteAllForApiClient
          in: query
          schema:
            type: boolean
            default: false
          description: >-
            The client Id and user Id is fetched based on the token that is used
            to make this API call. A value of true deletes all tokens associated
            to the given client Id and user Id.
          required: false
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
        default:
          description: Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.TokenResources.RevokeAccessToken();
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/token \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.tokenResources().revokeAccessToken();
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.tokens.revokeAccessToken({})
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Token.revoke_access_token()
  /users:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: list-users
      summary: List Users
      description: >
        Gets a list of users in the organization account. To filter by email,
        use the optional email query string parameter to specify a list of
        users' email addresses.


        **NOTE:** If the API request is submitted by a system administrator, the
        following User object attributes are included in the response (else,
        they are omitted from the response):
          * **admin**
          * **groupAdmin**
          * **licensedSheetCreator**
          * **resourceViewer**
          * **sheetCount (omitted if the status attribute is not ACTIVE)**
          * **status**

        **NOTE:** If the API request is submitted by a system administrator of
        an Enterprise account, and <a
        href="https://help.smartsheet.com/articles/1392225-customizing-a-welcome-message-upgrade-screen-enterprise-only"
        target="_blank" rel="noopener noreferrer">Custom Welcome Screen</a> is
        enabled, the following [User object](/api/smartsheet/openapi/users/user)
        attributes are included in the response (else, they are omitted from the
        response):
          * **customWelcomeScreenViewed** (omitted if the user has never viewed the <a href="https://help.smartsheet.com/articles/1392225-customizing-a-welcome-message-upgrade-screen-enterprise-only" target="_blank" rel="noopener noreferrer">Custom Welcome Screen</a>)
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - READ_USERS
      parameters:
        - $ref: '#/components/parameters/emailInclude'
        - $ref: '#/components/parameters/lastLoginInclude'
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/modifiedSince'
        - $ref: '#/components/parameters/numericDates'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: >
            IndexResult object containing an array of [User
            objects](/api/smartsheet/openapi/users/user)
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: List of User Objects
                        type: array
                        items:
                          $ref: '#/components/schemas/User'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Omit 'email' parameter and pagination parameters

            PaginatedResult<User> users = smartsheet.UserResources.ListUsers(
              null,               // IEnumerable<string> emails
              null                // PaginationParameters
            );


            // Sample 2: Specify 'email' parameter with value of
            "john.doe@smartsheet.com" and 'includeAll' parameter with value of
            'true'

            PaginatedResult<User> users = smartsheet.UserResources.ListUsers(
              new string[] { "john.doe@smartsheet.com" },
              new PaginationParameters(
                true, // includeAll
                null, // int pageSize
                null) // int page
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/users?email=john.doe@smartsheet.com&include=lastLogin'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Sample 1: Omit 'email' parameter and pagination parameters

            PagedResult<User> users = smartsheet.userResources().listUsers(
                    null,       // Set<String> email
                    null        // PaginationParameters
                    );

            // Sample 2: Specify pagination parameter 'includeAll'

            PaginationParameters parameters = new PaginationParameters()
                    .setIncludeAll(true);

            // Specify 'email' parameter with value of "john.doe@smartsheet.com"
            and 'includeAll' parameter with value of 'true'

            PagedResult<User> users = smartsheet.userResources().listUsers( new
            HashSet(Arrays.asList("john.doe@smartsheet.com")), parameters);
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.users.listAllUsers()
              .then(function(userList) {
                console.log(userList)
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1; List all
            response = smartsheet_client.Users.list_users(include_all=True)
            users = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Users.list_users(
              page_size=100,
              page=1)
            pages = response.total_pages
            users = response.data
    post:
      operationId: add-user
      summary: Add User
      description: >
        Adds a user to the organization account.


        * **_This operation is only available to system administrators_**


        * **If successful, and user auto provisioning (UAP) is on, and user
        matches the auto provisioning rules, user is added to the org. If UAP is
        off, or user does not match UAP rules, user is invited to the org and
        must explicitly accept the invitation to join.**


        * **In some specific scenarios, supplied attributes such as firstName
        and lastName may be ignored. For example, if you are inviting an
        existing Smartsheet user to join your organization account, and the
        invited user has not yet accepted your invitation, any supplied
        firstName and lastName are ignored.**
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      parameters:
        - $ref: '#/components/parameters/sendEmail'
      requestBody:
        description: The User to be created
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '200':
          description: >
            Result object containing the newly created [User
            object](/api/smartsheet/openapi/users/user).
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/User'
        default:
          description: >
            If an error occurs because the request specified the alternate email
            address (that is, not the primary email address) of an existing
            Smartsheet user (to invite the user into the org), the Error object
            returned contains a detail attribute set to an array of objects,
            each object in the array having the following attributes:

              * alternateEmailAddress: User's alternate email address that was specified in the request
              * primaryEmailAddress: User's primary email address that must instead be specified for the operation

            For example:

            ```

            {
              "errorCode": 5xxx,
              "message": "The specified email address (u1+1@smartsheet.com) is an alternate address for a user with the primary email address of u1@smartsheet.com. Please retry using their primary address."
              "detail": [
                  {
                    "alternateEmailAddress": "u1+1@smartsheet.com",
                    "primaryEmailAddress": "u1@smartsheet.com"
                  }
              ]
            }

            ```
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Set user properties
            User userSpecification = new User
            {
              Email = "john.doe@smartsheet.com",
              Admin = false,
              LicensedSheetCreator = true,
              FirstName = "John",
              LastName = "Doe"
            };

            // Add user
            User newUser = smartsheet.UserResources.AddUser(
              userSpecification,
              true,                   // Nullable<bool> sendEmail
              null                    // Nullable<bool> allowInviteAccountAdmin
            );
        - lang: cURL
          label: cURL
          source: >
            curl 'https://api.smartsheet.com/2.0/users?sendEmail=true' \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"firstName": "John", "lastName": "Doe", "email":
            "john.doe@smartsheet.com", "admin": false, "licensedSheetCreator":
            true}'
        - lang: Java
          label: Java
          source: >
            // Set user properties

            User userSpecification = new User();

            userSpecification.setAdmin(false)
                    .setEmail("john.doe@smartsheet.com")
                    .setFirstName("John")
                    .setLastName("Doe")
                    .setLicensedSheetCreator(true);

            // Add user

            User newUser =
            smartsheet.userResources().addUser(userSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify user properties
            var user = {
              "firstName": "John",
              "lastName": "Doe",
              "email": "john.doe@smartsheet.com",
              "admin": false,
              "licensedSheetCreator": true
            };

            // Set options
            var options = {
              body: user
            };

            // Add user
            smartsheet.users.addUser(options)
              .then(function(newUser) {
                console.log(newUser)
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            new_user = smartsheet_client.Users.add_user(
              smartsheet.models.User({
                'first_name': 'John',
                'last_name': 'Doe',
                'email': 'john.doe@smartsheet.com',
                'admin': False,
                'licensed_sheet_creator': True
              })
            )
  /users/me:
    get:
      operationId: get-current-user
      summary: Get Current User
      description: >
        Gets the current user


        **NOTE:** For system administrators, the following UserProfile
        attributes are included in the response:
          * **customWelcomeScreenViewed** (only returned when an Enterprise user has viewed the <a href="https://help.smartsheet.com/articles/1392225-customizing-a-welcome-message-upgrade-screen-enterprise-only" target="_blank" rel="noopener noreferrer">Custom Welcome Screen</a>)
          * **lastLogin** (only returned if the user has logged in)
          * **sheetCount** (only returned if the status attribute is ACTIVE; however, to increase performance, this returns a static '0')
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2: []
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/userProfileInclude'
      responses:
        '200':
          description: |
            IndexResultUnknownPages object containing a UserProfile object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/UserProfile'
                  - type: object
                    properties:
                      data:
                        description: List of Groups
                        type: array
                        items:
                          $ref: '#/components/schemas/Group'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            UserProfile userProfile = smartsheet.UserResources.GetCurrentUser();
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/me \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            UserProfile userProfile =
            smartsheet.userResources().getCurrentUser();
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.users.getCurrentUser()
              .then(function(userProfile) {
                console.log(userProfile);
              })
              .catch(function(error) {
                  console.log(error);
                });
        - lang: Python
          label: Python
          source: >
            # Sample 1: Get current user

            user_profile = smartsheet_client.Users.get_current_user()


            # Sample 2: Include groups

            user_profile =
            smartsheet_client.Users.get_current_user(include=Groups)
  /users/sheets:
    get:
      operationId: list-org-sheets
      summary: List Org Sheets
      description: >
        Gets a summarized list of all sheets owned by the members of the
        organization account.


        * **_This operation is only available to system administrators_**


        * **_You may use the query string parameter numericDates with a value of
        true to enable strict parsing of dates in numeric format. See [Dates and
        Times](/api/smartsheet/guides/basics/dates-and-times) for more
        information._**
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      parameters:
        - $ref: '#/components/parameters/Authorization'
        - $ref: '#/components/parameters/modifiedSince'
      responses:
        '200':
          description: >
            IndexResultUnknownPages object containing an array of Sheet objects,
            limited to the following attributes:


            * id

            * name

            * owner: empty string

            * ownerId: (static "0")
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResultUnknownPages'
                  - type: object
                    properties:
                      data:
                        description: List of Sheets
                        type: array
                        items:
                          $ref: '#/components/schemas/SheetList'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            PaginatedResult<Sheet> sheets =
            smartsheet.UserResources.SheetResources.ListOrgSheets(
              null,               // PaginationParameters
              null                // Nullable<DateTime> modifiedSince
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/sheets \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            PagedResult<Sheet> sheets =
            smartsheet.userResources().listOrgSheets();
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.sheets.listOrganizationSheets()
              .then(function(sheetsList) {
                console.log(sheetsList)
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Sheets.list_org_sheets()
            sheets = response.data
  /users/{userId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/userId'
    get:
      operationId: get-user
      summary: Get User
      description: >
        Gets the user specified in the URL.


        * NOTE: For system administrators, the following UserProfile attributes
        are included in the response):
          * **admin**
          * **customWelcomeScreenViewed** (only returned when an Enterprise user has viewed the <a href="https://help.smartsheet.com/articles/1392225-customizing-a-welcome-message-upgrade-screen-enterprise-only" target="_blank" rel="noopener noreferrer">Custom Welcome Screen</a>)
          * **groupAdmin**
          * **lastLogin** (only returned if the user has logged in)
          * **licensedSheetCreator**
          * **resourceViewer**
          * **sheetCount** (only returned if the status attribute is ACTIVE)
          * **status**
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - READ_USERS
      responses:
        '200':
          description: |
            Returns UserProfile object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserProfile'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            UserProfile userProfile = smartsheet.UserResources.GetUser(
              48569348493401200           // long userId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/{userId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            UserProfile userProfile = smartsheet.userResources().getUser(
                    48569348493401200L           // long userId
                    );
        - lang: Node.js
          label: Node.js
          source: "// Set options\nvar options = {\n  id: 48569348493401200\t// Id of user\n};\n\n// Get user\nsmartsheet.users.getUser(options)\n  .then(function(userProfile) {\n    console.log(userProfile)\n  })\n  .catch(function(error) {\n    console.log(error);\n  });\n"
        - lang: Python
          label: Python
          source: |
            user_profile = smartsheet_client.Users.get_user(
              48569348493401200)          # user_id
    delete:
      operationId: remove-user
      summary: Remove User
      description: >
        Removes a user from an organization account. User is transitioned to a
        free collaborator with read-only access to owned reports, sheets,
        Sights, workspaces, and any shared templates (unless those are
        optionally transferred to another user).


        * **_This operation is only available to system administrators_**


        * If the **transferTo** parameter is specified and the removed user owns
        groups, the user specified via the **transferTo** parameter must have
        group admin rights.


        * The **transferTo** and **transferSheets** parameters cannot be
        specified for a user who has not yet accepted an invitation to join the
        organization account (that is, if user **status=PENDING**).
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserDelete'
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Transfer ownership of groups and sheets to another user and
            remove the user from sharing

            smartsheet.UserResources.RemoveUser(
              94094820842,                // long userId
              transferToUserId,           // Nullable<long> transferTo
              true,                       // Nullable<bool> transferSheets
              true                        // Nullable<bool> removeFromSharing
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/users/{userId}?transferTo=USER_Id&removeFromSharing=true'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: >
            // Transfer ownership of groups and sheets to another user and
            remove the user from sharing

            DeleteUserParameters parameters = new DeleteUserParameters(
                    62123820842L,       // long transferToUserId
                    true,               // Boolean transferSheets
                    true                // Boolean removeFromSharing
                    );

            smartsheet.userResources().deleteUser(
                    94094820842L,        // long userId
                    parameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              id: 94094820842 // Id of User
            };

            // Remove user
            smartsheet.users.removeUser(options)
              .then(function(results) {
                console.log(results)
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Users.remove_user(
              94094820842,                # user_id
              transfer_to=62123820842,    # ownership of groups and sheets transfer to user_id
              remove_from_sharing=True)
    put:
      operationId: update-user
      summary: Update User
      description: Updates the user specified in the URL.
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      requestBody:
        description: |
          User object containing at least one of the following attributes:
            * admin (required)
            * licensedSheetCreator (required)
            * firstName (optional)
            * groupAdmin (optional)
            * lastName (optional)
            * resourceViewer (optional)
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdate'
      responses:
        '200':
          description: >
            Result object containing the [User
            object](/api/smartsheet/openapi/users/user) for the updated user
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      data:
                        description: Updated User Properties
                        type: array
                        items:
                          $ref: '#/components/schemas/UserProfileImageResponse'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Specify updated user properties
            User userSpecification = new User
            {
              Id = 82349925918590,    // userId
              Admin = true,
              LicensedSheetCreator = true
            };

            // Update user
            User updatedUser = smartsheet.UserResources.UpdateUser(
              userSpecification
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/{userId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{"admin": true, "licensedSheetCreator": true}'
        - lang: Java
          label: Java
          source: >
            // Specify updated user properties

            User userSpecification = new User();

            userSpecification.setLicensedSheetCreator(true)
                    .setAdmin(true)
                    .setId(82349925918590L);        // long userId

            // Update user

            User updatedUser =
            smartsheet.userResources().updateUser(userSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify updated user properties
            var user = {
              "admin": true,
              "licensedSheetCreator": true
            };

            // Set options
            var options = {
              id: 82349925918590, // Id of User
              body: user
              };

            // Update user
            smartsheet.users.updateUser(options)
              .then(function(updatedUser) {
                console.log(updatedUser)
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            updated_user = smartsheet_client.Users.update_user(
              82349925918590,     # user_id
              smartsheet.models.User({
                'licensed_sheet_creator': True,
                'admin': True
              })
            )
  /users/{userId}/alternateemails:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/userId'
    get:
      operationId: list-alternate-emails
      summary: List Alternate Emails
      description: Gets a list of the alternate emails for the specified user.
      tags:
        - alternateEmailAddress
      security:
        - APIToken: []
        - OAuth2:
            - READ_USERS
      responses:
        '200':
          description: >
            IndexResult object containing an array of [AlternateEmail
            objects](/api/smartsheet/openapi/alternateemailaddress/alternateemail)
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of attachments
                        type: array
                        items:
                          $ref: '#/components/schemas/AlternateEmail'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit 'email' parameter and pagination parameters

            PaginatedResult<AlternateEmail> results =
            smartsheet.UserResources.ListAlternateEmails(
              123456789012345,        // long userId
              null                    // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/{userId}/alternateemails \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit 'email' parameter and pagination parameters

            PagedResult<AlternateEmail> results =
            smartsheet.userResources().listAlternateEmails(
                    123456789012345L,        // long userId
                    null                    // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              userId: 123456789012345
            };

            // List alternate email addresses
            smartsheet.users.listAlternateEmails(options)
              .then(function(emailList) {
                console.log(emailList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Users.list_alternate_emails(
              123456789012345)        # user_id
            emails = response.data
    post:
      operationId: add-alternate-email
      summary: Add Alternate Emails
      description: |
        Adds one or more alternate email addresses for the specified user.

        **_This operation is only available to system administrators._**
      tags:
        - alternateEmailAddress
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/AddAlternateEmail'
                - type: array
                  items:
                    $ref: '#/components/schemas/AddAlternateEmail'
      responses:
        '200':
          description: >
            Result object containing an array of the newly created
            [AlternateEmail
            objects](/api/smartsheet/openapi/alternateemailaddress/alternateemail).
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      data:
                        description: Updated User Properties
                        type: array
                        items:
                          $ref: '#/components/schemas/AlternateEmail'
        default:
          description: >
            If a single email address is specified in the request and an error
            occurs, the response contains an Error object.


            If multiple email addresses are specified in the request and an
            error occurs, the Error object returned contains a detail attribute
            set to an array of objects, each object in the array having the
            following attributes:
              * email: Problematic email address specified in the request
              * errorCode: Smartsheet error code
              * message: Message that describes the problem with the specified email address

            For example:

            ```

            {
              "errorCode": 1160,
              "message": "Invalid bulk request. See detail for more information."
              "detail": [
                  {
                    "email": "altEmail1@smartsheet.com",
                    "errorCode": 1157,
                    "message": "This address is already associated with another Smartsheet account, so it cannot be added as an alternate address for this account."
                  }
              ]
            }

            ```
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            List<AlternateEmail> alternateEmails =
            smartsheet.UserResources.AddAlternateEmail(
              4495214342629252,                       // userId
              new AlternateEmail[] {                  // Array of AlternateEmail
                new AlternateEmail { Email = "John.Doe@smartsheet.com" },
                new AlternateEmail { Email = "John.Doe.Test@smartsheet.com" }
              }
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/{userId}/alternateemails \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '[{"email": "John.Doe@smartsheet.com"}]'
        - lang: Java
          label: Java
          source: |
            AlternateEmail alias1 = new AlternateEmail();
            alias1.setEmail("John.Doe@smartsheet.com");
            AlternateEmail alias2 = new AlternateEmail();
            alias2.setEmail("John.Doe.Test@smartsheet.com");

            smartsheet.userResources().addAlternateEmail(
                    4495214342629252L,    // long userId
                    Arrays.asList(alias1, alias2)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify email addresses to add
            var body = [
              {
                email: "John.Doe@smartsheet.com"
              }
            ];

            // Set options
            var options = {
              userId: 4495214342629252,
              body: body
            };

            // Add alternate email address
            smartsheet.users.addAlternateEmail(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Users.add_alternate_email(
              4495214342629252,          # user_id
              [
                smartsheet.models.AlternateEmail({
                    'email': 'John.Doe@smartsheet.com'
                })
              ]
            )
  /users/{userId}/alternateemails/{alternateEmailId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/userId'
      - $ref: '#/components/parameters/alternateEmailId'
    get:
      operationId: get-alternate-email
      summary: Get Alternate Email
      description: Gets the specified alternate email.
      tags:
        - alternateEmailAddress
      security:
        - APIToken: []
        - OAuth2:
            - READ_USERS
      responses:
        '200':
          description: >
            Returns [AlternateEmail
            object](/api/smartsheet/openapi/alternateemailaddress/alternateemail)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlternateEmail'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.UserResources.GetAlternateEmail(
              401090454808452,        // long userId
              123456789012345         // long altEmailId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/users/{userId}/alternateemails/{alternateEmailId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            smartsheet.userResources().getAlternateEmail(
                    401090454808452L,        // long userId
                    123456789012345L         // long altEmailId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              userId: 401090454808452,
              alternateEmailId: 123456789012345
            };

            // Get alternate email address
            smartsheet.users.getAlternateEmail(options)
              .then(function(email) {
                console.log(email);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            alt_email = smartsheet_client.Users.get_alternate_email(
              401090454808452,        # user_id
              123456789012345)        # alternate_email_id
    delete:
      operationId: delete-alternate-email
      summary: Delete Alternate Email
      description: Deletes the specified alternate email address for the specified user.
      tags:
        - alternateEmailAddress
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.UserResources.DeleteAlternateEmail(
              401090454808452,        // long userId
              123456789012345         // long altEmailId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/users/{userId}/alternateemails/{alternatEmailId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.userResources().deleteAlternateEmail(
                    401090454808452L,        // long userId
                    123456789012345L         // long altEmailId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              userId: 401090454808452,
              alternateEmailId: 123456789012345
            };

            // Delete alternate email address
            smartsheet.users.deleteAlternateEmail(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Users.delete_alternate_email(
              401090454808452,        # user_id
              123456789012345)        # alternate_email_id
  /users/{userId}/alternateemails/{alternateEmailId}/makeprimary:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/userId'
      - $ref: '#/components/parameters/alternateEmailId'
    post:
      operationId: promote-alternate-email
      summary: Make Alternate Email Primary
      description: >
        Makes the specified alternate email address to become the primary email
        address for the specified user.


        * **_This operation is only available to system administrators_**


        The alternate email address can only be made primary if both conditions
        are met:
          * The primary email address domain is validated
          * The alternate email address is confirmed or the alternate email address domain is validated
      tags:
        - alternateEmailAddress
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      data:
                        description: list of alternate email results
                        type: array
                        items:
                          $ref: '#/components/schemas/AlternateEmail'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            AlternateEmail primaryEmail =
            smartsheet.UserResources.PromoteAlternateEmail(
              401090454808452,        // userId
              123456789012345         // altEmailId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/users/{userId}/alternateemails/{alternatEmailId}/makeprimary
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST
        - lang: Java
          label: Java
          source: >
            AlternateEmail primaryEmail =
            smartsheet.userResources().promoteAlternateEmail(
                    401090454808452L,    // long userId
                    123456789012345L    // long altEmailId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              userId: 401090454808452,
              alternateEmailId: 123456789012345
            };

            // Make alternate email primary
            smartsheet.users.makeAlternateEmailPrimary(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            response = smartsheet_client.Users.promote_alternate_email(
              401090454808452,        # user_id
              123456789012345)        # alt_id
  /users/{userId}/deactivate:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    post:
      operationId: deactivate-user
      summary: Deactivate User
      description: >
        Deactivates the user associated with the current Smartsheet plan,
        blocking the user from using Smartsheet in any way. Deactivating a user
        does not affect their existing permissions on owned or shared items.


        Optionally, with Enterprise Plan Manager (EPM) enabled, you can specify
        the ID of a user within your managed plan hierarchy.


        > **Who can use this endpoint?**

        > 

        > - **Plans:** Business, Enterprise

        > - **Permissions:** System Administrator

        >

        > This operation is unavailable for Smartsheet Gov.


        Attempting to deactivate a user that matches any of the following
        criteria results in an error:

        - The user's primary email address belongs to an ISP domain (e.g.,
        `gmail.com`, `yahoo.com`, `outlook.com`). For example, see the common
        ISP domains listed below.

        - The user's primary email address is unassociated with the current
        Smartsheet plan domain(s).

        - The user is managed by an external source, such as an identity
        provider (IdP) or directory integration (DI) provider. External source
        examples include Okta and Azure AD. Deactivating such a user can only be
        done via the external source.


        Users with primary email addresses on the following ISP domains cannot
        be deactivated:

        - `aol.com`

        - `charter.net`

        - `comcast.net`

        - `duck.com`

        - `email.com`

        - `gmail.com`

        - `hotmail.com`

        - `icloud.com`

        - `live.com`

        - `mail.com`

        - `mail.ru`

        - `outlook.com`

        - `rocketmail.com`

        - `usa.com`

        - `verizon.net`

        - `web.de`

        - `yahoo.com`
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      parameters:
        - in: path
          name: userId
          schema:
            $ref: '#/components/schemas/userId'
          required: true
          description: >-
            User ID. With Enterprise Plan Manager (EPM) enabled, you can specify
            the ID of a user within your managed plan hierarchy.
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        '400':
          description: |
            The user is managed from a directory service.

            Example response:

            ```json
            {
              "errorCode": 5697,
              "message": "This person is managed from your directory service. Please deactivate them through your directory service instead.",
              "refId": "abcd1234"
            }
            ```
        '403':
          description: >
            This can be caused by the following situations:


            - User account has a common ISP domain email.
              ```json
              {
                "errorCode": 1359,
                "message": "User account with a common ISP domain email cannot be deactivated. You can only remove them from the Org.",
                "refId": "abcd1234"
              }
              ```
            - User is external: in your org, not in your EPM child org, or has
            no internal planMembership in your plan.
              ```json
              {
                "errorCode": 1004,
                "message": "You are not authorized to perform this action.",
                "refId": "abcd1234"
              }
              ```
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/{userId}/deactivate \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST
  /users/{userId}/profileimage:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/userId'
    post:
      operationId: update-user-profile-image
      summary: Update User Profile Image
      description: >
        Uploads an image to the user profile.


        Uploading a profile image differs from Adding an Image to a Cell in the
        following ways:
          * A **Content-Length** header is not required
          * Allowable file types are limited to: gif, jpg, and png
          * Maximum file size is determined by the following rules:
              * If you have not defined a custom size and the image is larger than 1050 x 1050 pixels, Smartsheet scales the image down to 1050 x 1050
              * If you have defined a custom size, Smartsheet uses that as the file size max
          * If the image is not square, Smartsheet uses a solid color to pad the image
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - WRITE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
          multipart/form-data:
            schema:
              type: object
              properties:
                name:
                  type: string
                filename:
                  type: string
                  format: binary
          application/json:
            schema:
              $ref: '#/components/schemas/URLAttachmentRequest'
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      data:
                        description: Updated User Properties
                        type: array
                        items:
                          $ref: '#/components/schemas/UserProfileImageResponse'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            User myUser = smartsheet.UserResources.AddProfileImage(
              3173821341106052,                // userId
              "../path/to/mrgoodlookin.jpg",   // string file
              "image/jpeg"                     // string fileType (MIME)
            );
        - lang: cURL
          label: cURL
          source: |
            curl 'https://api.smartsheet.com/2.0/users/{userId}/profileimage' \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: image/jpeg" \
            -H 'Content-Disposition: attachment; filename=janeroe.jpg' \
            -X POST \
            --data-binary @janeroe.jpg
        - lang: Java
          label: Java
          source: |
            try {
                    User myUser = smartsheet.userResources().addProfileImage(
                    3173821341106052L,               // long userId
                    "../path/to/mrgoodlookin.jpg",   // String file
                    "image/jpeg"                     // String fileType (MIME)
                    );
                    } catch (FileNotFoundException e) {
                    e.printStackTrace();
                    }
        - lang: Node.js
          label: Node.js
          source: |
            var options = {
              userId: 3173821341106052,
              path: '../path/to/mrgoodlookin.jpg',
              fileName: 'mrgoodlookin.jpg'
            };

            smartsheet.users.addProfileImage(options)
              .then(function(result) {
                console.log(result);
              }).catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            action = smartsheet_client.Users.add_profile_image(
              3173821341106052,               # user_id (int)
              '../path/to/mrgoodlookin.jpg',  # file (string)
              'image/jpeg'                    # file_type (string)
            )
  /users/{userId}/reactivate:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    post:
      operationId: reactivate-user
      summary: Reactivate User
      description: >
        Reactivates the user associated with the current Smartsheet plan,
        restoring the user's access to Smartsheet, owned items, and shared
        items.


        Optionally, with Enterprise Plan Manager (EPM) enabled, you can specify
        the ID of a user within your managed plan hierarchy.


        **Important:** You can reactivate the user only if that user has been
        deactivated for less than thirty (30) days.


        > **Who can use this endpoint?**

        > 

        > - **Plans:** Business, Enterprise

        > - **Permissions:** System Administrator

        >

        > This operation is unavailable for Smartsheet Gov.


        Attempting to reactivate a user that matches any of the following
        criteria results in an error:

        - The user's primary email address belongs to an ISP domain (e.g.,
        `gmail.com`, `yahoo.com`, `outlook.com`). For example, see the common
        ISP domains listed below.

        - The user's primary email address is unassociated with the current
        Smartsheet plan domain(s).

        - The user is not in the plan's organization.


        Users with primary email addresses on the following ISP domains cannot
        be reactivated:

        - `aol.com`

        - `charter.net`

        - `comcast.net`

        - `duck.com`

        - `email.com`

        - `gmail.com`

        - `hotmail.com`

        - `icloud.com`

        - `live.com`

        - `mail.com`

        - `mail.ru`

        - `outlook.com`

        - `rocketmail.com`

        - `usa.com`

        - `verizon.net`

        - `web.de`

        - `yahoo.com`
      tags:
        - users
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_USERS
      parameters:
        - in: path
          name: userId
          schema:
            $ref: '#/components/schemas/userId'
          required: true
          description: >-
            User ID. With Enterprise Plan Manager (EPM) enabled, you can specify
            the ID of a user within your managed plan hierarchy.
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        '400':
          description: |
            The user is managed from a directory service.

            Example response:

            ```json
            {
              "errorCode": 5717,
              "message": "This person is managed from your directory service. Please reactivate them through your directory service instead.",
              "refId": "abcd1234"
            }
            ```
        '403':
          description: >
            The user is external: in your org, not in your EPM child org, or has
            no internal planMembership in your plan.


            Example response:


            ```json

            {
              "errorCode": 1004,
              "message": "You are not authorized to perform this action.",
              "refId": "abcd1234"
            }

            ```
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/users/{userId}/reactivate \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST
  /webhooks:
    parameters:
      - $ref: '#/components/parameters/Authorization'
    get:
      operationId: list-webhooks
      summary: List Webhooks
      description: >-
        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 cient name > webhook
        name > creation date.
      tags:
        - webhooks
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WEBHOOKS
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: The List of Webhooks
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: list of Webhooks
                        type: array
                        items:
                          $ref: '#/components/schemas/Webhook'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Webhook> webhooks =
            smartsheet.WebhookResources.ListWebhooks(
                null            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/webhooks \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Webhook> webhooks =
            smartsheet.webhookResources().listWebhooks(
                null            // PaginationParameters
            );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
            };

            // List webhooks
            smartsheet.webhooks.listWebhooks(options)
                .then(function(webhookList) {
                    console.log(webhookList);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            IndexResult = smartsheet_client.Webhooks.list_webhooks(
              page_size=100,
              page=1,
              include_all=False
            )
    post:
      summary: Create Webhook
      description: >
        Creates a new Webhook.


        A webhook is not enabled by default when it is created.

        Once you've created a webhook, you can enable it by using the Update
        Webhook operation to set **enabled** to **true**.


        When a row is deleted on a sheet, even if you are using a **subscope**
        to monitor columns only

        and the cell in that column for that row is empty, you will receive a
        "row.deleted" event.
      operationId: createWebhook
      tags:
        - webhooks
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WEBHOOKS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Create_Webhook_Request'
                - type: object
                  required:
                    - callbackUrl
                    - events
                    - name
                    - scope
                    - scopeObjectId
                    - version
      responses:
        '200':
          description: >-
            Result object, containing a Webhook object for the newly created
            webhook
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Webhook'
        default:
          description: Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Webhook specification
            Webhook webhook = new Webhook
            {
                Name = "Webhook #4",
                CallbackUrl = "https://www.myApp.com/webhooks",
                Scope = "sheet",
                ScopeObjectId = 3285357287499652,
                Events = new string[] { "*.*" },
                Version = 1
            };

            // Create Webhook
            Webhook newWebhook = smartsheet.WebhookResources.CreateWebhook(
                webhook
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/webhooks \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{   "name": "Webhook #4", "callbackUrl":
            "https://www.myApp.com/webhooks", "scope": "sheet", "scopeObjectId":
            3285357287499652, "events": ["*.*"], "version": 1, "subscope":
            {"columnIds": [7318427511613316, 7318427511613123]}}'
        - lang: Java
          label: Java
          source: |
            // Webhook specification
            Webhook webhook = new Webhook();
            webhook.setCallbackUrl("https://www.myApp.com/webhooks")
                .setScope("sheet")
                .setScopeObjectId(3285357287499652L)
                .setEvents(Arrays.asList("*.*"))
                .setVersion(1)
                .setName("Webhook #4");

            // Create Webhook
            Webhook newWebhook = smartsheet.webhookResources().createWebhook(
                webhook
            );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify webhook details
            var body = {
              name: "Webhook #4",
              callbackUrl: "https://www.myApp.com/webhooks",
              scope: "sheet",
              scopeObjectId: 3285357287499652,
              events: ["*.*"],
              version: 1,
            };

            // Set options
            var options = {
              body: body,
            };

            // Create webhook
            smartsheet.webhooks.createWebhook(options)
                .then(function(newWebhook) {
                  console.log(newWebhook);
                })
                .catch(function(error) {
                  console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            Webhook = smartsheet_client.Webhooks.create_webhook(
              smartsheet.models.Webhook({
                'name': 'Webhook #4',
                'callbackUrl': 'https://www.myApp.com/webhooks',
                'scope': 'sheet',
                'scopeObjectId': 3285357287499652,
                'events': ['*.*'],
                'version': 1}))
  /webhooks/{webhookId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/webhookId'
    get:
      summary: Get Webhook
      description: Gets a Webhook based on the specified ID
      operationId: getWebhook
      tags:
        - webhooks
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WEBHOOKS
      responses:
        '200':
          description: Webhook object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Webhook webhook = smartsheet.WebhookResources.GetWebhook(
                401090454808452     // long webhookId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/webhooks/{webhookId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            Webhook webhook = smartsheet.webhookResources().getWebhook(
                401090454808452L     // long webhookId
            );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
                webhookId: 401090454808452
            };

            // Get webhook
            smartsheet.webhooks.getWebhook(options)
                .then(function(webhook) {
                    console.log(webhook);
                })
                .catch(function(error) {
                    console.log(error);
                });;
        - lang: Python
          label: Python
          source: |
            Webhook = smartsheet_client.Webhooks.get_webhook(
              401090454808452)       # webhook_id
    put:
      summary: Update Webhook
      description: >
        Updates the specified Webhook. The following properties can be updated:

        * callbackUrl (optional)

        * enabled (optional)

        * events (optional)

        * name (optional)

        * version (optional)


        When setting a webhook's **enabled** to **true** using this operation,

        the behavior and result depend on the webhook's **status** and may
        result in a webhook verification being triggered,

        or in some cases, an error being returned. See Webhook Status for more
        details.
      operationId: updateWebhook
      tags:
        - webhooks
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WEBHOOKS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Update_Webhook_Request'
      responses:
        '200':
          description: Result object containing the Webhook object for the updated webhook
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Webhook'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Webhook specification
            Webhook webhook = new Webhook
            {
                Id = 8444254503626628,
                CallbackUrl = "https://www.myApp.com/webhooks",
                Version = 1,
                Enabled = true
            }

            // Update Webhook
            Webhook updatedWebhook = smartsheet.WebhookResources.UpdateWebhook(
                webhook
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/webhooks/{webhookId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{ "enabled": true }
        - lang: Java
          label: Java
          source: >
            // Webhook specification

            Webhook webhook = new Webhook();
                webhook.setCallbackUrl("https://www.myApp.com/webhooks")
                .setVersion(1)
                .setEnabled(true)
                .setId(8444254503626628L);

            // Update Webhook

            Webhook updatedWebhook =
            smartsheet.webhookResources().updateWebhook(
                webhook
            );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify changed values
            var body = {
                enabled: true
            };

            // Set options
            var options = {
                webhookId: 8444254503626628,
                body: body
            };

            // Update webhook
            smartsheet.webhooks.updateWebhook(options)
                .then(function(updatedWebhook) {
                    console.log(updatedWebhook);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            Webhook = smartsheet_client.Webhooks.update_webhook(
              8444254503626628,       # webhook_id
              smartsheet_client.models.Webhook({
                'enabled': True}))
    delete:
      summary: Delete Webhook
      description: >
        Deletes the specified Webhook.


        Using this operation permanently deletes the specified webhook.

        To temporarily disable a webhook, use the Update Webhook operation to
        set **enabled** to **false**.
      operationId: deleteWebhook
      tags:
        - webhooks
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WEBHOOKS
      responses:
        '200':
          description: Result object
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.WebhookResources.DeleteWebhook(
                401090454808452     // long webhookId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/webhooks/{webhookId} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.webhookResources().deleteWebhook(
                401090454808452L     // long webhookId
            );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
                webhookId: 401090454808452
            };

            // Delete webhook
            smartsheet.webhooks.deleteWebhook(options)
                .then(function(results) {
                    console.log(results);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Webhooks.delete_webhook(
              401090454808452)       # webhook_id
  /webhooks/{webhookId}/resetSharedSecret:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/webhookId'
    post:
      summary: Reset Shared Secret
      description: >-
        Resets the shared secret for the specified webhook. For more information
        about how a shared secret is used, see Authenticating Callbacks.

        This operation can be used to rotate an API client's webhooks' shared
        secrets at periodic intervals to provide additional security.
      operationId: resetSharedSecret
      tags:
        - webhooks
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WEBHOOKS
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SharedSecret'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            WebhookSharedSecret newSecret =
            smartsheet.WebhookResources.ResetSharedSecret(
                401090454808452     // long webhookId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/webhooks/{webhookId}/resetsharedsecret
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST
        - lang: Java
          label: Java
          source: >
            WebhookSharedSecret newSecret =
            smartsheet.webhookResources().ResetSharedSecret(
                401090454808452L     // long webhookId
            );
        - lang: Node.js
          label: Node.js
          source: |
            // Get options
            var options = {
                webhookId: 401090454808452
            };

            // Reset shared secret
            smartsheet.webhooks.resetSharedSecret(options)
                .then(function(newSecret) {
                    console.log(newSecret);
                })
                .catch(function(error) {
                    console.log(error);
                });
        - lang: Python
          label: Python
          source: |
            Webhook = smartsheet_client.Webhooks.reset_shared_secret(
              401090454808452)       # webhook_id
  /workspaces:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/accessApiLevel'
    get:
      summary: List Workspaces
      description: >
        Gets a list of workspaces that the user has access to. The list contains
        an abbreviated Workspace object for each workspace.
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: list-workspaces
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: IndexResult object containing an array of Workspace objects.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/WorkspaceListing'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Workspace> workspaces =
            smartsheet.WorkspaceResources.ListWorkspaces(
              null                // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/workspaces \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Workspace> workspaces =
            smartsheet.workspaceResources().listWorkspaces(
                    null        // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            smartsheet.workspaces.listWorkspaces()
              .then(function(workspaceList) {
                console.log(workspaceList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: List all

            response =
            smartsheet_client.Workspaces.list_workspaces(include_all=True)

            workspaces = response.data


            # Sample 2: Paginate the list

            response = smartsheet_client.Workspaces.list_workspaces(
              page_size=20,
              page=1)
            pages = response.total_pages

            workspaces = response.data
    post:
      summary: Create Workspace
      description: |
        Creates a new workspace.
      operationId: create-workspace
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/workspaceCreateInclude'
        - $ref: '#/components/parameters/skipRemap'
      requestBody:
        description: Workspace to create.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/WorkspaceListing'
      responses:
        '200':
          description: >-
            Result object containing a Workspace object for newly created
            workspace.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      data:
                        oneOf:
                          - $ref: '#/components/schemas/WorkspaceListing'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify workspace name

            Workspace workspaceSpecification = new Workspace { Name = "New
            workspace" };


            // Create workspace

            Workspace newWorkspace =
            smartsheet.WorkspaceResources.CreateWorkspace(workspaceSpecification);
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/workspaces \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X POST \
            -d '{"name": "New workspace"}'
        - lang: Java
          label: Java
          source: >
            // Specify workspace name

            Workspace workspaceSpecification = new Workspace();

            workspaceSpecification.setName("New workspace");


            // Create workspace

            Workspace newWorkspace =
            smartsheet.workspaceResources().createWorkspace(workspaceSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify workspace name
            var workspace = {"name": "New workspace"};

            // Set options
            var options = {
              body: workspace
            };

            // Create workspace
            smartsheet.workspaces.createWorkspace(options)
              .then(function(newWorkspace) {
                console.log(newWorkspace);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Create workspace
            workspace = smartsheet_client.Workspaces.create_workspace(
              smartsheet.models.Workspace({
                'name': 'New workspace'
              })
            )

            # Sample 2: Include attachments
            workspace = smartsheet_client.Workspaces.create_workspace(
              include=attachments,
              smartsheet.models.Workspace({
                  'name': 'New workspace'
              })
            )
  /workspaces/{workspaceId}:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/workspaceId'
    get:
      summary: Get Workspace
      description: Gets a Workspace object.
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: get-workspace
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/folderWorkspaceInclude'
        - in: query
          name: loadAll
          description: >-
            If set to `true`, the workspace's entire hierarchy of items and
            folders is returned.
          schema:
            type: boolean
            default: false
          required: false
      responses:
        '200':
          description: A single Workspace object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Workspace'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            // Sample 1: Omit 'include' parameter
            Workspace workspace = smartsheet.WorkspaceResources.GetWorkspace(
              6621332407379844,           // long workspaceId
              null                        // IEnumerable<WorkspaceInclusion> include
            );

            // Sample 2: Specify 'include' parameter with value of "source"
            Workspace workspace = smartsheet.WorkspaceResources.GetWorkspace(
              6621332407379844,           // long workspaceId
              new WorkspaceInclusion[] { WorkspaceInclusion.SOURCE }
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/workspaces/{workspaceid} \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: |
            // Sample 1: Omit 'include' parameter
            Workspace workspace = smartsheet.workspaceResources().getWorkspace(
                    6621332407379844L,      // long workspaceId
                    null                    // EnumSet<SourceInclusion> includes
                    );

            // Sample 2: Specify 'include' parameter with value of "source"
            Workspace workspace = smartsheet.workspaceResources().getWorkspace(
                    6621332407379844L,      // long workspaceId
                    EnumSet.of(SourceInclusion.SOURCE)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              workspaceId: 7116448184199044
            };

            // Get workspace
            smartsheet.workspaces.getWorkspace(options)
              .then(function(workspace) {
                console.log(workspace);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Get workspace
            workspace = smartsheet_client.Workspaces.get_workspace(
              6621332407379844)       # workspace_id

            # Sample 2: Include owner info and sheet version
            workspace = smartsheet_client.Workspaces.get_workspace(
              6621332407379844,       # workspace_id
              include='ownerInfo,sheetVersion'
              )
            workspace = response.data
    delete:
      summary: Delete Workspace
      description: Deletes a workspace.
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      operationId: delete-workspace
      responses:
        '200':
          description: |
            Returns Result object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResult'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.WorkspaceResources.DeleteWorkspace(
              6621332407379844                // long workspaceId
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/workspaces/7960873114331012 \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.workspaceResources().deleteWorkspace(
                    6621332407379844L        // long workspaceId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              workspaceId: 6621332407379844
            };

            // Delete workspace
            smartsheet.workspaces.deleteWorkspace(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Workspaces.delete_workspace(
              6621332407379844)       # workspace_id
    put:
      summary: Update Workspace
      description: Updates a workspace.
      operationId: update-workspace
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: Workspace name.
                  type: string
      responses:
        '200':
          description: Result object containing the modified Workspace object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/Workspace'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify updated workspace name

            Workspace workspaceSpecification = new Workspace

            {
              Id = 7960873114331012,      // workspaceId
              Name = "Updated Workspace"
            };


            // Update workspace

            Workspace updatedWorkspace =
            smartsheet.WorkspaceResources.UpdateWorkspace(
              workspaceSpecification
            );
        - lang: cURL
          label: cURL
          source: |
            curl https://api.smartsheet.com/2.0/workspaces/7960873114331012 \
            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \
            -H "Content-Type: application/json" \
            -X PUT \
            -d '{"name": "Updated workspace"}'
        - lang: Java
          label: Java
          source: >
            // Specify updated workspace properties

            Workspace workspaceSpecification = new Workspace();

            workspaceSpecification.setName("Updated workspace")
                    .setId(7960873114331012L);    // long workspaceId

            // Update workspace

            Workspace updatedWorkspace =
            smartsheet.workspaceResources().updateWorkspace(workspaceSpecification);
        - lang: Node.js
          label: Node.js
          source: |
            // Specify updated workspace properties
            var workspace = {"name": "Updated workspace"};

            // Set options
            var options = {
              workspaceId: 7960873114331012,
              body: workspace
              };

            // Update workspace
            smartsheet.workspaces.updateWorkspace(options)
              .then(function(updatedWorkspace) {
                console.log(updatedWorkspace);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Update workspace
            updated_workspace = smartsheet_client.Workspaces.update_workspace(
              7960873114331012,       # workspace_id
              smartsheet.models.Workspace({
                'name': 'Updated workspace'
              })
            )

            # Sample 2: Allow Commenter access
            updated_workspace = smartsheet_client.Workspaces.update_workspace(
              7960873114331012,       # workspace_id
              accessApiLevel=1,
              smartsheet.models.Workspace({
                'name': 'Updated workspace'
              })
            )
  /workspaces/{workspaceId}/copy:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/workspaceId'
    post:
      summary: Copy Workspace
      description: Copies a workspace.
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      operationId: copy-workspace
      parameters:
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/workspaceCreateInclude'
        - $ref: '#/components/parameters/skipRemap'
      requestBody:
        description: New workspace name.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ContainerDestination'
      responses:
        '200':
          description: >-
            Result object containing a Workspace object for the new workspace
            destination.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContainerDestination'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify name for the new workspace

            ContainerDestination destination = new ContainerDestination {
              NewName = "newWorkspaceName"
            };


            // Sample 1: Omit 'include' and 'skipRemap' parameters

            Workspace workspace = smartsheet.WorkspaceResources.CopyWorkspace(
              7116448184199044,          // long workspaceId
              destination,
              null,                      // IEnumerable<WorkspaceCopyInclusion> include
              null                       // IEnumerable<WorkspaceRemapExclusion> skipRemap
            );


            // Sample 2: Specify 'include' parameter with value of "DATA", and
            'skipRemap' parameter with value of "CELL_LINKS"

            Workspace workspace = smartsheet.WorkspaceResources.CopyWorkspace(
              7116448184199044,           // long workspaceId
              destination,
              new WorkspaceCopyInclusion[] { WorkspaceCopyInclusion.DATA },
              new WorkspaceRemapExclusion[] { WorkspaceRemapExclusion.CELL_LINKS }
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/workspaces/{workspaceId}/copy?include=data'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -d '{"newName": "newWorkspaceName"}' \

            -X POST
        - lang: Java
          label: Java
          source: >
            // Specify name for the new workspace

            ContainerDestination destination = new ContainerDestination();

            destination.setNewName("newWorkspaceName");


            // Sample 1: Omit 'include' and 'skipRemap' parameters

            Workspace workspace = smartsheet.workspaceResources().copyWorkspace(
                    7116448184199044L,          // long workspaceId
                    destination,
                    null,                       // EnumSet<WorkspaceCopyInclusion> includes
                    null                        // EnumSet<WorkspaceRemapExclusion> skipRemap
                    );

            // Sample 2: Specify 'include' parameter with value of "DATA", and
            'skipRemap' parameter with value of "CELLLINKS"

            Workspace workspace = smartsheet.workspaceResources().copyWorkspace(
                    7116448184199044L,          // long workspaceId
                    destination,
                    EnumSet.of(WorkspaceCopyInclusion.DATA),
                    EnumSet.of(WorkspaceRemapExclusion.CELLLINKS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify new workspace name
            var body = {
              newName: "newWorkspaceName"
            };

            // Set elements to copy
            var params = {
              include: "data,discussions",
              skipRemap: "cellLinks"
            };

            // Set options
            var options = {
              workspaceId: 7116448184199044,
              body: body,
              queryParameters: params
            };

            // Copy workspace
            smartsheet.workspaces.copyWorkspace(options)
              .then(function(copiedWorkspace) {
                console.log(copiedWorkspace);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Copy workspace
            new_workspace = smartsheet_client.Workspaces.copy_workspace(
              7116448184199044,           # workspace_id
              smartsheet.models.ContainerDestination({
                'new_name': 'newWorkspaceName'
              })
            )

            # Sample 2: Include attachments and discussions
            new_workspace = smartsheet_client.Workspaces.copy_workspace(
              7116448184199044,           # workspace_id
              include='attachments,discussions',
              smartsheet.models.ContainerDestination({
                'new_name': 'newWorkspaceName'
              })
            )
  /workspaces/{workspaceId}/folders:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/workspaceId'
    get:
      summary: List Workspace Folders
      description: Lists a workspace's folders.
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      operationId: get-workspace-folders
      parameters:
        - $ref: '#/components/parameters/includeAll'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
      responses:
        '200':
          description: An array of Folder references.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      data:
                        description: >-
                          Array of all the workspace folders, referenced by
                          their ID, name, and URL.
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: number
                              description: The folder's unique identifier.
                              example: 987654321
                            name:
                              type: string
                              description: The folder's name.
                              example: Upcoming Campaigns
                            permalink:
                              type: string
                              description: URL to the folder in Smartsheet.
                              example: >-
                                https://app.smartsheet.com/folders/c8gJxw87cXpRCvCC5PPw6jFhFRrf5r8PxCrxvW21
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Folder> folders =
            smartsheet.WorkspaceResources.FolderResources.ListFolders(
              1656220827314052,               // long workspaceId
              null                            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/workspaces/{workspaceId}/folders
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Folder> folders =
            smartsheet.workspaceResources().folderResources().listFolders(
                    1656220827314052L,                   // long workspaceId
                    null                                 // PaginationParameters
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              workspaceId: 1656220827314052
            };

            // List folders in workspace
            smartsheet.workspaces.listWorkspaceFolders(options)
              .then(function(folderList) {
                console.log(folderList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Workspaces.list_folders(
              1656220827314052,       # workspace_id
              include_all=True)
            folders = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Workspaces.list_folders(
              1656220827314052,       # workspace_id
              page_size=5,
              page=1)
            pages = response.total_pages
            folders = response.data
    post:
      summary: Create a Folder
      description: |
        Creates a new folder.
      operationId: create-workspace-folder
      tags:
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/Content-Type'
      requestBody:
        description: Folder to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FolderNameOnly'
      responses:
        '200':
          description: Result object containing a Folder object for newly created folder.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/FolderSimpleResponse'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set folder name

            Folder folderSpecification = new Folder { Name = "New folder" };


            // Create folder in a workspace

            Folder newFolder =
            smartsheet.WorkspaceResources.FolderResources.CreateFolder(
              1656220827314052,               // long workspaceId
              folderSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/workspaces/{workspaceid}/folders
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"name": "New folder"}'
        - lang: Java
          label: Java
          source: >
            // Set folder name

            Folder folderSpecification = new Folder();

            folderSpecification.setName("New Folder");


            // Create folder in a workspace

            Folder newFolder =
            smartsheet.workspaceResources().folderResources().createFolder(
                    1656220827314052L,       // long workspaceId
                    folderSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set folder name
            var folder = {
              "name": "New folder"
            };

            // Set options
            var options = {
              workspaceId: 1656220827314052,
              body: folder
              };

            // Create folder in a workspace
            smartsheet.workspaces.createFolder(options)
              .then(function(newFolder) {
                console.log(newFolder);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            new_workspace =
            smartsheet_client.Workspaces.create_folder_in_workspace(
              1656220827314052,       # workspace_id
              'New folder')
  /workspaces/{workspaceId}/shares:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/accessApiLevel'
      - $ref: '#/components/parameters/workspaceId'
    post:
      summary: Share Workspace
      description: >
        Shares a Workspace with the specified users and groups. This operation
        supports both single-object and bulk semantics.


        **_This operation is only available to system administrators._**
      operationId: share-workspace
      tags:
        - sharing
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      parameters:
        - $ref: '#/components/parameters/sendEmail'
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Share'
                - type: array
                  items:
                    $ref: '#/components/schemas/Share'
      responses:
        '200':
          description: >
            This operation supports both single-object and bulk semantics. For
            more information, see Optional Bulk Operations.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/Share'
                          - type: array
                            items:
                              $ref: '#/components/schemas/Share'
        '400':
          description: >
            If called with a single Share object, and that user or group share
            already exists, error code 1025 is returned.

            If called with an array of Share objects, and one or more user or
            group shares in the array already exist,

            they are ignored and omitted from the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Specify share (to one user as Editor)

            Share[] shareSpecification = new Share[] { new Share
              {
                Email = "jane.doe@smartsheet.com",
                AccessLevel = AccessLevel.EDITOR
              }
            };


            // Share workspace

            IList<Share> addressList =
            smartsheet.WorkspaceResources.ShareResources.ShareTo(
              7960873114331012,               // long workspaceId
              shareSpecification,
              true                            // Nullable<bool> sendEmail
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            'https://api.smartsheet.com/2.0/workspaces/{workspaceId}/shares?sendEmail=true'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '[{"email": "jane.doe@smartsheet.com", "accessLevel": "EDITOR"}]'
        - lang: Java
          label: Java
          source: >
            // Specify share (to one user as Editor)

            Share shareSpecification = new Share()
                    .setEmail("jane.doe@smartsheet.com")
                    .setAccessLevel(AccessLevel.EDITOR);

            // Share workspace

            List<Share> addressList =
            smartsheet.workspaceResources().shareResources().shareTo(
                    7960873114331012L,                    // long workspaceId
                    (Arrays.asList(shareSpecification)),
                    true                                  // Boolean sendEmail
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Specify share (to one user as Editor)
            var shares = [
              {
                "email": "john.doe@smartsheet.com",
                "accessLevel": "EDITOR"
              }
            ];

            // Set options
            var options = {
              workspaceId: 7960873114331012,
              body: shares
            };

            // Share workspace
            smartsheet.workspaces.share(options)
              .then(function(addressList) {
                console.log(addressList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Share workspace
            response = smartsheet_client.Workspaces.share_workspace(
              1656220827314052,       # workspace_id
              smartsheet.models.Share({
                'access_level': 'EDITOR',
                'email': 'jane.doe@smartsheet.com'
              })
            )

            # Sample 2: Allow Commenter access
            response = smartsheet_client.Workspaces.share_workspace(
              1656220827314052,       # workspace_id
              accessApiLevel=1,       # enables functionality
              smartsheet.models.Share({
                'access_level': 'COMMENTER',     # declares access level
                'email': 'jane.doe@smartsheet.com'
              })
            )
    get:
      summary: List Workspace Shares
      description: >-
        Gets a list of all users and groups to whom the specified Workspace is
        shared, and their access level.
      operationId: list-workspace-shares
      tags:
        - sharing
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      parameters:
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/pageSize'
        - $ref: '#/components/parameters/includeAll'
      responses:
        '200':
          description: IndexResult object containing an array of Share objects.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/IndexResult'
                  - type: object
                    properties:
                      result:
                        type: array
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Omit pagination parameters

            PaginatedResult<Share> shares =
            smartsheet.WorkspaceResources.ShareResources.ListShares(
              1656220827314052,               // long workspaceId
              null                            // PaginationParameters
            );
        - lang: cURL
          label: cURL
          source: >
            curl https://api.smartsheet.com/2.0/workspaces/{workspaceId}/shares
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            // Omit pagination parameters

            PagedResult<Share> shares =
            smartsheet.workspaceResources().shareResources().listShares(
                    1656220827314052L,       // long workspaceId
                    null,                    // PaginationParameters
                    true                     // Boolean includeWorkspaceShares
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              workspaceId: 1656220827314052
            };

            // List workspace shares
            smartsheet.workspaces.listShares(options)
              .then(function(shareList) {
                console.log(shareList);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: List all
            response = smartsheet_client.Workspaces.list_shares(
              1656220827314052,       # workspace_id
              include_all=True)
            shares = response.data

            # Sample 2: Paginate the list
            response = smartsheet_client.Workspaces.list_shares(
              1656220827314052,       # workspace_id
              page_size=10,
              page=1)
            pages = response.total_pages
            shares = response.data
  /workspaces/{workspaceId}/shares/{shareId}:
    parameters:
      - $ref: '#/components/parameters/workspaceId'
      - $ref: '#/components/parameters/shareId'
      - $ref: '#/components/parameters/Authorization'
    get:
      summary: Get Workspace Share
      description: Gets the share specified in the URL.
      operationId: share-workspace-get
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
      tags:
        - sharing
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - READ_SHEETS
      responses:
        '200':
          description: Returns Share object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            Share share = smartsheet.WorkspaceResources.ShareResources.GetShare(
              1656220827314052,           // long workspaceId
              "AQAISF82FOeE"              // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/workspaces/{workspaceId}/shares/{shareId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789"
        - lang: Java
          label: Java
          source: >
            Share share =
            smartsheet.workspaceResources().shareResources().getShare(
                    1656220827314052L,       // long workspaceId
                    "AQAISF82FOeE"           // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              workspaceId: 1656220827314052,
              shareId: "AQAISF82FOeE"
            };

            // Get workspace share
            smartsheet.workspaces.getShare(options)
              .then(function(share) {
                console.log(share);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Get workspace share
            share = smartsheet_client.Sheets.get_share(
              1656220827314052,           # workspace_id
              'AAAEQesWFOeE')             # share_id

            # Sample 2: Enable Commenter access
            share = smartsheet_client.Sheets.get_share(
              1656220827314052,           # workspace_id
              accessApiLevel=1,
              'AAAEQesWFOeE')             # share_id
    delete:
      summary: Delete Workspace Share
      description: |
        Deletes the share specified in the URL.

        **_This operation is only available to system administrators._**
      operationId: delete-workspace-share
      tags:
        - sharing
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      responses:
        '200':
          description: Returns Result object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Result'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: |
            smartsheet.WorkspaceResources.ShareResources.DeleteShare(
              1656220827314052,               // long workspaceId
              "AAAEQesWFOeE"                  // string shareId
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/workspaces/{workspaceId}/shares/{shareId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -X DELETE
        - lang: Java
          label: Java
          source: |
            smartsheet.workspaceResources().shareResources().deleteShare(
                    1656220827314052L,       // long workspaceId
                    "AAAEQesWFOeE"           // string shareId
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set options
            var options = {
              workspaceId: 1656220827314052,
              shareId: "AAAEQesWFOeE"
            };

            // Delete workspace share
            smartsheet.workspaces.deleteShare(options)
              .then(function(results) {
                console.log(results);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            smartsheet_client.Workspaces.delete_share(
              1656220827314052,           # workspace_id
              'AAAEQesWFOeE')             # share_id
    put:
      summary: Update Workspace Share
      description: |
        Updates the access level of a user or group for the specified workspace.

        **_This operation is only available to system administrators._**
      operationId: update-workspace-share
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
      tags:
        - sharing
        - workspaces
      security:
        - APIToken: []
        - OAuth2:
            - ADMIN_WORKSPACES
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                accessLevel:
                  $ref: '#/components/schemas/AccessLevel'
      responses:
        '200':
          description: Result object containing the modified Share object.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Result'
                  - type: object
                    properties:
                      result:
                        type: object
                        items:
                          $ref: '#/components/schemas/Share'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share

            {
              Id = "AAAFeF82FOeE",
              AccessLevel = AccessLevel.VIEWER
            };


            // Update workspace share

            Share updatedShare =
            smartsheet.WorkspaceResources.ShareResources.UpdateShare(
              1656220827314052,             // long workspaceId
              shareSpecification
            );
        - lang: cURL
          label: cURL
          source: >
            curl
            https://api.smartsheet.com/2.0/workspaces/{workspaceId}/shares/{shareId}
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X PUT \

            -d '{"accessLevel": "VIEWER"}'
        - lang: Java
          label: Java
          source: >
            // Set the access level to Viewer

            Share shareSpecification = new Share();
                    shareSpecification.setAccessLevel(AccessLevel.VIEWER)
                    .setId("AAAFeF82FOeE");   // string shareId

            // Update workspace share

            Share updatedShare =
            smartsheet.workspaceResources().shareResources().updateShare(
                    1656220827314052L,   // long workspaceId
                    shareSpecification
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Set access level to Viewer
            var share = {"accessLevel": "VIEWER"};

            // Set options
            var options = {
              workspaceId: 1656220827314052,
              shareId: "AAAFeF82FOeE",
              body: share
              };

            // Update workspace share
            smartsheet.workspaces.updateShare(options)
              .then(function(updatedShare) {
                console.log(updatedShare);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            # Sample 1: Update workspace share
            updated_share = smartsheet_client.Workspaces.update_share(
              1656220827314052,       # workspace_id
              'AAAFeF82FOeE',         # share_id
              smartsheet.models.Share({
                'access_level': 'VIEWER'
              })
            )

            # Sample 2: Enable Commenter access
            updated_share = smartsheet_client.Workspaces.update_share(
              1656220827314052,       # workspace_id
              'AAAFeF82FOeE',         # share_id
              accessApiLevel=1,       # enables functionality
              smartsheet.models.Share({
                'access_level': 'COMMENTER'   # declares access level
              })
            )
  /workspaces/{workspaceId}/sheets:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/workspaceId'
    post:
      summary: Create Sheet in Workspace
      description: >
        Creates a sheet from scratch or from the specified template at the
        top-level of the specified workspace.

        For subfolders, use Create Sheet in Folder.
      operationId: create-sheet-in-workspace
      tags:
        - sheets
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      parameters:
        - $ref: '#/components/parameters/accessApiLevel'
        - $ref: '#/components/parameters/Content-Type'
        - $ref: '#/components/parameters/include'
      requestBody:
        description: Sheet to create.
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/SheetToCreate'
                - $ref: '#/components/schemas/SheetToCreateFromTemplate'
      responses:
        '200':
          description: >-
            Result object containing a Sheet object for newly created sheet,
            corresponding to what was specified in the request.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        oneOf:
                          - $ref: '#/components/schemas/SheetCreated'
                          - $ref: '#/components/schemas/SheetCreatedFromTemplate'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            // Sample 1: Create sheet in workspace

            // Specify properties of the first column

            Column columnA = new Column

            {
              Title = "Favorite",
              Primary = false,
              Type = ColumnType.CHECKBOX,
              Symbol = Symbol.STAR
            };


            // Specify properties of the second column

            Column columnB = new Column

            {
              Title = "Primary Column",
              Primary = true,
              Type = ColumnType.TEXT_NUMBER
            };


            // Create sheet in workspace (specifying the 2 columns to include in
            the sheet)

            Sheet newSheet =
            smartsheet.WorkspaceResources.SheetResources.CreateSheet(
              3734419270854532,                   // long workspaceId
              new Sheet
                {
                  Name = "new sheet title",
                  Columns = new Column[] { columnA, columnB }
                }
            );


            // Sample 2: Create sheet in workspace from template

            // Specify name for the sheet and Id of the template

            Sheet sheetSpecification = new Sheet

            {
              Name = "new sheet title",
              FromId = 7679398137620356     // template Id
            };


            // Option 1: Omit 'include' parameter

            Sheet newSheet =
            smartsheet.WorkspaceResources.SheetResources.CreateSheetFromTemplate(
              1656220827314052,               // long workspaceId
              sheetSpecification,
              null                            // IEnumerable<TemplateInclusion> include
            );


            // Option 2: Include ATTACHMENTS, DATA, and DISCUSSIONS

            Sheet newSheet =
            smartsheet.WorkspaceResources.SheetResources.CreateSheetFromTemplate(
              1656220827314052,               // long workspaceId
              sheetSpecification,
              new TemplateInclusion[] {
                TemplateInclusion.ATTACHMENTS,
                TemplateInclusion.DATA,
                TemplateInclusion.DISCUSSIONS }
            );
        - lang: cURL
          label: cURL
          source: >
            // Sample 1: Create sheet in workspace

            curl https://api.smartsheet.com/2.0/workspaces/{workspaceId}/sheets
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d
            '{"name":"newsheet","columns":[{"title":"Favorite","type":"CHECKBOX","symbol":"STAR"},
            {"title":"Primary Column", "primary":true,"type":"TEXT_NUMBER"}]}'


            // Sample 2: Create sheet in workspace from template

            curl
            'https://api.smartsheet.com/2.0/workspaces/{workspaceId}/sheets?include=data,attachments,discussions'
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Type: application/json" \

            -X POST \

            -d '{"name":"newsheet", "fromId": 7679398137620356}'
        - lang: Java
          label: Java
          source: >
            // Sample 1: Create sheet in workspace

            // Specify properties of the first column

            Column columnA = new Column()
                    .setTitle("Favorite")
                    .setType(ColumnType.CHECKBOX)
                    .setSymbol(Symbol.STAR);

            // Specify properties of the second column

            Column columnB = new Column()
                    .setTitle("Primary Column")
                    .setType(ColumnType.TEXT_NUMBER)
                    .setPrimary(true);

            // Create sheet in workspace (specifying the 2 columns to include in
            the sheet)

            Sheet newSheet = new Sheet();
                    newSheet.setName("new sheet title");
                    newSheet.setColumns(Arrays.asList(columnA, columnB));

            smartsheet.sheetResources().createSheetInWorkspace(
                    3734419270854532L,    // long workspaceId
                    newSheet
                    );

            // Sample 2: Create sheet in workspace from template

            // Specify name for the sheet and Id of the template

            Sheet sheet = new Sheet();

            sheet.setFromId(7679398137620356L);     // long templateId

            sheet.setName("newsheet");


            // Option 1: Omit 'include' parameter

            Sheet newSheet =
            smartsheet.sheetResources().createSheetInWorkspaceFromTemplate(
                    1656220827314052L,                  // long workspaceId
                    sheetSpecification,
                    null                                // EnumSet<SheetTemplateInclusion> includes
                    );

            // Option 2: Include ATTACHMENTS, DATA, and DISCUSSIONS

            Sheet newSheet =
            smartsheet.sheetResources().createSheetInWorkspaceFromTemplate(
                    1656220827314052L,                 // long workspaceId
                    sheetSpecification,
                    EnumSet.of(
                        SheetTemplateInclusion.ATTACHMENTS,
                        SheetTemplateInclusion.DATA,
                        SheetTemplateInclusion.DISCUSSIONS)
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Create sheet in workspace
            // Specify sheet properties
            var sheet = {
              "name": "newsheet",
              "columns": [
                {
                  "title": "Favorite",
                  "type": "CHECKBOX",
                  "symbol": "STAR"
                },
                {
                  "title": "Primary Column",
                  "primary": true,
                  "type": "TEXT_NUMBER"
                }
              ]
            };

            // Set options
            var options = {
              workspaceId: 1656220827314052,
              body: sheet
            };

            // Create sheet in workspace
            smartsheet.sheets.createSheetInWorkspace(options)
              .then(function(newSheet) {
                console.log(newSheet);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 2: Create sheet in workspace from template
            // Specify the directive
            var sheet = {
              "fromId": 7679398137620356,
              "name": "newsheet"
              };

            // Set options
            var options = {
              workspaceId: 1656220827314052,
              body: sheet
              };

            // Create sheet from template in the specified workspace
            smartsheet.sheets.createSheetFromExisting(options)
              .then(function(newSheet) {
                console.log(newSheet);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: >
            # Sample 1: Create sheet in workspace

            sheet_spec = smartsheet.models.Sheet({
              'name': 'newsheet',
              'columns': [{
                  'title': 'Favorite',
                  'type': 'CHECKBOX',
                  'symbol': 'STAR'
                }, {
                  'title': 'Primary Column',
                  'primary': True,
                  'type': 'TEXT_NUMBER'
                }
              ]
            })


            response = smartsheet_client.Workspaces.create_sheet_in_workspace(
              3734419270854532,           # workspace_id
              sheet_spec)
            new_sheet = response.result


            # Sample 2: Create sheet in workspace from template

            response =
            smartsheet_client.Workspaces.create_sheet_in_workspace_from_template(
              1656220827314052,                   # workspace_id
              smartsheet.models.Sheet({
                'name': 'newsheet',
                'from_id': 7679398137620356     # template_id
              })
            )
  /workspaces/{workspaceId}/sheets/import:
    parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/workspaceId'
    post:
      summary: Import Sheet into Workspace
      description: >
        Imports CSV or XLSX data into a new sheet in the specified workspace.


        Note the following:

        * Both sheetName and the file name must use ASCII characters.

        * The source data must be basic text. To include rich formula data,
        import and create a sheet first, and then use Update Rows. To work with
        images, see Cell Images.

        * XLS is not supported. You must use XLSX.

        * Hierarchical relationships between rows in an external file won't
        import.
      operationId: import-sheet-into-workspace
      tags:
        - imports
      security:
        - APIToken: []
        - OAuth2:
            - CREATE_SHEETS
      parameters:
        - $ref: '#/components/parameters/Content-Disposition'
        - $ref: '#/components/parameters/parameters-Content-Type'
        - $ref: '#/components/parameters/sheetName'
        - $ref: '#/components/parameters/headerRowIndex'
        - $ref: '#/components/parameters/primaryColumnIndex'
      requestBody:
        description: Binary content for the CSV / XLSX file.
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Result object containing a Sheet object for imported sheet.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/GenericResult'
                  - type: object
                    properties:
                      result:
                        $ref: '#/components/schemas/SheetImported'
        default:
          description: Generic Error Payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codeSamples:
        - lang: C#
          label: C#
          source: >
            Sheet sheet =
            smartsheet.WorkspaceResources.SheetResources.ImportXlsSheet(
              4124946017347460,       // workspaceId
              "D:/ProgressReport.xlsx",
              null,                   // sheetName defaults to file name unless specified
              0,                      // headerRowIndex
              null                    // primaryColumnIndex
            );
        - lang: cURL
          label: cURL
          source: >
            curl 
            https://api.smartsheet.com/2.0/workspaces/{workspaceId}/sheets/import?sheetName=MarketingProgressReport&headerRowIndex=0&primaryColumnIndex=0
            \

            -H "Authorization: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789" \

            -H "Content-Disposition: attachment" \

            -H "Content-Type: text/csv" \

            -X POST \

            --data-binary @ProgressReport.csv
        - lang: Java
          label: Java
          source: |
            Sheet sheet = smartsheet.sheetResources().importXlsxInWorkspace(
                    4124946017347460L,           // long workspaceId
                    "D:/ProgressReport.xlsx",
                    "MarketingProgressReport",
                    0,                          // headerRowIndex
                    0                           // primaryColumnIndex
                    );
        - lang: Node.js
          label: Node.js
          source: |
            // Sample 1: Import CSV into workspace
            // Set options
            var options = {
              workspaceId: 4124946017347460,
              queryParameters: {
                sheetName: 'MarketingProgressReport'
              },
              path: "D:/ProgressReport.csv"
            };

            // Import CSV as sheet into workspace
            smartsheet.sheets.importCsvSheetIntoWorkspace(options)
              .then(function(attachment) {
                console.log(attachment);
              })
              .catch(function(error) {
                console.log(error);
              });

            // Sample 2: Import XLSX into workspace
            // Set options
            var options = {
              workspaceId: 4124946017347460,
              queryParameters: {
                sheetName: 'MarketingProgressReport'
              },
              path: "D:/ProgressReport.xlsx"
            };

            // Import XLSX as sheet into workspace
            smartsheet.sheets.importXlsxSheetIntoWorkspace(options)
              .then(function(attachment) {
                console.log(attachment);
              })
              .catch(function(error) {
                console.log(error);
              });
        - lang: Python
          label: Python
          source: |
            imported_sheet = smartsheet_client.Workspaces.import_xlsx_sheet(
              4124946017347460,           # workspace_id
              'D:/ProgressReport.xlsx',
              'MarketingProgressReport',  # sheet_name
              header_row_index=0
            )
components:
  schemas:
    AccessLevel:
      type: string
      enum:
        - ADMIN
        - COMMENTER
        - EDITOR
        - EDITOR_SHARE
        - OWNER
        - VIEWER
    Account:
      type: object
      x-tags:
        - users
      properties:
        id:
          description: Account Id.
          type: number
          example: 122454719915908
        name:
          description: Account name.
          type: string
          example: Smartsheet Org
    AlternateEmail:
      type: object
      x-tags:
        - alternateEmailAddress
      properties:
        id:
          description: AlternateEmail Id.
          type: number
          example: 8150532427671428
        confirmed:
          description: Indicates whether the alternate email address has been confirmed.
          type: boolean
          example: true
        email:
          description: User's alternate email address.
          type: string
          example: johnathan.doe@smartsheet.com
    Attachment:
      description: Attachment Object
      type: object
      x-tags:
        - attachments
      properties:
        id:
          description: Attachment Id.
          type: number
        parentId:
          description: The Id of the parent.
          type: number
        attachmentType:
          description: >-
            Attachment type. Note--Dropbox, Egnyte, and Evernote are not
            supported for Smartsheet.gov accounts.
          type: string
          enum:
            - BOX_COM
            - DROPBOX
            - EGNYTE
            - EVERNOTE
            - FILE
            - GOOGLE_DRIVE
            - LINK
            - ONEDRIVE
            - TRELLO
        attachmentSubType:
          description: >-
            Attachment sub type. Note--Folder type is for EGNYTE values and the
            rest are GOOGLE_DRIVE values.
          type: string
          enum:
            - DOCUMENT
            - DRAWING
            - FOLDER
            - PDF
            - PRESENTATION
            - SPREADSHEET
        mimeType:
          description: Attachment MIME type.
          type: string
          example: PNG
        parentType:
          description: The type of object the attachment belongs to.
          type: string
          enum:
            - COMMENT
            - PROOF
            - ROW
            - SHEET
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        createdBy:
          description: >
            `User` object containing `name` and `email` of the user who created
            this attachment.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        name:
          description: Attachment name.
          type: string
        sizeInKb:
          description: The size of the file, if the attachmentType is FILE.
          type: number
        url:
          description: Attachment temporary URL (files only).
          type: string
        urlExpiresInMillis:
          description: Attachment temporary URL time to live (files only).
          type: number
    AutomationAction:
      type: object
      x-tags:
        - automationRules
      properties:
        includedColumnIds:
          description: Specifies which columns to include in message.
          type: array
          items:
            type: number
        type:
          type: string
          enum:
            - APPROVAL_REQUEST_ACTION
            - NOTIFICATION_ACTION
            - UPDATE_REQUEST_ACTION
        frequency:
          type: string
          enum:
            - DAILY
            - HOURLY
            - IMMEDIATELY
            - WEEKLY
        includeAllColumns:
          description: If true, all columns are included in email contents.
          type: boolean
          default: true
        includeAttachments:
          description: If true, all attachments are included in email contents.
          type: string
        includeDiscussions:
          description: If true, all discussions are included in email contents.
          type: boolean
        message:
          description: Email body.
          type: string
        subject:
          description: Email subject line.
          type: string
      oneOf:
        - properties:
            notifyAllSharedUsers:
              description: >-
                If true, notifications are sent to all users shared to the
                sheet.
              type: boolean
        - properties:
            recipients:
              type: array
              items:
                $ref: '#/components/schemas/Recipient'
        - properties:
            recipientColumnIds:
              description: Array of column Ids from which to collect email recipients.
              type: array
              items:
                type: number
    AutomationRule:
      type: object
      x-tags:
        - automationRules
      properties:
        id:
          description: AutomationRule Id.
          type: number
        action:
          description: >-
            An [AutomationAction
            object](/api/smartsheet/openapi/automationrules/automationaction)
            containing information for this rule, such as type, recipients, and
            frequency.
        createdAt:
          description: A timestamp of when the rule was originally added.
          allOf:
            - $ref: '#/components/schemas/Timestamp'
        createdBy:
          description: >
            `User` object containing `name` and `email` of the creator of this
            rule.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        disabledReason:
          description: >
            Machine-readable reason a rule is disabled:

            * `APPROVAL_COLUMN_MISSING` This rule's approval status column has
            been deleted.


            * `APPROVAL_COLUMN_WRONG_TYPE` The approval column must be a
            dropdown column.


            * `AUTOMATION_NOT_ENABLED_FOR_ORG` To create or edit automated
            actions,

            you need to upgrade your organization account to a Business or
            Enterprise plan.


            * `COLUMN_MISSING` A column referenced by this rule has been
            deleted.


            * `COLUMN_TYPE_INCOMPATIBLE` A column referenced by this rule has
            been changed to an incompatible column type.


            * `NO_POTENTIAL_RECIPIENTS` This rule has no recipients that will be
            able to receive

            notifications based on this sheet's permission settings or this
            account's approved domain sharing list.


            * `NO_VALID_SELECTED_COLUMNS` All selected columns for this rule
            have been deleted.
          type: string
          enum:
            - APPROVAL_COLUMN_MISSING
            - APPROVAL_COLUMN_WRONG_TYPE
            - AUTOMATION_NOT_ENABLED_FOR_ORG
            - COLUMN_MISSING
            - COLUMN_TYPE_INCOMPATIBLE
            - NO_POTENTIAL_RECIPIENTS
            - NO_VALID_SELECTED_COLUMNS
        disabledReasonText:
          description: Descriptive reason a rule is disabled.
          type: string
        enabled:
          description: If true, indicates that the rule is active.
          type: boolean
        modifiedAt:
          description: The datetime for when the change was made to the rule.
          allOf:
            - $ref: '#/components/schemas/Timestamp'
        modifiedBy:
          description: >
            `User` object containing the `name` and `email` of the user that
            made the change.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        name:
          description: Rule name as shown in the UI.
          type: string
        userCanModify:
          description: If true, indicates that the current user can modify the rule.
          type: boolean
    AutoNumberFormat:
      type: object
      description: >-
        Object that describes how the the System Column type of "AUTO_NUMBER" is
        auto-generated.
      properties:
        fill:
          description: >-
            Indicates zero-padding. Must be between 0 and 10 "0" (zero)
            characters.
          type: string
        prefix:
          description: |
            The prefix. Can include the date tokens:
              * {DD}
              * {MM}
              * {YY}
              * {YYYY}
          type: string
        startingNumber:
          description: The starting number for the auto-id.
          type: number
        suffix:
          description: |
            The suffix. Can include the date tokens:
              * {DD}
              * {MM}
              * {YY}
              * {YYYY}
          type: string
    BulkItemFailure:
      type: object
      properties:
        rowId:
          description: >-
            The Id of the row that failed. Applicable only to bulk row
            operations.
          type: number
          nullable: true
        error:
          $ref: '#/components/schemas/Error'
        index:
          description: The index of the failed item in the bulk request array.
          type: number
    Callback:
      type: object
      x-tags:
        - webhooks
      properties:
        scopeObjectId:
          type: number
          description: Id of the object that corresponds to scope.
          example: 3285357287499652
          readOnly: true
        webhookId:
          type: number
          description: Id of the corresponding webhook.
          example: 8444254503626628
        events:
          $ref: '#/components/schemas/CallbackEvents'
        newWebhookStatus:
          type: string
          description: >-
            New status of the corresponding webhook. Only returned for webhook
            status change callbacks (null for event callbacks).
          example: ENABLED
        nonce:
          type: string
          description: Random value that is distinct for each callback.
        scope:
          type: string
          description: Scope of the webhook. Currently, the only supported value is sheet.
          enum:
            - sheet
          example: sheet
        timestamp:
          type: string
          format: date-time
          description: Time that the callback was generated.
    CallbackEvent:
      type: object
      x-tags:
        - webhooks
      properties:
        id:
          type: number
          description: >-
            Id of the object that corresponds to objectType. Omitted if
            objectType is cell.
          example: 3285357287499652
        columnId:
          type: number
          description: >-
            Only present if objectType is cell. The Id of the column where the
            cell is located.
          nullable: true
        rowid:
          type: number
          description: >-
            Only present if objectType is cell. The Id of the row where the cell
            is located.
          nullable: true
        userid:
          type: number
          description: The user Id of the person who caused this event.
          example: 48569348493401210
        objectType:
          description: Type of object for which event occurred.
          type: string
          enum:
            - attachment
            - cell
            - column
            - comment
            - discussion
            - row
            - sheet
          example: sheet
        changeAgent:
          type: string
          description: >-
            A comma-delimited list of values that uniquely identify the agents
            responsible for making the changes that caused the callback to
            occur. Only present if the change agent included the
            Smartsheet-Change-Agent header in the API request that changed data
            in Smartsheet. For more information, see [Preventing Infinite
            Loops](/api/smartsheet/openapi/webhooks).
        eventType:
          type: string
          description: Type of Event that occurred.
          enum:
            - created
            - deleted
            - updated
          example: created
        timestamp:
          type: string
          format: date-time
          description: >-
            Time that this event occurred. A callback may contain events with
            different timestamps, as multiple separate events may be aggregated
            into a single callback request.
    Cell:
      type: object
      x-tags:
        - cells
      properties:
        columnId:
          type: number
          description: The Id of the column that the cell is located in.
        columnType:
          type: string
          description: >-
            Only returned if the include query string parameter contains
            **columnType**.
        conditionalFormat:
          type: string
          description: >-
            The format descriptor describing this cell's conditional format.
            Only returned if the include query string parameter contains
            **format** and this cell has a conditional format applied.
        displayValue:
          type: string
          description: >-
            Visual representation of cell contents, as presented to the user in
            the UI.
        format:
          type: string
          description: >-
            The format descriptor. Only returned if the include query string
            parameter contains **format** and this cell has a non-default format
            applied.
        formula:
          type: string
          description: >-
            The formula for a cell, if set, for instance **=COUNTM([Assigned
            To]3)**. Note that calculation errors or problems with a formula do
            not cause the API call to return an error code. Instead, the
            response contains the same value as in the UI, such as **cell.value
            = "#CIRCULAR REFERENCE"**.
        hyperlink:
          $ref: '#/components/schemas/Hyperlink'
        image:
          $ref: '#/components/schemas/Image'
        linkInFromCell:
          $ref: '#/components/schemas/CellLink'
        linksOutToCells:
          type: array
          items:
            $ref: '#/components/schemas/CellLink'
        objectValue:
          $ref: '#/components/schemas/ObjectValue'
        overrideValidation:
          type: boolean
          description: >-
            (Admin only) Indicates whether the cell value can contain a value
            outside of the validation limits (value = **true**). When using this
            parameter, you must also set **strict** to **false** to bypass value
            type checking. This property is honored for POST or PUT actions that
            update rows.
        strict:
          type: boolean
          description: >-
            Set to **false** to enable lenient parsing. Defaults to **true**.
            You can specify this attribute in a request, but it is never present
            in a response.
        value:
          anyOf:
            - type: string
            - type: number
            - type: boolean
          description: >-
            A string, number, or a Boolean value -- depending on the cell type
            and the data in the cell. Cell values larger than 4000 characters
            are silently truncated. An empty cell returns no value.
    CellDataItem:
      type: object
      properties:
        columnId:
          description: Column Id for each item.
          type: number
        rowId:
          description: Row Id for each item.
          type: number
        sheetId:
          description: Sheet Id for each item.
          type: number
        objectValue:
          description: >-
            The type of data returned depends on the cell type and the data in
            the cell.
          oneOf:
            - type: boolean
            - type: number
            - type: string
        cell:
          $ref: '#/components/schemas/Cell'
        dataSource:
          type: string
          enum:
            - CELL
            - SUMMARY_FIELD
        inheritCellValue:
          description: Specifies if valueFormat is inherited from the underlying cell value
          type: boolean
        label:
          description: >-
            Label for the data point. This is either the column name or a
            user-provided string.
          type: string
        labelFormat:
          description: Format description for label.
          type: string
          example: ',,1,1,,,,,,,,,,,,,'
        labelFont:
          $ref: '#/components/schemas/DashboardFont'
        order:
          description: The display order for the CellDataItem.
          type: number
        profileField:
          $ref: '#/components/schemas/SummaryField'
        valueFormat:
          description: Format description for value.
          type: string
          example: ',,1,1,,,,,,,,,,,,,'
        valueFont:
          $ref: '#/components/schemas/DashboardFont'
    CellHistory:
      type: object
      x-tags:
        - cells
      allOf:
        - $ref: '#/components/schemas/Cell'
      properties:
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedBy:
          description: >-
            User object containing the name and email of the user that made the
            change.
          type: object
          allOf:
            - $ref: '#/components/schemas/MiniUser'
    CellLink:
      type: object
      properties:
        columnId:
          type: number
          description: Column Id of the linked cell.
        rowId:
          type: number
          description: Row Id of the linked cell.
        sheetId:
          type: number
          description: Sheet Id of the sheet that the linked cell belongs to.
        sheetName:
          type: string
          description: Sheet name of the linked cell.
        status:
          type: string
          enum:
            - BLOCKED
            - BROKEN
            - CIRCULAR
            - DISABLED
            - INACCESSIBLE
            - INVALID
            - NOT_SHARED
            - OK
          description: >
            * `BLOCKED` One of several other values indicating unusual error
            conditions.

            * `BROKEN` The row or sheet linked to was deleted.

            * `CIRCULAR` One of several other values indicating unusual error
            conditions.

            * `DISABLED` One of several other values indicating unusual error
            conditions.

            * `INACCESSIBLE` The sheet linked to cannot be viewed by this user.

            * `INVALID` One of several other values indicating unusual error
            conditions.

            * `NOT_SHARED` One of several other values indicating unusual error
            conditions.

            * `OK` The link is in a good state.
    CellLinkWidgetContent:
      type: object
      title: Metric
      properties:
        type:
          type: string
          enum:
            - METRIC
            - SHEETSUMMARY
        sheetId:
          description: Sheet Id from which the cell data originates.
          type: number
        cellData:
          type: array
          items:
            $ref: '#/components/schemas/CellDataItem'
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        hyperlink:
          $ref: '#/components/schemas/WidgetHyperlink'
    ChartWidgetContent:
      type: object
      title: Chart
      properties:
        type:
          type: string
          enum:
            - CHART
        reportId:
          description: Report Id denoting container source, if applicable.
          type: number
        sheetId:
          description: Sheet Id denoting container source, if applicable.
          type: number
        axes:
          type: array
          items:
            $ref: '#/components/schemas/Axes'
        hyperlink:
          $ref: '#/components/schemas/WidgetHyperlink'
        includedColumnIds:
          description: Array of column Ids if the range was selected through the UI.
          type: array
          items:
            type: number
        legend:
          $ref: '#/components/schemas/Legend'
        selectionRanges:
          type: array
          items:
            $ref: '#/components/schemas/SelectionRange'
        series:
          type: array
          items:
            $ref: '#/components/schemas/Series'
        verticalGridLines:
          $ref: '#/components/schemas/WidgetChartGridLine'
        horizontalGridLines:
          $ref: '#/components/schemas/WidgetChartGridLine'
    Column:
      type: object
      x-tags:
        - columns
      properties:
        autoNumberFormat:
          $ref: '#/components/schemas/AutoNumberFormat'
        contactOptions:
          type: array
          items:
            $ref: '#/components/schemas/ContactOption'
          description: >-
            Array of ContactOption objects to specify a pre-defined list of
            values for the column. Column **type** must be **CONTACT_LIST**.
        description:
          type: string
          description: Column description.
        format:
          type: string
          description: >-
            The format descriptor (see [Cell
            formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the **include** query string parameter contains
            **format** and this column has a non-default format applied to it.
        formula:
          description: The formula for the column, if set.
          type: string
        hidden:
          type: boolean
          description: Indicates whether the column is hidden.
        id:
          type: number
          description: Column Id.
        index:
          type: number
          description: Column index or position. This number is zero-based.
        locked:
          type: boolean
          description: >-
            Indicates whether the column is locked. In a response, a value of
            **true** indicates that the column has been locked by the sheet
            owner or the admin.
        lockedForUser:
          type: boolean
          description: >-
            Indicates whether the column is locked for the requesting user. This
            attribute may be present in a response, but cannot be specified in a
            request.
        options:
          type: array
          items:
            type: string
          description: Array of the options available for the column.
        primary:
          type: boolean
          description: >-
            Returned only if the column is the Primary Column (value =
            **true**).
        symbol:
          type: string
          description: >-
            When applicable for **CHECKBOX** or **PICKLIST** column types. See
            [Symbol Columns](/api/smartsheet/openapi/columns).
        systemColumnType:
          type: string
          enum:
            - AUTO_NUMBER
            - CREATED_BY
            - CREATED_DATE
            - MODIFIED_BY
            - MODIFIED_DATE
          description: See [System Columns](/api/smartsheet/openapi/columns).
        tags:
          type: array
          items:
            type: string
            enum:
              - CALENDAR_END_DATE
              - CALENDAR_START_DATE
              - CARD_DONE
              - GANTT_ALLOCATION
              - GANTT_ASSIGNED_RESOURCE
              - GANTT_DISPLAY_LABEL
              - GANTT_DURATION
              - GANTT_END_DATE
              - GANTT_PERCENT_COMPLETE
              - GANTT_PREDECESSOR
              - GANTT_START_DATE
              - BASELINE_START_DATE
              - BASELINE_END_DATE
              - BASELINE_VARIANCE
          description: >-
            Set of tags to indicate special columns. Each element in the array
            is set to one of the listed enum values.
        title:
          type: string
          description: Column title.
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
          description: See [Column Types](/api/smartsheet/openapi/columns)
        validation:
          type: boolean
          description: >-
            Indicates whether validation has been enabled for the column (value
            = **true**).
        version:
          type: number
          enum:
            - 0
            - 1
            - 2
          description: |
            * `0`: CONTACT_LIST, PICKLIST, or TEXT_NUMBER.
            * `1`: MULTI_CONTACT_LIST.
            * `2`: MULTI_PICKLIST.
        width:
          type: number
          description: Display width of the column in pixels.
    ColumnObject:
      $ref: '#/components/schemas/ColumnObjectAttributes'
    Comment:
      type: object
      x-tags:
        - comments
      properties:
        attachments:
          description: Array of attachments on comments.
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        createdBy:
          description: >-
            User object containing name and email of the creator of this
            comment.
          type: object
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        discussionId:
          description: Discussion Id of discussion that contains comment.
          type: number
        id:
          description: Comment Id.
          type: number
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        text:
          description: Comment body.
          type: string
    Contact:
      type: object
      x-tags:
        - contacts
      properties:
        id:
          description: Contact Id.
          type: string
          example: AAAAATYU54QAD7_fNhTnhA
        name:
          description: Contact's full name.
          type: string
          example: Jane Doe
        email:
          description: Contact's email address.
          type: string
          format: email
          example: jane.doe@smartsheet.com
    ContactOption:
      type: object
      properties:
        email:
          description: A parsable email address.
          type: string
        name:
          description: Can be a user's name, display name, or free text.
          type: string
    ContainerDestination:
      type: object
      properties:
        destinationId:
          description: >
            The ID of the destination container (when copying or moving a sheet
            or a folder). Required if `destinationType` is `"folder"` or
            `"workspace"`.


            The `"home"` enum is **Deprecated** since March 25, 2025, and will
            be removed.
          type: number
        destinationType:
          description: Type of the destination container.
          type: string
          nullable: true
          enum:
            - folder
            - home
            - workspace
        newName:
          description: >-
            Name of the newly created object (when creating a copy of a
            dashboard, folder, sheet, or workspace). This attribute is not
            supported for "move" operations.
          type: string
    CopyOrMoveRowDestination:
      type: object
      x-tags:
        - rows
      properties:
        sheetId:
          description: The Id of the destination sheet.
          type: number
    CopyOrMoveRowDirective:
      type: object
      x-tags:
        - rows
      properties:
        rowIds:
          description: The Ids of the rows to move or copy from the source sheet.
          type: array
          items:
            type: number
        to:
          $ref: '#/components/schemas/CopyOrMoveRowDestination'
    CopyOrMoveRowResult:
      type: object
      x-tags:
        - rows
      properties:
        destinationSheetId:
          description: The Id of the destination sheet.
          type: number
        rowMappings:
          description: Array of rowMapping objects.
          type: array
          items:
            $ref: '#/components/schemas/RowMapping'
    Criteria:
      type: object
      properties:
        columnId:
          description: Column Id.
          type: number
          example: 293452983475
        operator:
          description: Operator used to filter column values.
          type: string
          enum:
            - BETWEEN
            - CONTAINS
            - EQUAL
            - FUTURE
            - GREATER_THAN
            - HAS_ATTACHMENTS
            - HAS_COMMENTS
            - IS_BLANK
            - IS_CHECKED
            - IS_DATE
            - IS_LOCKED
            - IS_NUMBER
            - IS_NOT_BLANK
            - IS_NOT_CHECKED
            - IS_NOT_DATE
            - IS_NOT_NUMBER
            - IS_ONE_OF
            - LAST_N_DAYS
            - LESS_THAN
            - NEXT_N_DAYS
            - NO_ATTACHMENTS
            - NO_COMMENTS
            - NOT_EQUAL
            - NOT_LOCKED
            - NOT_ON_CRITICAL_PATH
            - ON_CRITICAL_PATH
            - PAST
            - TODAY
          example: IS_ONE_OF
        values:
          description: >-
            Present if a custom filter criteria's operator has one or more
            arguments.
          type: array
          items:
            type: string
          example:
            - Complete
            - In progress
    CrossSheetReference:
      type: object
      x-tags:
        - crossSheetReferences
      properties:
        endColumnId:
          description: >-
            Defines ending edge of range when specifying one or more columns. To
            specify an entire column, omit the startRowId and endRowId
            parameters.
          type: number
        endRowId:
          description: >-
            Defines ending edge of range when specifying one or more rows. To
            specify an entire row, omit the startColumnId and endColumnId
            parameters.
          type: number
        id:
          description: >-
            Cross-sheet reference Id, guaranteed unique within referencing
            sheet.
          type: number
        name:
          description: >-
            Friendly name of reference. Auto-generated unless specified in
            Create Cross-sheet References.
          type: string
        startColumnId:
          description: >-
            Defines beginning edge of range when specifying one or more columns.
            To specify an entire column, omit the startRowId and endRowId
            parameters.
          type: number
        startRowId:
          description: >-
            Defines beginning edge of range when specifying one or more rows. To
            specify an entire row, omit the startColumnId and endColumnId
            parameters.
          type: number
        status:
          description: |
            Status of request:
             * 'BLOCKED' - A reference is downstream of a circular issue.
             * 'BROKEN' - The data source location (column, row or sheet) was deleted.
             * 'CIRCULAR' - The formula reference is self referencing and cannot be resolved.
             * 'DISABLED' - Updating the reference is temporarily disabled due to maintenance.
             * 'INVALID/UNKNOWN' - The reference is new and had not been validated.
             * 'NOT_SHARED' - No common shared users.
             * 'OK' - The reference is in a good state.
          type: string
          enum:
            - BLOCKED
            - BROKEN
            - CIRCULAR
            - DISABLED
            - INVALID/UNKNOWN
            - NOT-SHARED
            - OK
        sourceSheetId:
          description: Sheet Id of source sheet.
          type: number
    Currency:
      type: object
      properties:
        code:
          description: The ISO 4217 currency code.
          example: EUR
          type: string
        symbol:
          description: The currency symbol.
          type: string
          example: €
    Discussion:
      type: object
      x-tags:
        - discussions
      properties:
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        id:
          description: Discussion Id.
          type: number
        comments:
          description: >-
            Array of comments in discussion. Only returned if the include query
            string parameter contains comments.
          type: array
          items:
            $ref: '#/components/schemas/Comment'
        commentAttachments:
          description: >-
            Array of attachments on discussion comments. Only returned if the
            include query string parameter contains attachments.
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        commentCount:
          description: Number of comments in the discussion.
          type: number
        createdBy:
          description: >
            `User` object containing `name` and `email` of the user who created
            the discussion.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        lastCommentedAt:
          $ref: '#/components/schemas/Timestamp'
        lastCommentedUser:
          description: >
            `User` object containing `name` and `email` of the user who last
            commented on the discussion.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        parentId:
          description: The Id of the associated row or sheet.
          type: number
        parentType:
          description: Type of parent object.
          type: string
          enum:
            - ROW
            - SHEET
        readOnly:
          description: Indicates whether the user can modify the discussion.
          type: boolean
        title:
          description: >-
            Title automatically created by duplicating the first 100 characters
            of top-level comment.
          type: string
          readOnly: true
    Duration:
      description: >-
        In a project sheet, represents a value in a duration cell, or a lag
        value of a predecessor.
      type: object
      properties:
        days:
          description: The number of days for this duration.
          type: number
        elapsed:
          description: >-
            If true, indicates this duration represents elapsed time, which
            ignores non-working time.
          type: boolean
        hours:
          description: The number of hours for this duration.
          type: number
        milliseconds:
          description: The number of milliseconds for this duration.
          type: number
        minutes:
          description: The number of minutes for this duration.
          type: number
        negative:
          description: >-
            When used as a predecessor's lag value, indicates whether the lag is
            negative (if true), or positive (false). The individual duration
            values themselves (for example, days, hours, or minutes) is always
            positive.
          type: boolean
        objectType:
          type: string
          enum:
            - DURATION
        seconds:
          description: The number of seconds for this duration.
          type: number
        weeks:
          description: The number of weeks for this duration.
          type: number
    Email:
      type: object
      properties:
        ccMe:
          description: Indicates whether to send a copy of the email to the sender.
          type: boolean
        message:
          description: The message of the email.
          type: string
        sendTo:
          description: Array of recipients.
          type: array
          items:
            $ref: '#/components/schemas/Recipient'
        subject:
          description: The subject of the email.
          type: string
    Error:
      description: The error caused by the failed item.
      type: object
      properties:
        refId:
          description: >-
            The Id of the specific error occurrence. Please include this
            information when contacting Smartsheet support.
          type: string
        errorCode:
          description: >-
            Custom error code from Smartsheet. See the complete [Error Code
            List](/api/smartsheet/error-codes).
          type: number
        message:
          description: Descriptive error message.
          type: string
    Event:
      description: An Event object for event reporting.
      type: object
      x-tags:
        - events
      properties:
        eventId:
          description: Unique event identifier.
          type: string
          example: >-
            2.1.iI9WIpaEAhjz-0hV0eGw2lOEoKDqoRUP00NJv2RvAyKoOvyws63zsfpTBqda5tb33ylcz2JdGVC9Rfa2FRJKQg
        objectType:
          description: >-
            The Smartsheet resource impacted by the event, such as, SHEET or
            WORKSPACE.
          type: string
          enum:
            - ACCESS_TOKEN
            - ACCOUNT
            - ATTACHMENT
            - DASHBOARD
            - DISCUSSION
            - FOLDER
            - FORM
            - GROUP
            - REPORT
            - SHEET
            - UPDATE_REQUEST
            - USER
            - WORKSPACE
          example: SHEET
        action:
          description: >-
            The action applied to the specified object, such as CREATE or
            DELETE.
          type: string
          example: CREATE
        objectId:
          description: The identifier of the object impacted by the event.
          type: string
          example: '345678901234'
        eventTimestamp:
          description: >-
            Date and time of the event. Defaults to ISO-8601 format. See dates
            and times for more information.
          type: string
          format: date-time
        userId:
          description: >-
            User assumed as the one who initiated the event. Usually the userId
            property and the requestUserId property (below) have the same value.
            However, if the request is an API call with Assume-User header then
            the userId property identifies the user whose email matches the
            value in the Assume-User header.
          type: number
          example: 123457654321
        requestUserId:
          description: >-
            User whose authentication credential is embedded in the request that
            initiated the event. For example, if the request is an API call with
            an access token then requestUserId identifies the user whose data
            can be accessed via the access token (i.e., the user who authorized
            the creation of the access token). On the other hand, if the request
            comes from a UI session, then requestUserId identifies the user
            logged-in to the UI.
          type: number
          example: 133445566778
        accessTokenName:
          description: >-
            Name of the access token embedded in the request. This property is
            omitted if there's no access token in the request (i.e., it isn't an
            API call) or if the access token wasn't given a name when created
            (only access tokens generated via the Smartsheet desktop UI can be
            given a name at creation time).
          type: string
          nullable: false
        source:
          description: Identifies the client or user agent used to initiate the action.
          type: string
          enum:
            - WEB_APP
            - MOBILE_IOS
            - MOBILE_ANDROID
            - API_UNDEFINED_APP
            - API_INTEGRATED_APP
            - API_ODBC_DRIVER
          example: WEB_APP
        additionalDetails:
          description: >-
            Container object for additional event-specific properties.
            Properties depend upon the event type. See <a
            href="https://smartsheet-platform.github.io/event-reporting-docs/"
            target="_blank" rel="noopener noreferrer">Event Reporting</a>
            reference documentation for details on each event type.
          type: object
          additionalProperties: true
    Favorite:
      type: object
      x-tags:
        - favorites
      properties:
        objectId:
          description: >-
            The Id of the favorited item. If type is template, only private
            sheet-type template Id is allowed.
          type: number
        type:
          type: string
          enum:
            - folder
            - report
            - sheet
            - sight
            - template
            - workspace
    FilteredEventsRequest:
      type: object
      properties:
        sheetIds:
          description: >-
            Array of sheet Ids used to filter events. Only events related to the
            specified sheet Ids are returned.
          type: array
          items:
            type: string
        workspaceIds:
          description: >-
            Array of workspace Ids used to filter events. Only events related to
            the specified workspace Ids are returned.
          type: array
          items:
            type: string
        since:
          description: >-
            The earliest time from which events are included in the response.
            Events before this time are excluded. This field is intended for use
            when backfilling data at client startup or recovery--don't use it
            for fine-grained date-based queries. Therefore, resolution is
            limited to the nearest hour. The value is interpreted as ISO-8601
            format, unless `numericDates` is specified (see details about
            `numericDates` below).


            You must pass in a value for either `since` or `streamPosition` and
            never both.
          type: string
          format: date-time
        to:
          description: >-
            The latest time up to which events are included in the response.
            Events after this time are excluded. The `to` field requires using
            the `since` body field (above). This field is intended for use when
            backfilling data at client startup or recovery--don't use it for
            fine-grained date-based queries. Therefore, resolution is limited to
            the nearest hour. The value is interpreted as ISO-8601 format,
            unless `numericDates` is specified (see details about `numericDates`
            below).


            If `to` is a future time, the current time is used. If `to` equals
            the `since` time, an empty data value is returned. If `to` is before
            the `since` time, an error is returned.
          type: string
          format: date-time
        streamPosition:
          description: >-
            Indicates next set of events to return. Use value of
            `nextStreamPosition` returned from the previous call.

            You must pass in a value for either `since` or `streamPosition` and
            never both.
          type: string
          example: XyzAb1234cdefghijklmnofpq
        maxCount:
          description: |-
            Maximum number of events to return as response to this call.
            Must be between 1 through 10,000 (inclusive).
            Defaults to 1,000 if not specified.
          type: integer
          minimum: 1
          maximum: 10000
          default: 1000
        numericDates:
          description: >-
            If true, dates are accepted and returned in Unix epoch time
            (milliseconds since midnight on January 1, 1970 in UTC time).

            Default is false, which means ISO-8601 format.
          type: boolean
          default: false
        managedPlanId:
          description: >-
            The target managed plan for which to list events. Authorized if the
            caller is a licensed user on either the target managed plan or the
            main plan in EPM hierarchy.
          type: number
    Filters:
      description: >-
        Smartsheet users can define and save personal column filters on sheets
        they can view.
      type: object
      properties:
        id:
          description: Filters Id.
          type: number
          example: 52739485234
        excludeSelected:
          description: >-
            If true, rows containing cells matching the values or criteria items
            are excluded instead of included.
          type: boolean
          example: false
        filterType:
          type: string
          enum:
            - PERSONAL
            - SHARED
          example: PERSONAL
        query:
          $ref: '#/components/schemas/Query'
    Folder:
      description: Can contain dashboards, folders, reports, sheets, or templates.
      type: object
      x-tags:
        - folders
      properties:
        id:
          description: Folder Id.
          type: number
        favorite:
          description: >-
            (Deprecated) Returned only if the user has marked the folder as a
            favorite in their "Home" tab (value = true).
          type: boolean
        folders:
          description: Folders contained in folder.
          type: array
          items:
            $ref: '#/components/schemas/Folder'
        name:
          description: Folder name.
          type: string
        permalink:
          description: URL that represents a direct link to the folder in Smartsheet.
          type: string
        reports:
          description: Reports contained in folder.
          type: array
          items:
            $ref: '#/components/schemas/GridListing'
        sheets:
          description: Sheets contained in folder.
          type: array
          items:
            $ref: '#/components/schemas/GridListing'
        sights:
          description: Dashboards contained in folder.
          type: array
          items:
            $ref: '#/components/schemas/DashboardListing'
        templates:
          description: Templates contained in folder.
          type: array
          items:
            $ref: '#/components/schemas/GridListing'
    FontFamily:
      type: object
      properties:
        name:
          description: Name of the font family.
          example: Arial
          type: string
        traits:
          description: >-
            Platform-independent traits of the font family. Contains one of the
            listed enum values.
          example:
            - sans-serif
          type: array
          items:
            type: string
            enum:
              - sans-serif
              - serif
    FormatDetails:
      type: object
      properties:
        paperSize:
          description: Specifies paper size.
          type: string
          example: LETTER
          enum:
            - A0
            - A1
            - A2
            - A3
            - A4
            - ARCHID
            - LEGAL
            - LETTER
            - WIDE
    FormatTables:
      description: >-
        Contains all of the lookup tables that the format descriptor indexes
        refer to. Here the examples show the formatting options, the default
        value is used to denote each option. NOTE -- Indexes and their values
        are guaranteed never to change or be removed for a given major API
        version.  However, new values could potentially be added to the ends of
        lookup tables. Because of this possibility, your code should handle the
        case where a cell might contain a format index value greater than the
        size of a lookup table your app has loaded. Your application should
        check for that case and reload the format tables if necessary.
      type: object
      properties:
        defaults:
          description: >-
            A format descriptor where each element describes the formats the
            Smartsheet Web app displays for format values that have not been
            set. Each value refers to an index of the following options.
          type: string
          example: ',,1,1,,,,,,,,,,,,,'
        bold:
          type: array
          items:
            type: string
          example:
            - none
            - 'on'
        color:
          description: >-
            The default setting is "none". Typically this is black text and a
            white background.
          type: array
          items:
            type: string
          example:
            - none
            - transparent
            - '#000000'
            - '#0B347D'
            - '#1061C3'
            - '#237F2E'
            - '#40B14B'
            - '#592C00'
            - '#5FB3F9'
            - '#61058B'
            - '#757575'
            - '#7ED085'
            - '#9210AD'
            - '#974C00'
            - '#991310'
            - '#B9DDFC'
            - '#BDBDBD'
            - '#C6E7C8'
            - '#D0AF8F'
            - '#D190DA'
            - '#E2F2FE'
            - '#E5E5E5'
            - '#E7F5E9'
            - '#EA352E'
            - '#EA5000'
            - '#EBC700'
            - '#EBC7EF'
            - '#EEDCCA'
            - '#F2E8DE'
            - '#F4E4F5'
            - '#F87E7D'
            - '#FEFF00'
            - '#FEFF85'
            - '#FF8D00'
            - '#FFCCD2'
            - '#FFCD7A'
            - '#FFE1AF'
            - '#FFEBEE'
            - '#FFED00'
            - '#FFF3DF'
            - '#FFFEE6'
            - '#FFFFFF'
        currency:
          type: array
          items:
            $ref: '#/components/schemas/Currency'
          example:
            - code: none
              symbol: none
            - code: ARS
              symbol: $
            - code: AUD
              symbol: $
            - code: BRL
              symbol: R$
            - code: CAD
              symbol: $
            - code: CHF
              symbol: CHF
            - code: CLP
              symbol: $
            - code: CNY
              symbol: ¥
            - code: DKK
              symbol: kr.
            - code: EUR
              symbol: €
            - code: GBP
              symbol: £
            - code: HKD
              symbol: $
            - code: ILS
              symbol: ₪
            - code: INR
              symbol: ₹
            - code: JPY
              symbol: ¥
            - code: KRW
              symbol: ₩
            - code: MXN
              symbol: $
            - code: NOK
              symbol: kr
            - code: NZD
              symbol: $
            - code: RUB
              symbol: ₽
            - code: SEK
              symbol: kr
            - code: SGD
              symbol: $
            - code: USD
              symbol: $
            - code: ZAR
              symbol: R
        dateFormat:
          type: array
          items:
            type: string
          example:
            - LOCALE_BASED
            - MMMM_D_YYYY
            - MMM_D_YYYY
            - D_MMM_YYYY
            - YYYY_MM_DD_HYPHEN
            - YYYY_MM_DD_DOT
            - DWWWW_MMMM_D_YYYY
            - DWWW_DD_MMM_YYYY
            - DWWW_MM_DD_YYYY
            - MMMM_D
            - D_MMMM
        decimalCount:
          type: array
          items:
            type: string
          example:
            - '0'
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
        fontFamily:
          type: array
          items:
            $ref: '#/components/schemas/FontFamily'
          example:
            - name: Arial
              traits:
                - sans-serif
            - name: Roboto
              traits:
                - sans-serif
            - name: Tahoma
              traits:
                - sans-serif
            - name: Times New Roman
              traits:
                - serif
            - name: Verdana
              traits:
                - sans-serif
        fontSize:
          type: array
          items:
            type: string
          example:
            - '8'
            - '9'
            - '10'
            - '12'
            - '14'
            - '16'
            - '18'
            - '20'
            - '24'
            - '28'
            - '32'
            - '36'
        horizontalAlign:
          description: The default setting is "default" which is equivalent to "left".
          type: array
          items:
            type: string
          example:
            - default
            - left
            - center
            - right
        italic:
          type: array
          items:
            type: string
          example:
            - none
            - 'on'
        numberFormat:
          type: array
          items:
            type: string
          example:
            - none
            - NUMBER
            - CURRENCY
            - PERCENT
        strikethrough:
          type: array
          items:
            type: string
          example:
            - none
            - 'on'
        textWrap:
          type: array
          items:
            type: string
          example:
            - none
            - 'on'
        thousandsSeparator:
          type: array
          items:
            type: string
          example:
            - none
            - 'on'
        underline:
          type: array
          items:
            type: string
          example:
            - none
            - 'on'
        verticalAlign:
          description: The default setting is "default" which is equivalent to "top".
          type: array
          items:
            type: string
          example:
            - default
            - top
            - middle
            - bottom
    Group:
      type: object
      x-tags:
        - groups
      properties:
        id:
          description: Group Id.
          type: number
          example: 4583173393803140
        name:
          description: Group name.
          type: string
          example: Group 1
        description:
          description: Group description.
          type: string
          example: My group
        owner:
          description: Group owner’s email address.
          type: string
          format: email
          example: john.doe@smartsheet.com
        ownerId:
          description: Group owner's user Id.
          type: number
          example: 2331373580117892
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
    GroupMember:
      type: object
      x-tags:
        - groupMembers
      properties:
        id:
          description: Group member's user Id.
          type: number
          example: 2331373580117892
        email:
          description: Group member's email address.
          type: string
          format: email
          example: john.doe@smartsheet.com
        firstName:
          description: Group member's first name.
          type: string
          example: John
        lastName:
          description: Group member's last name.
          type: string
          example: Doe
        name:
          description: Group member's full name.
          type: string
          example: John Doe
    Home:
      description: >-
        All objects a user has access to, including dashboards, folders,
        reports, sheets, and templates.
      type: object
      properties:
        folders:
          type: array
          items:
            $ref: '#/components/schemas/Folder'
        reports:
          type: array
          items:
            $ref: '#/components/schemas/Report'
        sheets:
          type: array
          items:
            $ref: '#/components/schemas/Sheet'
        sights:
          type: array
          items:
            $ref: '#/components/schemas/Sight'
        templates:
          type: array
          items:
            $ref: '#/components/schemas/Template'
    Hyperlink:
      type: object
      properties:
        reportId:
          type: number
          description: If non-null, this hyperlink is a link to the report with this Id.
        sheetId:
          type: number
          description: If non-null, this hyperlink is a link to the sheet with this Id.
        sightId:
          type: number
          description: If non-null, this hyperlink is a link to the dashboard with this Id.
        url:
          type: string
          description: >-
            When the hyperlink is a URL link, this property contains the URL
            value. When the hyperlink is a dashboard/report/sheet link (that is,
            dashboardId, reportId, or sheetId is non-null), this property
            contains the permalink to the dashboard, report, or sheet.
    Image:
      type: object
      x-tags:
        - cellImages
      properties:
        altText:
          type: string
          description: Alternate text for the image.
        height:
          type: number
          description: Original height (in pixels) of the uploaded image.
        id:
          type: string
          description: Image Id.
        width:
          type: number
          description: Original width (in pixels) of the uploaded image.
    ImageUrl:
      type: object
      x-tags:
        - cellImages
      properties:
        imageId:
          description: Image Id.
          type: string
        error:
          $ref: '#/components/schemas/Error'
        height:
          description: Image height in pixels.
          type: number
        url:
          description: >-
            Temporary URL that can be used to retrieve the image. This attribute
            can be present in a response but is never specified in a request.
          type: string
        width:
          description: Image width in pixels.
          type: number
    ImageUrlMap:
      type: object
      x-tags:
        - cellImages
      properties:
        imageUrls:
          type: array
          items:
            $ref: '#/components/schemas/ImageUrl'
        urlExpiresInMillis:
          description: Milliseconds before the URLs within imageUrls expire.
          type: number
    ImageWidgetContent:
      type: object
      title: Image
      properties:
        type:
          type: string
          enum:
            - IMAGE
        privateId:
          description: The image private Id.
          type: string
        fileName:
          description: Name of the image file.
          type: string
        fit:
          description: >
            Describes how the image occupies the available space of its widget.
             * ACTUAL_SIZE - Uses the original image width and height dimensions.
             * FILL - Scales the image to maintain its aspect ratio while filling its entire widget. If the image aspect 
            ratio does not match the aspect ratio of its widget, then the image
            will be clipped to fit.
             * FIT - Scales the image to maintain its aspect ratio while fitting within its widget. The image will be 
            "letterboxed" if its aspect ratio does not match the aspect ratio of
            its widget. Default value for new  image widgets and for existing
            image widgets where this property has not been explicitly set.
          enum:
            - ACTUAL_SIZE
            - FILL
            - FIT
          type: string
        format:
          description: Format descriptor. Follows the pattern in FormatTables.
          type: string
          example: ',7,1,,,,2,2,1,3,,,,,,1,'
        height:
          type: number
        hyperlink:
          $ref: '#/components/schemas/WidgetHyperlink'
        margin:
          description: >
            Indicates whether there is margin between the image and its widget
            borders.
             * MARGIN - Default value for existing image widgets where this property has not been explicitly set.
             * NO_MARGIN - Default value for new image widgets.
          enum:
            - MARGIN
            - NO_MARGIN
          type: string
        width:
          description: Original width of the image in pixels.
          type: number
    IndexResult:
      type: object
      properties:
        pageNumber:
          description: >-
            The current page in the full result set that the data array
            represents. NOTE when a page number greater than totalPages is
            requested, the last page is instead returned.
          type: number
          example: 1
          readOnly: true
        pageSize:
          description: >-
            The number of items in a page. Omitted if there is no limit to page
            size (and hence, all results are included). Unless otherwise
            specified, this defaults to 100 for most endpoints.
          type: number
          example: 50
          nullable: true
          readOnly: true
        totalPages:
          description: The total number of pages in the full result set.
          type: number
          example: 25
          readOnly: true
        totalCount:
          description: The total number of items in the full result set.
          type: number
          example: 136
          readOnly: true
    IndexResultUnknownPages:
      type: object
      properties:
        pageNumber:
          description: >-
            The current page in the full result set that the data array
            represents. NOTE when a page number greater than totalPages is
            requested, the last page is instead returned.
          type: number
          example: 1
          readOnly: true
        pageSize:
          description: >-
            The number of items in a page. Omitted if there is no limit to page
            size (and hence, all results are included). Unless otherwise
            specified, this defaults to 100 for most endpoints.
          type: number
          example: 50
          nullable: true
          readOnly: true
        totalPages:
          description: >-
            If the data field value is not empty, returns a static value of -1.
            When you reach the first empty page after the end of the result set,
            then all four fields are set with a static value of “0”.
          type: number
          example: -1
          readOnly: true
        totalCount:
          description: >-
            If the data field value is not empty, returns a static value of -1.
            When you reach the first empty page after the end of the result set,
            then all four fields are set with a static value of “0”.
          type: number
          example: -1
          readOnly: true
    MiniUser:
      description: MiniUser Object
      type: object
      properties:
        email:
          type: string
          format: email
          example: jane.doe@smartsheet.com
        name:
          type: string
          readOnly: true
          example: Jane Doe
    MultiRowEmail:
      allOf:
        - $ref: '#/components/schemas/RowEmail'
      type: object
      x-tags:
        - sendViaEmail
      properties:
        rowIds:
          description: The Ids of rows to be included.
          type: array
          items:
            type: number
    ObjectValue:
      description: >-
        The base object for values found in the **Cell.objectValue** attribute.
        Its **objectType** attribute indicates the type of the object. This
        object itself is not used directly.
      required:
        - objectType
      x-tags:
        - cells
      properties:
        objectType:
          type: string
      oneOf:
        - $ref: '#/components/schemas/AbstractDatetimeObjectValue'
        - $ref: '#/components/schemas/CheckboxObjectValue'
        - $ref: '#/components/schemas/ContactObjectValue'
        - $ref: '#/components/schemas/DateObjectValue'
        - $ref: '#/components/schemas/DatetimeObjectValue'
        - $ref: '#/components/schemas/DurationObjectValue'
        - $ref: '#/components/schemas/MultiContactObjectValue'
        - $ref: '#/components/schemas/MultiPicklistObjectValue'
        - $ref: '#/components/schemas/PredecessorList'
    Predecessor:
      type: object
      properties:
        rowId:
          description: The Id of the predecessor row.
          type: number
        type:
          description: |
            Type of the predecessor:
             * FF (Finish-to-Finish) - finish at the same time the predecessor finishes.
             * FS (Finish-to-Start) - start after the predecessor finishes.
             * SF (Start-to-Finish) - finish before the predecessor starts.
             * SS (Start-to-Start) - start at the same time the predecessor starts.
          type: string
          enum:
            - FF
            - FS
            - SF
            - SS
        inCriticalPath:
          description: True if this predecessor is in the critical path.
          type: boolean
          readOnly: true
        invalid:
          description: >-
            True if the row referenced by rowId is not a valid row in this
            sheet, or there is a circular reference (displayed in the Smartsheet
            app as "#REF") Omitted if false.
          type: boolean
          readOnly: true
        lag:
          $ref: '#/components/schemas/Duration'
        rowNumber:
          description: The row number of the predecessor row. Omitted if invalid is true.
          type: number
          readOnly: true
      example:
        rowId: 1234567890123456
        rowNumber: 2
        type: FS
        inCriticalPath: true
    PredecessorList:
      description: >-
        Object containing a list of references to rows on which the current row
        depends
      type: object
      title: PredecessorListObjectValue
      properties:
        objectType:
          type: string
          enum:
            - PREDECESSOR_LIST
        predecessors:
          description: List of references to rows on which the current row depends
          type: array
          items:
            $ref: '#/components/schemas/Predecessor'
    ProjectSettings:
      description: >-
        Represents the project settings dependencies for a specific sheet.
        Project settings may be updated on sheets that the user has editor
        access.
      type: object
      properties:
        lengthOfDay:
          description: Length of a workday for a project sheet.
          type: number
          minimum: 1
          maximum: 24
        nonWorkingDays:
          description: Non-working days for a project sheet.
          type: array
          items:
            type: string
            format: date
        workingDays:
          type: array
          items:
            type: string
            enum:
              - MONDAY
              - TUESDAY
              - WEDNESDAY
              - THURSDAY
              - FRIDAY
              - SATURDAY
              - SUNDAY
    Proof:
      description: >-
        Object containing zero or more media items, including images, videos,
        and documents, for review, editing, or approval.
      type: object
      x-tags:
        - proofs
      properties:
        id:
          description: Proof Id of the proof version.
          type: number
        originalId:
          description: Proof Id of the original proof version.
          type: number
        name:
          description: >-
            Proof name. This is the same as primary column value. If the primary
            column value is empty, name is empty.
          type: string
        proofType:
          description: File type for the proof version.
          type: string
          enum:
            - DOCUMENT
            - IMAGE
            - MIXED
            - NONE
            - VIDEO
        proofRequestUrl:
          description: URL to review a proofing request.
          type: string
        version:
          description: The version number of the proof.
          type: number
        lastUpdatedAt:
          $ref: '#/components/schemas/Timestamp'
        lastUpdatedBy:
          description: >
            `User` object containing `name` and `email` of the user who last
            updated the proof.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        isCompleted:
          description: Indicates whether the proof is completed.
          type: boolean
        attachments:
          description: >-
            Array of Attachment objects. Only returned if the include query
            string parameter contains attachments.
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        discussions:
          description: >-
            Array of Discussion objects. Only returned if the include query
            string parameter contains discussions.
          type: array
          items:
            $ref: '#/components/schemas/Discussion'
    ProofRequest:
      allOf:
        - $ref: '#/components/schemas/ProofRequestBody'
      type: object
      x-tags:
        - proofs
      properties:
        id:
          description: Proof request Id.
          type: number
        proofId:
          description: Proof Id of the original proof.
          type: number
        sentBy:
          description: |
            `User` object containing `name` and `email` of the sender.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        sentAt:
          $ref: '#/components/schemas/Timestamp'
        isDownloadable:
          description: Indicates whether the description is downloadable.
          type: boolean
        status:
          description: Proof request status.
          type: string
          enum:
            - ACTIVE
            - EXPIRED
            - PROOF_DELETED
    ProofRequestAction:
      type: object
      x-tags:
        - proofs
      properties:
        user:
          description: >
            `User` object containing `name` and `email` of the user performing
            the action.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        actionStatus:
          description: Proof request action status.
          type: string
          enum:
            - APPROVED
            - PENDING
            - REJECTED
    ProofRequestBody:
      allOf:
        - $ref: '#/components/schemas/Email'
      type: object
      properties:
        isDownloadable:
          description: Whether the description is downloadable.
          type: boolean
    Query:
      properties:
        operator:
          type: string
          enum:
            - AND
            - OR
        criteria:
          description: >-
            Criteria objects specifying custom criteria against which to match
            cell values.
          type: array
          items:
            $ref: '#/components/schemas/Criteria'
        includeParent:
          description: >-
            If true, indicates that "show parent rows" is enabled for the
            filters.
          type: boolean
      example:
        operator: OR
        criteria:
          - operator: IS_ONE_OF
            values:
              - Complete
              - In Progress
            columnId: 52793485233
        includeParent: false
    Recipient:
      description: >
        Specifies the recipient of an email. The recipient may be either an
        individual or a group. To specify an individual, set the email
        attribute; to specify a group, set the groupId attribute. Either email
        and groupId may be set, but not both.
      oneOf:
        - $ref: '#/components/schemas/Recipient_Individual'
        - $ref: '#/components/schemas/Recipient_Group'
    Report:
      allOf:
        - $ref: '#/components/schemas/Sheet'
      type: object
      x-tags:
        - reports
      properties:
        scope:
          $ref: '#/components/schemas/Scope'
        sourceSheets:
          type: array
          description: >-
            An array of Sheet objects (without rows), representing the sheets
            that rows in the report originated from. Only included in the Get
            Report response if the include parameter specifies sourceSheets.
          items:
            $ref: '#/components/schemas/Sheet'
        isSummaryReport:
          type: boolean
          description: >-
            A boolean to represent whether the report is a sheet summary report
            or not. If this property is false, it is a row report.
    ReportCell:
      allOf:
        - $ref: '#/components/schemas/Cell'
      type: object
      x-tags:
        - reports
      properties:
        virtualColumnId:
          type: number
          description: >-
            This property refers to the cell's parent column in the report,
            while the columnId property refers to the cell's parent column in
            its originating source sheet.
    ReportColumn:
      allOf:
        - $ref: '#/components/schemas/Column'
      type: object
      x-tags:
        - reports
      properties:
        virtualId:
          description: The virtual Id of this report column.
          type: number
        sheetNameColumn:
          description: Returns true only for the special "Sheet Name" report column.
          type: boolean
    ReportPublish:
      type: object
      x-tags:
        - reports
      properties:
        readOnlyFullAccessibleBy:
          description: >
            Indicates who can access the 'Read-Only Full' view of the published
            report:

            * If **ALL**, it is available to anyone who has the link.

            * If **ORG**, it is available only to members of the report owner's
            Smartsheet organization account.

            * If **SHARED**, it is available only to users shared to the item.


            Only returned in a response if **readOnlyFullEnabled** = **true**.
          type: string
        readOnlyFullDefaultView:
          description: >
            Indicates which view the user has set for a read-only, default view
            of the published report. Must be one of

            the following values: **CALENDAR**, **CARD**, or **GRID**.
          type: string
        readOnlyFullEnabled:
          description: >
            (Required) If **true**, a rich version of the report is published
            with the ability to download row

            attachments and discussions.
          type: boolean
        readOnlyFullShowToolbar:
          deprecated: true
          description: >
            Indicates whether the left nav toolbar is displayed. The default, or
            **true**, is to display the toolbar.

            If **false**, hides the toolbar.
          type: boolean
        readOnlyFullUrl:
          description: |
            URL for 'Read-Only Full' view of the published report.

            Only returned in a response if **readOnlyFullEnabled** = **true**.
          type: string
    ReportRow:
      allOf:
        - $ref: '#/components/schemas/Row'
      type: object
      x-tags:
        - reports
      properties:
        sheetId:
          type: number
          description: The Id of the sheet from which the row originates.
    ReportWidgetContent:
      type: object
      title: Report
      properties:
        type:
          type: string
          enum:
            - GRIDGANTT
        reportId:
          description: Report Id denoting container source.
          type: number
        htmlContent:
          description: HTMl snippet to render report.
          type: string
        backgroundColor:
          description: The hex color.
          example: '#E6F5FE'
          type: string
        hyperlink:
          $ref: '#/components/schemas/WidgetHyperlink'
    Result:
      type: object
      allOf:
        - $ref: '#/components/schemas/ItemResult'
      properties:
        version:
          description: >-
            New version of the sheet. Applicable only for operations which
            update sheet data.
          type: number
          nullable: true
    RichTextWidgetContent:
      type: object
      title: Rich Text
      properties:
        type:
          type: string
          enum:
            - RICHTEXT
        htmlContent:
          description: >
            The widget contents as HTML. The Rich Text widget supports the
            following subset of HTML tags and CSS Styles:


            HTML
              * a - hyperlink
              * br - line break
              * li - list item
              * ol - ordered list
              * p - paragraph
              * span - section of the document
              * ul - unordered list

            CSS
              * color
              * font-family
              * font-size
              * font-style
              * font-weight
              * text-align
              * text-decoration
          type: string
    Row:
      type: object
      x-tags:
        - rows
      properties:
        id:
          description: Row Id.
          type: number
        sheetId:
          description: Parent sheet Id.
          type: number
        siblingId:
          description: Sibling Id.
          type: number
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        attachments:
          description: >-
            Attachments on row. Only returned if the include query string
            parameter contains attachments.
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        cells:
          description: Cells belonging to the row.
          type: array
          items:
            $ref: '#/components/schemas/Cell'
        columns:
          description: >-
            Columns of row. Only returned if the include query string parameter
            contains columns.
          type: array
          items:
            $ref: '#/components/schemas/Column'
        conditionalFormat:
          description: >-
            Describes this row's conditional format. Only returned if the
            include query string parameter contains format and this row has a
            conditional format applied.
          type: string
          example: ',,1,1,,,,,,,,,,,,,'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        createdBy:
          description: User object containing name and email of the creator of this row.
          type: object
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        discussions:
          description: >-
            Discussions on the row. Only returned if the include query string
            parameter contains discussions.
          type: array
          items:
            $ref: '#/components/schemas/Discussion'
        proof:
          $ref: '#/components/schemas/Proof'
        expanded:
          description: Indicates whether the row is expanded or collapsed.
          type: boolean
        filteredOut:
          description: >-
            Indicates if the row is filtered out by a column filter. Only
            returned if the include query string parameter contains filters.
          type: boolean
        format:
          description: >-
            Format descriptor. Only returned if the include query string
            parameter contains format and this row has a non-default format
            applied.
          type: string
          example: ',,1,1,,,,,,,,,,,,,'
        inCriticalPath:
          description: >-
            Only returned, with a value of true, if the sheet is a project sheet
            with dependencies enabled and this row is in the critical path.
          type: boolean
        locked:
          description: Indicates whether the row is locked.
          type: boolean
        lockedForUser:
          description: Indicates whether the row is locked for the requesting user.
          type: boolean
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedBy:
          description: >-
            User object containing name and email of the last person to modify
            this row.
          type: object
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        permaLink:
          description: >-
            URL that represents a direct link to the row in Smartsheet. Only
            returned if the include query string parameter contains
            rowPermalink.
          type: string
        rowNumber:
          description: Row number within the sheet.
          type: number
          minimum: 1
        version:
          description: >-
            Sheet version number that is incremented every time a sheet is
            modified.
          type: number
    RowEmail:
      allOf:
        - $ref: '#/components/schemas/Email'
      type: object
      x-tags:
        - sendViaEmail
      properties:
        columnIds:
          description: The Id of the columns to be included.
          type: array
          items:
            type: number
        includeAttachments:
          description: Indicates whether to include attachments in the email.
          type: boolean
        includeDiscussions:
          description: Indicates whether to include discussions in the email.
          type: boolean
        layout:
          description: >
            One of the following values: **HORIZONTAL** or **VERTICAL**.
            Optional, defaults to **HORIZONTAL** when multiple rows are being
            sent and to **VERTICAL** when a single row is being sent.
            **HORIZONTAL** formats the rows being sent as a grid, whereas
            **VERTICAL** formats the rows being sent as separate cards.
          type: boolean
    RowMapping:
      type: object
      x-tags:
        - rows
      properties:
        from:
          description: Row Id in the source sheet.
          type: number
        to:
          description: Row Id in the destination sheet.
          type: number
    Schedule:
      type: object
      properties:
        type:
          description: Type of schedule.
          type: string
          enum:
            - ONCE
            - DAILY
            - WEEKLY
            - MONTHLY
            - YEARLY
        dayDescriptors:
          description: >
            A string array consists of one or more of the following values:

            * **DAY**, **WEEKDAY**, **WEEKEND**

            * **SUNDAY**, **MONDAY**, **TUESDAY**, **WEDNESDAY**, **THURSDAY**,
            **FRIDAY**, **SATURDAY**


            The subset of values applicable to the schedule type are as
            followed:


            | Value         | Daily schedule | Weekly schedule | Monthly
            schedule |

            |---------------|----------------|-----------------|------------------|

            | **DAY**       |                |                 |      
            **✓**      |

            | **WEEKDAY**   |      **✓**     |                 |      
            **✓**      |

            | **WEEKEND**   |                |                 |      
            **✓**      |

            | **SUNDAY**    |                |      **✓**      |      
            **✓**      |

            | **MONDAY**    |                |      **✓**      |      
            **✓**      |

            | **TUESDAY**   |                |      **✓**      |      
            **✓**      |

            | **WEDNESDAY** |                |      **✓**      |      
            **✓**      |

            | **THURSDAY**  |                |      **✓**      |      
            **✓**      |

            | **FRIDAY**    |                |      **✓**      |      
            **✓**      |

            | **SATURDAY**  |                |      **✓**      |      
            **✓**      |


            For more details, refer to the Table of Schedule Object’s Attributes
            below.
          type: array
          items:
            type: string
            enum:
              - DAY
              - WEEKDAY
              - WEEKEND
              - SUNDAY
              - MONDAY
              - TUESDAY
              - WEDNESDAY
              - THURSDAY
              - FRIDAY
              - SATURDAY
        dayOfMonth:
          description: >
            The day within the month.


            Valid range is 1 to 28.


            This attribute is applicable to the following schedule type:
             * **MONTHLY**

            For more details, refer to the Table of Schedule Object’s Attributes
            below.
          type: number
          minimum: 1
          maximum: 31
        dayOrdinal:
          description: |
            Must be one of the following values:
              * **FIRST** or **LAST**
              * **SECOND**, **THIRD**, or **FOURTH**

            This attribute is applicable to the following schedule type:
              * **MONTHLY**

              For more details, refer to the Table of Schedule Object’s Attributes below.
          type: string
          enum:
            - FIRST
            - LAST
            - SECOND
            - THIRD
            - FOURTH
        repeatEvery:
          description: >
            Frequency on which the request is delivered. The unit is a function
            of the **type** attribute. For example,

            for **MONTHLY** schedule, **repeatEvery=1** means every month.


            Valid range is 1 to 99.


            This attribute is applicable to the following schedule types:
            **DAILY**, **WEEKLY**, **MONTHLY**, or **YEARLY**.

            For more details, refer to the Table of Schedule Object’s Attributes
            below.
          type: number
          minimum: 1
          maximum: 99
        endAt:
          allOf:
            - description: >
                The date, time, and time zone at which the delivery schedule
                ends.


                The value is either in a string format or a numeric format:


                * When the value is a string, it must be a valid ISO-8601 date
                and time with an offset (YYYY-MM-DDThh:mm:ssTZD).

                * When the value is a number, it represents a date and time with
                no offset (UTC time zone). See Dates and Times for more
                information.


                The value must be later than startAt and the current date and
                time.


                The value must contain zero hours, zero minutes, and zero
                seconds.


                The offset (time zone) value must be the same as the offset
                (time zone) value in startAt.


                This attribute is applicable to the following schedule types:
                DAILY, WEEKLY, MONTHLY, YEARLY. For more details, refer to the
                Table of Schedule Object’s Attributes below.
            - $ref: '#/components/schemas/Timestamp_Writeable'
        lastSentAt:
          allOf:
            - description: The date and time for when the last request was sent.
            - $ref: '#/components/schemas/Timestamp'
        nextSendAt:
          allOf:
            - description: >-
                The date and time for when the next request is scheduled to
                send.
            - $ref: '#/components/schemas/Timestamp'
        startAt:
          allOf:
            - description: >
                The date, time, and time zone at which the first delivery
                starts.


                The value is either in a string format or a numeric format:

                 *   When the value is a string, it must be a valid ISO-8601 date and time with an offset (YYYY-MM-DDThh:mm:ssTZD).
                 *   When the value is a number, it represents a date and time with no offset (UTC time zone). See [Dates and times](/api/smartsheet/guides/basics/dates-and-times) for more information.

                For ONCE schedule type, it must be later than the current date
                time.


                For all other schedule types, it must be later than
                “2000-01-01T00:00:00Z” in string format or 946684800000 in
                numeric format.


                The value must contain zero minutes and zero seconds.


                This attribute is applicable to all schedule types.


                For more details, refer to the Table of Schedule Object’s
                Attributes below.
            - $ref: '#/components/schemas/Timestamp_Writeable'
    Scope:
      type: object
      properties:
        sheets:
          description: >
            Array of Sheet objects (containing just the sheet Id) of any sheets
            that the requester has access to that make up the report.
          type: array
          items:
            $ref: '#/components/schemas/Sheet'
        workspaces:
          description: >
            Array of Workspace objects (containing just the workspace Id) that
            the requester has access to that make up the report.
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceListing'
    SearchResult:
      x-tags:
        - search
      properties:
        results:
          description: Array of SearchResultItem objects.
          type: array
          items:
            $ref: '#/components/schemas/SearchResultItem'
        totalCount:
          description: Total number of search results.
          type: number
    SearchResultItem:
      type: object
      x-tags:
        - search
      properties:
        objectId:
          description: Search result object Id.
          type: number
        parentObjectId:
          description: Search result parent object Id.
          type: number
        contextData:
          description: Additional info on search result context.
          type: array
          items:
            type: string
        objectType:
          description: >-
            Search result object type (attachment, dashboard, discussion,
            folder, report, row, sheet, summaryField, template, or workspace).
          type: string
        parentObjectName:
          description: Search result parent object name.
          type: string
        parentObjectType:
          description: >-
            Search result parent object type (dashboard, folder, report, sheet,
            template, or workspace).
          type: string
        proofUrl:
          description: >-
            The proofUrl string will be present in the contextData if the
            discussion or attachment belongs to a proof.
          type: string
        text:
          description: Search result text excerpt.
          type: string
    SelectionRange:
      description: Defines a block of cells in a sheet.
      type: object
      properties:
        sourceColumnId1:
          description: Defines beginning edge of range when specifying one or more columns.
          type: number
        sourceColumnId2:
          description: Defines ending edge of range when specifying one or more columns.
          type: number
        sourceRowId1:
          description: Defines beginning edge of range when specifying one or more rows.
          type: number
        sourceRowId2:
          description: Defines ending edge of range when specifying one or more rows.
          type: number
    SentUpdateRequest:
      type: object
      x-tags:
        - updateRequests
      properties:
        id:
          description: The Id of the sent update request.
          type: number
        columnIds:
          description: The Ids of columns included in the request.
          type: array
          items:
            type: number
        rowIds:
          description: The Ids of rows where an update is requested.
          type: array
          items:
            type: number
        updateRequestId:
          description: The Id of the originating update request.
          type: number
        includeAttachments:
          description: Indicates whether the attachments were included in the email.
          type: boolean
        includeDiscussions:
          description: Indicates whether the discussions were included in the email.
          type: boolean
        message:
          description: The message of the email. Max 10000 characters.
          type: string
        sentAt:
          description: >-
            The date and time for when the sent update request was sent to the
            recipient.
          allOf:
            - $ref: '#/components/schemas/Timestamp'
        sentBy:
          description: |
            `User` object containing `name` and `email` of the sender.
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        sentTo:
          description: Recipient object.
          allOf:
            - $ref: '#/components/schemas/Recipient'
        status:
          description: The status of the sent update request.
          type: string
          enum:
            - CANCELED
            - COMPLETE
            - PENDING
        subject:
          description: The subject of the email.
          type: string
    ServerInfo:
      type: object
      x-tags:
        - serverInfo
      properties:
        formats:
          $ref: '#/components/schemas/FormatTables'
        supportedLocales:
          description: Array of strings representing all Smartsheet-supported locales.
          type: array
          items:
            type: string
    Share:
      type: object
      x-tags:
        - sharing
      properties:
        id:
          description: >
            Share Id.


            **NOTE**: unlike other Smartsheet object Ids, this Id is an
            alphanumeric string.
          type: string
        groupId:
          description: Group Id if the share is a group share, else null.
          type: number
        userId:
          description: User Id if the share is a user share, else null.
          type: number
        type:
          description: |
            The type of this share. One of the following values: GROUP or USER.
          type: string
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        ccMe:
          description: >
            Indicates whether to send a copy of the email to the sharer of the
            sheet. You can specify this attribute

            in a request, but it is never present in a response.
          type: boolean
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        email:
          description: User's primary email address for user shares; null for group shares.
          type: string
        message:
          description: >
            The message included in the body of the email that is optionally
            sent to the recipient. You can specify

            this attribute in a request, but it is never present in a response.
          type: string
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        name:
          description: >-
            If a user share and user is also a contact, the user's full name. If
            a group share, the group's name.
          type: string
        scope:
          description: |
            The scope of this share. One of the following values:
              * **ITEM**: an item-level share (that is, the specific object to which the share applies is shared with
                the user or group).
              * **WORKSPACE**: a workspace-level share (that is, the workspace that contains the object to which the
                share applies is shared with the user or group).
          type: string
        subject:
          description: >
            The subject of the email that is optionally sent to notify the
            recipient. You can specify this attribute

            in a request, but it is never present in a response.
          type: string
    SharedSecret:
      type: object
      properties:
        sharedSecret:
          description: Value for the shared secret.
          type: string
    Sheet:
      type: object
      x-tags:
        - sheets
      properties:
        id:
          description: Sheet Id.
          type: number
        fromId:
          description: >-
            The Id of the template from which to create the sheet. This
            attribute can be specified in a request, but is never present in a
            response.
          type: number
        ownerId:
          description: User Id of the sheet owner.
          type: number
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        attachments:
          description: >
            Array of Attachment objects.

            Only returned if the
            [include](/api/smartsheet/openapi/sheets/getsheet) query string
            parameter contains **attachments**.
          type: array
          items:
            $ref: '#/components/schemas/Attachment'
        cellImageUploadEnabled:
          description: |
            The sheet is enabled for cell images to be uploaded.
          type: boolean
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        crossSheetReferences:
          description: >
            Array of CrossSheetReference objects.

            Only returned if the
            [include](/api/smartsheet/openapi/sheets/getsheet) query string
            parameter contains **crossSheetReferences**.
          type: array
          items:
            $ref: '#/components/schemas/CrossSheetReference'
        dependenciesEnabled:
          description: Indicates whether dependencies are enabled.
          type: boolean
        discussions:
          description: >
            Array of Discussion objects

            Only returned if the
            [include](/api/smartsheet/openapi/sheets/getsheet) query string
            parameter contains **discussions**.
          type: array
          items:
            $ref: '#/components/schemas/Discussion'
        effectiveAttachmentOptions:
          description: >
            Array of enum strings (see
            [Attachment.attachmentType](/api/smartsheet/openapi/attachments)
            indicating the allowable attachment options for the current user and
            sheet.
          type: array
          items:
            type: string
        favorite:
          description: >-
            (Deprecated) Returned only if the user has marked this sheet as a
            favorite in their Home tab (value = **true**).
          type: boolean
        ganttEnabled:
          description: Indicates whether "Gantt View" is enabled.
          type: boolean
        hasSummaryFields:
          description: Indicates whether a sheet summary is present.
          type: boolean
        isMultiPicklistEnabled:
          description: Indicates whether multi-select is enabled.
          type: boolean
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        name:
          description: Sheet name.
          type: string
        owner:
          description: Email address of the sheet owner.
          type: string
        permalink:
          description: URL that represents a direct link to the sheet in Smartsheet.
          type: string
        projectSettings:
          $ref: '#/components/schemas/ProjectSettings'
        readOnly:
          description: >-
            Returned only if the sheet belongs to an expired trial (value =
            **true**).
          type: boolean
        resourceManagementEnabled:
          description: Indicates that resource management is enabled.
          type: boolean
        resourceManagementType:
          description: Resource Management type. Indicates the type of RM that is enabled.
          type: string
          enum:
            - NONE
            - LEGACY_RESOURCE_MANAGEMENT
            - RESOURCE_MANAGEMENT_BY_SMARTSHEET
        rows:
          type: array
          items:
            $ref: '#/components/schemas/Row'
        showParentRowsForFilters:
          description: >-
            Returned only if there are column filters on the sheet. Value =
            **true** if "show parent rows" is enabled for the filters.
          type: boolean
        source:
          $ref: '#/components/schemas/Source'
        summary:
          $ref: '#/components/schemas/SheetSummary'
        totalRowCount:
          description: The total number of rows in the sheet.
          type: number
        userPermissions:
          $ref: '#/components/schemas/SheetUserPermissions'
        userSettings:
          $ref: '#/components/schemas/SheetUserSettings'
        version:
          description: A number that is incremented every time a sheet is modified.
          type: number
        workspace:
          $ref: '#/components/schemas/WorkspaceListing'
    SheetEmail:
      allOf:
        - $ref: '#/components/schemas/Email'
      type: object
      x-tags:
        - sendViaEmail
      properties:
        format:
          description: |
            One of the following values: **EXCEL**, **PDF**, or **PDF_GANTT**.
          type: string
        formatDetails:
          $ref: '#/components/schemas/FormatDetails'
    SheetPublish:
      description: Describes the sheet's publish settings.
      type: object
      properties:
        icalEnabled:
          description: If **true**, a webcal is available for the calendar in the sheet.
          type: boolean
        icalUrl:
          description: >
            URL for **iCal** view of the published sheet. Only returned in a
            response if **icalEnabled = true**.
        readOnlyFullAccessibleBy:
          description: >
            Indicates who can access the 'Read-Only Full' view of the published
            sheet:
              * ALL - available to anyone who has the link.
              * ORG - available only to members of the sheet owner's Smartsheet organization account.
              * SHARED - available only to users shared to the item.

            Only returned in the response if **readOnlyFullEnabled = true**.
          type: string
          enum:
            - ALL
            - ORG
            - SHARED
        readOnlyFullDefaultView:
          description: >
            Indicates which view the user has set for a read-only, default view
            of the published sheet. Must be one of the listed enum values.
          type: string
          enum:
            - CALENDAR
            - CARD
            - GRID
        readOnlyFullEnabled:
          description: >-
            If **true**, a rich version of the sheet is published with the
            ability to download row attachments and discussions.
          type: boolean
        readOnlyFullShowToolbar:
          description: >-
            Indicates whether the left nav toolbar is displayed. The default, or
            **true**, is to display the toolbar. If **false**, hides the
            toolbar.
          type: boolean
          deprecated: true
        readOnlyFullUrl:
          description: >-
            URL for 'Read-Only Full' view of the published sheet. Only returned
            in a response if **readOnlyFullEnabled = true.
          type: string
        readOnlyLiteEnabled:
          description: >-
            If **true**, a lightweight version of the sheet is published without
            row attachments and discussions.
          type: boolean
        readOnlyLiteSslUrl:
          description: URL for 'Read-Only' view of the published sheet when SSL is enabled.
          type: string
        readOnlyLiteUrl:
          description: >-
            URL for 'Read-Only HTML' view of the published sheet. Only returned
            in a response if **readOnlyLiteEnabled = true**.
          type: string
        readWriteAccessibleBy:
          description: >
            Indicates who can access the 'Edit by Anyone' view of the published
            sheet:
              * ALL - available to anyone who has the link.
              * ORG - available only to members of the sheet owner's Smartsheet organization account.
              * SHARED - available only to users shared to the item.

            Only returned in the response if **readWriteEnabled = true**.
          type: string
          enum:
            - ALL
            - ORG
            - SHARED
        readWriteDefaultView:
          description: >
            Indicates which view the user has set for a read-write, default view
            of the published sheet. Must be one of the listed enum values.
          type: string
          enum:
            - CALENDAR
            - CARD
            - GRID
        readWriteEnabled:
          description: >-
            If **true**,a rich version of the sheet is published with the
            ability to edit cells and manage attachments and discussions.
          type: boolean
        readWriteShowToolbar:
          description: >-
            Indicates whether the left nav toolbar is displayed. The default, or
            **true**, is to display the toolbar. If **false**, hides the
            toolbar.
          type: boolean
          deprecated: true
        readWriteUrl:
          description: >-
            URL for 'Edit by Anyone' view of the published sheet. Only returned
            in a response if **readWriteEnabled = true**.
          type: string
    SheetSummary:
      type: object
      x-tags:
        - sheetSummary
      description: >-
        Represents the entire summary, or a list of defined fields and values,
        for a specific sheet.
      properties:
        fields:
          description: Array of summary (or metadata) fields defined on the sheet.
          type: array
          items:
            $ref: '#/components/schemas/SummaryField'
    SheetUserPermissions:
      type: object
      description: Describes the current user's editing permissions for a specific sheet.
      properties:
        summaryPermissions:
          description: |
            One of:
              * ADMIN: full control over fields.
              * READ_DELETE: sheet is owned by an individual account that doesn't have summary capabilities. If a summary exists, the only possible operations are GET and DELETE fields.
              * READ_ONLY.
              * READ_WRITE: can edit values of existing fields, but not create or delete fields, nor modify field type.
          type: string
          enum:
            - ADMIN
            - READ_DELETE
            - READ_ONLY
            - READ_WRITE
    SheetUserSettings:
      type: object
      description: >-
        Represents individual user settings for a specific sheet. User settings
        may be updated even on sheets where the current user only has read
        access (for example, viewer permissions or a read-only sheet).
      properties:
        criticalPathEnabled:
          description: >
            Does this user have "Show Critical Path" turned on for this sheet?
            **NOTE**: This setting only has an effect on project sheets with
            dependencies enabled.
          type: boolean
        displaySummaryTasks:
          description: >-
            Does this user have "Display Summary Tasks" turned on for this
            sheet? Applies only to sheets where "Calendar View" has been
            configured.
          type: boolean
    ShortcutDataItem:
      type: object
      properties:
        attachmentType:
          type: string
          enum:
            - BOX_COM
            - DROPBOX
            - EGNYTE
            - EVERNOTE
            - FILE
            - GOOGLE_DRIVE
            - LINK
            - ONEDRIVE
            - SMARTSHEET
        hyperlink:
          $ref: '#/components/schemas/Hyperlink'
        label:
          description: Label for the data point.
          type: string
        labelFormat:
          description: Format description of label.
          type: string
          example: ',,1,1,,,,,,,,,,,,,'
        labelFont:
          $ref: '#/components/schemas/DashboardFont'
        mimeType:
          type: string
        order:
          description: The display order for the ShortcutWidgetItem object.
          type: number
    ShortcutWidgetContent:
      type: object
      title: Shortcut
      properties:
        type:
          type: string
          enum:
            - SHORTCUT
            - SHORTCUTICON
            - SHORTCUTLIST
        shortcutData:
          type: array
          items:
            $ref: '#/components/schemas/ShortcutDataItem'
    Sight:
      type: object
      x-tags:
        - dashboards
      allOf:
        - $ref: '#/components/schemas/SightListItem'
      properties:
        backgroundColor:
          description: The hex color, for instance `#E6F5FE`.
          type: string
          readOnly: true
        defaultWidgetBackgroundColor:
          description: >-
            The hex color of the background color for all widgets except for
            title widgets on the dashboard, for instance `#E6F5FEF4` or
            `#E6F5FE`.
          type: string
          readOnly: true
        columnCount:
          description: Number of columns that the dashboard contains.
          type: number
          readOnly: true
        favorite:
          description: >-
            (Deprecated) Indicates whether the user has marked the dashboard as
            a favorite.
          type: boolean
          readOnly: true
        source:
          $ref: '#/components/schemas/Source'
        widgets:
          readOnly: true
          type: array
          items:
            $ref: '#/components/schemas/Widget'
        workspace:
          $ref: '#/components/schemas/WorkspaceListing'
    SightPublish:
      description: Describes the dashboard's publish settings.
      type: object
      x-tags:
        - dashboards
      properties:
        readOnlyFullAccessibleBy:
          description: >
            Indicates who can access the 'Read-Only Full' view of the published
            dashboard. Only returned in the response if **readOnlyFullEnabled =
            true**.
              * **ALL** - available to anyone who has the link.
              * **ORG** - available only to members of the dashboard owner's Smartsheet organization account.
              * **SHARED** - available only to users shared to the item.

            ---

            If **readOnlyFullEnabled** is set to true in the request, but
            **readOnlyFullAccessibleBy** is not specified, the value of
            **readOnlyFullAccessibleBy** defaults to the organization-level
            'Dashboard Publishing' setting (if the dashboard owner belongs to an
            organization account) or to **ALL** (if the dashboard owner does not
            belong to an organization account).
          type: string
          enum:
            - ALL
            - ORG
        readOnlyFullEnabled:
          description: >-
            If true, a rich version of the dashboard is published with the
            ability to use shortcuts and widget interactions.
          type: boolean
        readOnlyFullUrl:
          description: >-
            URL for 'Read-Only Full' view of the published dashboard. Only
            returned in a response if readOnlyFullEnabled = true.
          type: string
          readOnly: true
      required:
        - readOnlyFullEnabled
    SortCriterion:
      type: object
      properties:
        columnId:
          type: number
        direction:
          description: Direction of the sort.
          type: string
          enum:
            - ASCENDING
            - DESCENDING
          default: ASCENDING
    SortSpecifier:
      type: object
      properties:
        sortCriteria:
          description: Specifies sort order. Array is in priority order.
          type: array
          items:
            $ref: '#/components/schemas/SortCriterion'
    Source:
      type: object
      properties:
        id:
          description: >
            The Id of the dashboard, report, sheet, or template from which the
            enclosing dashboard, report, sheet, or template was created.
          type: number
        type:
          description: |
            **report**, **sheet**, **sight** (aka dashboard), or **template**.
          type: string
    StreamResult:
      description: StreamResult Object
      type: object
      x-tags:
        - events
      properties:
        nextStreamPosition:
          description: >-
            This string should be passed back to the next GET events call to
            obtain subsequent events.
          type: string
          example: XyzAb1234cdefghijklmnofpq
        moreAvailable:
          description: >-
            True if more results are available. This is typically due to event
            counts exceeding the maxCount parameter passed in.
          type: boolean
          example: true
    Subscope:
      description: >-
        An object that contains an array of column Ids if you want to limit the
        subscription to a subscope. Specified when a webhook is created and
        cannot be changed.
      type: object
      properties:
        columnIds:
          description: A column Id or Ids
          type: array
          items:
            type: number
          example:
            - 7318427511613316
            - 7318427511613123
    SummaryField:
      type: object
      x-tags:
        - sheetSummary
      properties:
        id:
          description: SummaryField Id.
          type: number
        contactOptions:
          description: >-
            Array of ContactOption objects to specify a pre-defined list of
            values for the column. Column type must be CONTACT_LIST.
          type: array
          items:
            $ref: '#/components/schemas/ContactOption'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        createdBy:
          description: >-
            User object containing name and email of the creator of this summary
            field.
          type: object
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        displayValue:
          description: >-
            Visual representation of cell contents, as presented to the user in
            the UI.
          type: string
        format:
          description: >-
            The format descriptor. Only returned if the include query string
            parameter contains format and this column has a non-default format
            applied to it.
          type: string
        formula:
          description: The formula for a cell, if set.
          type: string
        hyperlink:
          $ref: '#/components/schemas/Hyperlink'
        image:
          $ref: '#/components/schemas/Image'
        index:
          description: Field index or position. This number is zero-based.
          type: number
        locked:
          description: Indicates whether the field is locked.
          type: boolean
        lockedForUser:
          description: Indicates whether the field is locked for the requesting user.
          type: boolean
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedBy:
          description: >-
            User object containing name and email of the user who most recently
            modified this summary field.
          type: object
          allOf:
            - $ref: '#/components/schemas/MiniUser'
        objectValue:
          $ref: '#/components/schemas/ObjectValue'
        options:
          description: >-
            When applicable for PICKLIST column type. Array of the options
            available for the field.
          type: array
          items:
            type: string
        symbol:
          description: When applicable for PICKLIST column type.
          type: string
        title:
          description: Arbitrary name, must be unique within summary.
          type: string
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
        validation:
          description: Indicates whether summary field values are restricted to the type.
          type: boolean
    Template:
      description: A template can be used to create a sheet.
      type: object
      x-tags:
        - templates
      properties:
        id:
          description: Template Id.
          type: number
        type:
          description: Type of template. Only applicable to public templates.
          type: string
          enum:
            - report
            - sheet
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        blank:
          description: >-
            Indicates whether the template is blank. Only applicable to public
            templates.
          type: boolean
        categories:
          description: >-
            Indicates whether the template is blank. Only applicable to public
            templates.
          type: array
          items:
            type: string
        description:
          description: Template description.
          type: string
        globalTemplate:
          description: Type of global template. Only applicable to blank public templates.
          type: string
          enum:
            - BLANK_SHEET
            - PROJECT_SHEET
            - TASK_LIST
        image:
          description: >-
            URL to the small preview image for this template. Only applicable to
            non-blank public templates.
          type: string
        largeImage:
          description: >-
            URL to the large preview image for this template. Only applicable to
            non-blank public templates.
          type: string
        locale:
          description: Locale of the template. Only applicable to public templates.
          type: string
          enum:
            - ar_AE
            - ar_BH
            - ar_DZ
            - ar_EG
            - ar_IQ
            - ar_JO
            - ar_KW
            - ar_LB
            - ar_LY
            - ar_MA
            - ar_OM
            - ar_QA
            - ar_SA
            - ar_SD
            - ar_SY
            - ar_TN
            - ar_YE
            - be_BY
            - bg_BG
            - ca_ES
            - cs_CZ
            - da_DK
            - de_AT
            - de_CH
            - de_DE
            - de_LU
            - el_CY
            - el_GR
            - en_AU
            - en_CA
            - en_GB
            - en_IE
            - en_IN
            - en_MT
            - en_NZ
            - en_PH
            - en_SG
            - en_US
            - en_ZA
            - es_AR
            - es_BO
            - es_CL
            - es_CO
            - es_CR
            - es_DO
            - es_EC
            - es_ES
            - es_GT
            - es_HN
            - es_MX
            - es_NI
            - es_PA
            - es_PE
            - es_PR
            - es_PY
            - es_SV
            - es_US
            - es_UY
            - es_VE
            - et_EE
            - fi_FI
            - fr_BE
            - fr_CA
            - fr_CH
            - fr_FR
            - fr_LU
            - ga_IE
            - hi_US
            - hr_HR
            - hu_HU
            - in_ID
            - is_IS
            - it_CH
            - it_IT
            - iw_IL
            - ja_JP
            - ko_KR
            - lt_LT
            - lv_LV
            - mk_MK
            - ms_MY
            - mt_MT
            - nl_BE
            - nl_NL
            - no_NO
            - pl_PL
            - pt_BR
            - pt_PT
            - ro_RO
            - ru_RU
            - sk_SK
            - sl_SI
            - sq_AL
            - sr_BA
            - sr_CS
            - sv_SE
            - th_US
            - tr_TR
            - uk_UA
            - vi_VN
            - zh_CN
            - zh_HK
            - zh_SG
            - zh_TW
        name:
          type: string
          description: Type of global template.
          example: Awesome Project Template
        tags:
          description: >-
            List of search tags for this template. Only applicable to non-blank
            public templates.
          type: array
          items:
            type: string
    Timestamp:
      oneOf:
        - $ref: '#/components/schemas/Timestamp_date-time'
        - $ref: '#/components/schemas/Timestamp_number'
      readOnly: true
    TitleWidgetContent:
      type: object
      title: Title
      properties:
        type:
          type: string
          enum:
            - RICHTEXT
        backgroundColor:
          type: string
        htmlContent:
          type: string
          description: >
            The widget contents as HTML. The Title widget supports the following
            subset of HTML tags and CSS Styles:


            HTML
              * br - line break
              * p - paragraph
              * span - section of the document

            CSS
              * color
              * font-family
              * font-size
              * font-style
              * font-weight
              * text-align
              * text-decoration
          example: <p style="text-align:center"><span class="clsDbFt">HI!</span></p>
    Token:
      type: object
      x-tags:
        - tokens
      properties:
        access_token:
          description: >-
            A credential that can be used by a client to access the Smartsheet
            API.
          type: string
          readOnly: true
        token_type:
          description: >-
            How an access token will be generated and presented. Smartsheet uses
            the bearer parameter, which means essentially give access to the
            bearer of this token.
          type: string
          readOnly: true
        expires_in:
          description: Number of seconds token is valid once issued.
          type: number
          default: 604799
          readOnly: true
        refresh_token:
          description: >-
            A credential tied to the access token that can be used to obtain a
            fresh access token with the same permissions, without further
            involvement from a user.
          type: string
          readOnly: true
    UpdateProofStatusRequest:
      type: object
      properties:
        isCompleted:
          type: boolean
    UpdateRequest:
      type: object
      x-tags:
        - updateRequests
      allOf:
        - $ref: '#/components/schemas/MultiRowEmail'
        - type: object
          properties:
            id:
              description: Id of the update request.
              type: number
            createdAt:
              description: >-
                The date and time for when this request was originally created.
                Read-only.
              allOf:
                - $ref: '#/components/schemas/Timestamp'
            modifiedAt:
              description: >-
                The date and time for when the last change was made to this
                request. Read-only.
              allOf:
                - $ref: '#/components/schemas/Timestamp'
            schedule:
              description: The schedule for which update requests are sent out.
              allOf:
                - $ref: '#/components/schemas/Schedule'
            sentBy:
              description: |
                `User` object containing `name` and `email` of the sender.
              allOf:
                - $ref: '#/components/schemas/MiniUser'
    URLAttachmentRequest:
      type: object
      x-tags:
        - attachments
      properties:
        attachmentSubType:
          description: >-
            Attachment sub type. Note--Folder type is for EGNYTE values and the
            rest are GOOGLE_DRIVE values.
          type: string
          enum:
            - DOCUMENT
            - DRAWING
            - FOLDER
            - PDF
            - PRESENTATION
            - SPREADSHEET
        attachmentType:
          description: >-
            Attachment type. Note--Dropbox, Egnyte, and Evernote are not
            supported for Smartsheet.gov accounts.
          type: string
          enum:
            - BOX_COM
            - DROPBOX
            - EGNYTE
            - EVERNOTE
            - FILE
            - GOOGLE_DRIVE
            - LINK
            - ONEDRIVE
            - TRELLO
        description:
          type: string
        name:
          type: string
        url:
          type: string
    User:
      description: User Object
      type: object
      x-tags:
        - users
      properties:
        id:
          description: User Id.
          type: number
          readOnly: true
          example: 48569348493401200
        admin:
          description: >-
            Indicates whether the user is a system admin (can manage user
            accounts and organization account).
          type: boolean
          default: false
          example: true
        customWelcomeScreenViewed:
          description: >-
            Timestamp of viewing an <a
            href="https://help.smartsheet.com/articles/1392225-customizing-a-welcome-message-upgrade-screen-enterprise-only"
            target="_blank" rel="noopener noreferrer">Enterprise Custom Welcome
            Screen</a> by the current user.
          type: string
          format: date-time
          readOnly: true
          example: '2020-08-25T12:15:47Z'
        email:
          description: User's primary email address.
          type: string
          format: email
          example: jane.doe@smartsheet.com
        firstName:
          description: User's first name.
          type: string
          example: Jane
        groupAdmin:
          description: >-
            Indicates whether the user is a group admin (can create and edit
            groups).
          type: boolean
          default: false
          example: true
        lastLogin:
          description: Last login time of the current user.
          type: string
          format: date-time
          readOnly: true
          example: '2020-10-04T18:32:47Z'
        lastName:
          description: User's last name.
          type: string
          example: Doe
        licensedSheetCreator:
          description: >-
            Indicates whether the user is a licensed user (can create and own
            sheets).
          type: boolean
          default: false
          example: true
        name:
          description: User's full name (read-only).
          type: string
          readOnly: true
          example: Jane Doe
        profileImage:
          $ref: '#/components/schemas/ProfileImage'
        resourceViewer:
          description: >-
            Indicates whether the user is a resource viewer (can access resource
            views).
          type: boolean
          default: false
          example: true
        sheetCount:
          description: >-
            The number of sheets owned by the current user within the
            organization account.
          type: number
          readOnly: true
          example: 42
        status:
          description: User status, set to one of the listed enum values.
          type: string
          enum:
            - ACTIVE
            - DECLINED
            - PENDING
            - DEACTIVATED
          example: ACTIVE
    UserProfile:
      type: object
      x-tags:
        - users
      properties:
        id:
          description: Current user's Id.
          type: number
          example: 48569348493401200
        account:
          $ref: '#/components/schemas/Account'
        admin:
          description: >-
            Indicates whether the user is a system admin (can manage user
            accounts and organization account).
          type: boolean
          example: true
        alternateEmails:
          $ref: '#/components/schemas/AlternateEmail'
        company:
          description: User's company.
          type: string
          example: Smartsheet
        customWelcomeScreenViewed:
          description: >-
            Timestamp of viewing an <a
            href="https://help.smartsheet.com/articles/1392225-customizing-a-welcome-message-upgrade-screen-enterprise-only"
            target="_blank" rel="noopener noreferrer">Enterprise Custom Welcome
            Screen</a> by the current user.
          type: string
          format: date-time
          example: '2020-08-25T12:15:47Z'
        department:
          description: User's department.
          type: string
          example: Engineering
        email:
          description: Current user's primary email address.
          type: string
          example: john.doe@smartsheet.com
        firstName:
          description: Current user's first name.
          type: string
          example: John
        groupAdmin:
          description: >-
            Indicates whether the user is a group admin (can create and edit
            groups).
          type: boolean
          example: true
        jiraAdmin:
          description: Indicates whether the user is a JIRA admin.
          type: boolean
          example: true
        lastLogin:
          description: Last login time of the current user.
          type: string
          format: date-time
          example: '2020-10-31T12:15:47Z'
        lastName:
          description: Current user's last name.
          type: string
          example: Doe
        licensedSheetCreator:
          description: >-
            Indicates whether the user is a licensed user (can create and own
            sheets).
          type: boolean
          example: true
        locale:
          description: >-
            Current user's locale (see
            [ServerInfo](/api/smartsheet/openapi/serverinfo/serverinfo)).
          type: string
          example: en_US
        mobilePhone:
          description: User's mobile phone number.
          type: string
          example: 555-867-5309
        profileImage:
          $ref: '#/components/schemas/ProfileImage'
        resourceViewer:
          description: >-
            Indicates whether the user is a resource viewer (can access resource
            views).
          type: boolean
          example: true
        role:
          description: User's role.
          type: string
          example: Software Developer
        salesforceAdmin:
          description: Indicates whether the user is a Salesforce admin.
          type: boolean
          example: false
        salesforceUser:
          description: Indicates whether the user is a registered Salesforce user.
          type: boolean
          example: false
        sheetCount:
          description: >-
            Typically, the number of sheets owned by the current user within the
            organization account. For GET /users/me, this returns a static '0'.
          type: number
          example: 0
        timeZone:
          description: Current user's time zone Id.
          type: string
          example: US/Pacific
        title:
          description: User's title.
          type: string
          example: Senior Software Engineer
        workPhone:
          description: User's work phone number.
          type: string
          example: 844-324-2360
    WebContentWidgetContent:
      type: object
      title: Web Content
      properties:
        type:
          type: string
          enum:
            - WidgetWebContent
        url:
          description: The URL for the web content.
          type: string
          example: https://www.youtube.com/embed/quGpnXiCUms
    Webhook:
      allOf:
        - $ref: '#/components/schemas/Update_Webhook_Request'
        - type: object
          properties:
            id:
              description: Webhook Id.
              type: number
              readOnly: true
              example: 8444254503626628
            apiClientId:
              type: string
              description: >-
                API client Id corresponding to third-party app that created the
                webhook. Read-only. Only present if webhook was created by
                third-party app.
              readOnly: true
              example: '555555'
            scopeObjectId:
              type: number
              description: >-
                Id of the object that is subscribed to. Specified when a webhook
                is created and cannot be changed.
              example: 3285357287499652
            apiClientName:
              type: string
              description: >-
                API client name corresponding to third-party app that created
                the webhook. Read-only. Only present if webhook was created by
                third-party app.
              readOnly: true
              example: Awesome Smartsheet Application
            createdAt:
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/Timestamp'
            disabledDetails:
              description: >-
                Details about the reason the webhook was disabled. Read-only.
                Only present when enabled=false.
              type: string
              readOnly: true
            modifiedAt:
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/Timestamp'
            scope:
              description: >-
                Scope of the subscription. Currently, the only supported value
                is sheet. Specified when a webhook is created and cannot be
                changed.
              type: string
              example: sheet
            sharedSecret:
              description: >-
                Shared secret for this Webhook, randomly generated by
                Smartsheet. Read-only. See [Authenticating
                Callbacks](/api/smartsheet/openapi/webhooks) for details about
                how this value can be used.
              type: string
              readOnly: true
              example: 216ejjzdnq17mq1q8xs7d4hu8b
            stats:
              type: object
              readOnly: true
              properties:
                lastCallbackAttempt:
                  type: string
                  format: date-time
                  readOnly: true
                  description: When this webhook last made a callback attempt.
                lastCallbackAttemptRetryCount:
                  type: number
                  readOnly: true
                  description: >-
                    The number of retries the webhook had performed as of the
                    last callback attempt.
                lastSuccessfulCallback:
                  type: string
                  format: date-time
                  readOnly: true
                  description: When this webhook last made a successful callback.
            status:
              description: >-
                Webhook status. Read-only. See Webhook Status for list of
                possible values.
              type: string
              readOnly: true
              enum:
                - DISABLED_ADMINISTRATIVE
                - DISABLED_APP_REVOKED
                - DISABLED_BY_OWNER
                - DISABLED_CALLBACK_FAILED
                - DISABLED_SCOPE_INACCESSIBLE
                - DISABLED_VERIFICATION_FAILED
                - ENABLED
                - NEW_NOT_VERIFIED
              example: ENABLED
            subscope:
              $ref: '#/components/schemas/Subscope'
      x-tags:
        - webhooks
    Widget:
      type: object
      x-tags:
        - dashboards
      readOnly: true
      properties:
        id:
          description: Widget Id.
          type: number
        type:
          description: Type of widget.
          type: string
          enum:
            - CHART
            - GRIDGANTT
            - IMAGE
            - METRIC
            - RICHTEXT
            - SHEETSUMMARY
            - SHORTCUT
            - SHORTCUTICON
            - SHORTCUTLIST
            - TITLE
            - WEBCONTENT
        contents:
          description: The type of widget content depends on the value of widget.type.
          oneOf:
            - $ref: '#/components/schemas/ChartWidgetContent'
            - $ref: '#/components/schemas/CellLinkWidgetContent'
            - $ref: '#/components/schemas/ImageWidgetContent'
            - $ref: '#/components/schemas/ReportWidgetContent'
            - $ref: '#/components/schemas/RichTextWidgetContent'
            - $ref: '#/components/schemas/ShortcutWidgetContent'
            - $ref: '#/components/schemas/TitleWidgetContent'
            - $ref: '#/components/schemas/WebContentWidgetContent'
        height:
          description: Number of rows that the widget occupies on the dashboard.
          type: number
        showTitle:
          description: >-
            True indicates that the client should display the widget title. This
            is independent of the title string which may be null or empty.
          type: boolean
        showTitleIcon:
          description: >-
            True indicates that the client should display the sheet icon in the
            widget title.
          type: boolean
        title:
          description: Title of the widget.
          type: string
        titleFormat:
          description: >-
            Title format descriptor (see [Cell
            formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
          type: string
          example: ',,1,,,,,,,3,,,,,,1,'
        titleFont:
          $ref: '#/components/schemas/DashboardFont'
        version:
          description: Widget version number.
          type: number
        viewMode:
          description: >
            Indicates the content layout. Must use a query parameter of level=2
            to see this information.
             * 1 - centered
             * 2 - left aligned
          type: number
          enum:
            - 1
            - 2
        width:
          description: Number of columns that the widget occupies on the dashboard.
          type: number
        xPosition:
          description: X-coordinate of widget's position on the dashboard.
          type: number
        yPosition:
          description: Y-coordinate of widget's position on the dashboard.
          type: number
    WidgetHyperlink:
      type: object
      properties:
        interactionType:
          description: >
            Specifies what happens when a user clicks the widget. The type will
            determine what other properties are needed.
             * DISTI_COPY - a distribution link, only available if org has distribution links enabled.
             * NONE - do nothing, no other attribute required.
             * SMARTSHEET_ITEM - open a Smartsheet item that is not the SOURCE_SHEET, must also have one of the following attributes:
                * dashboardId
                * folderId
                * reportId
                * sheetId
                * workspaceId
             * SOURCE_SHEET - open the container where the widget data comes from, no other attribute required.
             * WEB -  launch the URL, must also have url attribute.
          type: string
          enum:
            - DISTI_COPY
            - NONE
            - SMARTSHEET_ITEM
            - SOURCE_SHEET
            - WEB
        folderId:
          description: If interactionType = SMARTSHEET_ITEM this is the folder to open.
          type: number
        reportId:
          description: If interactionType = SMARTSHEET_ITEM this is the report to open.
          type: number
        sheetId:
          description: If interactionType = SMARTSHEET_ITEM this is the sheet to open.
          type: number
        sightId:
          description: If interactionType = SMARTSHEET_ITEM this is the dashboard to open.
          type: number
        url:
          description: If interactionType = WEB this is the URL to launch.
          type: string
        workspaceId:
          description: If interactionType = SMARTSHEET_ITEM this is the workspace to open.
          type: number
    Workspace:
      description: Can contain dashboards, folders, reports, sheets, and templates.
      type: object
      x-tags:
        - workspaces
      properties:
        id:
          description: Workspace Id.
          type: number
        name:
          description: Workspace name.
          type: string
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        permalink:
          description: URL that represents a direct link to the workspace in Smartsheet.
          type: string
        folders:
          description: Folders contained in the workspace.
          type: array
          items:
            $ref: '#/components/schemas/Folder'
        reports:
          description: Reports contained in the workspace.
          type: array
          items:
            $ref: '#/components/schemas/GridListing'
        sheets:
          description: Sheets contained in the workspace.
          type: array
          items:
            $ref: '#/components/schemas/GridListing'
        sights:
          description: Dashboards contained in the workspace.
          type: array
          items:
            $ref: '#/components/schemas/DashboardListing'
    Timestamp_date-time:
      type: string
      format: date-time
    Timestamp_number:
      type: number
    GenericResult:
      type: object
      properties:
        message:
          description: >-
            Message that indicates the outcome of the request. (One of SUCCESS
            or PARTIAL_SUCCESS.)
          type: string
          enum:
            - PARTIAL_SUCCESS
            - SUCCESS
          example: SUCCESS
        resultCode:
          description: |-
            * '0' Success
            * '3' Partial Success of Bulk Operation
          type: number
          enum:
            - 0
            - 3
    GridListing:
      type: object
      properties:
        id:
          description: Asset Id.
          type: number
        name:
          description: Asset name.
          type: string
        permalink:
          description: URL that represents a direct link to the asset in Smartsheet.
          type: string
    DashboardListing:
      type: object
      properties:
        id:
          description: Asset Id.
          type: number
        name:
          description: Asset name.
          type: string
        permalink:
          description: URL that represents a direct link to the asset in Smartsheet.
          type: string
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
    ItemResult:
      type: object
      allOf:
        - $ref: '#/components/schemas/GenericResult'
      properties:
        failedItems:
          description: >-
            Array of BulkItemFailure objects which represents the items that
            failed to be added or updated. See [Bulk operations > Partial
            success](/api/smartsheet/guides/advanced-topics/scalability-options)
            for more information. Applicable only for bulk operations that
            support partial success.
          type: array
          items:
            $ref: '#/components/schemas/BulkItemFailure'
          nullable: true
    contactOptions:
      type: array
      items:
        $ref: '#/components/schemas/ContactOption'
      description: >-
        Array of ContactOption objects to specify a pre-defined list of values
        for the column. Column **type** must be **CONTACT_LIST**.
    options:
      type: array
      items:
        type: string
      description: Array of the options available for the column.
    primary:
      type: boolean
      description: Returned only if the column is the Primary Column (value = **true**).
    symbol:
      type: string
      description: >-
        When applicable for **CHECKBOX** or **PICKLIST** column types. See
        [Symbol Columns](/api/smartsheet/openapi/columns).
    systemColumnType:
      type: string
      enum:
        - AUTO_NUMBER
        - CREATED_BY
        - CREATED_DATE
        - MODIFIED_BY
        - MODIFIED_DATE
      description: See [System Columns](/api/smartsheet/openapi/columns).
    title:
      type: string
      description: Column title.
    type:
      type: string
      enum:
        - ABSTRACT_DATETIME
        - CHECKBOX
        - CONTACT_LIST
        - DATE
        - DATETIME
        - DURATION
        - MULTI_CONTACT_LIST
        - MULTI_PICKLIST
        - PICKLIST
        - PREDECESSOR
        - TEXT_NUMBER
      description: See [Column Types](/api/smartsheet/openapi/columns)
    width:
      type: number
      description: Display width of the column in pixels.
    ColumnToCreateASheet:
      type: object
      x-tags:
        - sheets
      properties:
        autoNumberFormat:
          $ref: '#/components/schemas/AutoNumberFormat'
        contactOptions:
          $ref: '#/components/schemas/contactOptions'
        options:
          $ref: '#/components/schemas/options'
        primary:
          $ref: '#/components/schemas/primary'
        symbol:
          $ref: '#/components/schemas/symbol'
        systemColumnType:
          $ref: '#/components/schemas/systemColumnType'
        title:
          $ref: '#/components/schemas/title'
        type:
          $ref: '#/components/schemas/type'
        width:
          $ref: '#/components/schemas/width'
    name:
      description: Sheet name.
      type: string
    SheetToCreate:
      type: object
      x-tags:
        - sheets
      description: Sheet to create from scratch using the specified columns.
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/ColumnToCreateASheet'
        name:
          $ref: '#/components/schemas/name'
    SheetToCreateFromTemplate:
      type: object
      description: Sheet to create from template.
      properties:
        fromId:
          description: Template Id from which to create the sheet.
          type: number
        name:
          $ref: '#/components/schemas/name'
    columns:
      type: array
      items:
        $ref: '#/components/schemas/Column'
    id:
      description: Sheet Id.
      type: number
    permalink:
      description: URL that represents a direct link to the sheet in Smartsheet.
      type: string
    SheetCreated:
      type: object
      description: Sheet created from scratch using the specified columns.
      properties:
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        columns:
          $ref: '#/components/schemas/columns'
        id:
          $ref: '#/components/schemas/id'
        name:
          $ref: '#/components/schemas/name'
        permalink:
          $ref: '#/components/schemas/permalink'
    SheetCreatedFromTemplate:
      type: object
      description: Sheet created from template.
      properties:
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        id:
          $ref: '#/components/schemas/id'
        name:
          $ref: '#/components/schemas/name'
        permalink:
          $ref: '#/components/schemas/permalink'
    SheetImported:
      type: object
      description: Sheet imported from CSV / XLSX file.
      properties:
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        id:
          $ref: '#/components/schemas/id'
        name:
          $ref: '#/components/schemas/name'
        type:
          description: Container type. Has 'sheet' value for the imported sheet.
          type: string
        permalink:
          $ref: '#/components/schemas/permalink'
    AbstractDatetimeObjectValue:
      description: Object representing a calculated datetime
      type: object
      title: AbstractDatetimeObjectValue
      properties:
        objectType:
          type: string
          enum:
            - ABSTRACT_DATETIME
        value:
          description: >-
            Datetime, in the **date-time** format defined by <a
            href="https://tools.ietf.org/html/rfc3339#section-5.6"
            target="_blank" rel="noopener noreferrer">RFC 3339, section 5.6</a>
          type: string
          format: date-time
      example:
        objectType: ABSTRACT_DATETIME
        value: '2025-03-03T16:59:59'
    CheckboxObjectValue:
      description: Object representing a checkbox
      type: object
      title: CheckboxObjectValue
      properties:
        objectType:
          type: string
          enum:
            - CHECKBOX
        value:
          description: true if checked; false otherwise
          type: boolean
      example:
        objectType: CHECKBOX
        value: true
    ContactObjectValue:
      description: Object containing a Contact
      type: object
      title: ContactObjectValue
      properties:
        objectType:
          type: string
          enum:
            - CONTACT
        email:
          description: Email address of the Contact
          type: string
          format: email
          example: john.doe@acme.com
        name:
          description: Name of the Contact
          type: string
          example: John Doe
        imageId:
          description: ID of an image associated with the Contact
          type: string
          example: 1234!_qwer!_5667zxcvQWER!_ASDF
    DateObjectValue:
      description: Object representing a date
      type: object
      title: DateObjectValue
      properties:
        objectType:
          type: string
          enum:
            - DATE
        value:
          description: >-
            Date in the **full-date** format defined by
            [(https://tools.ietf.org/html/rfc3339#section-5.6" target="_blank"
            rel="noopener noreferrer">RFC 3339, section 5.6]</a>
          type: string
          format: date
      example:
        objectType: DATE
        value: '2025-01-14'
    DatetimeObjectValue:
      description: Object representing a datetime
      type: object
      title: DatetimeObjectValue
      properties:
        objectType:
          type: string
          enum:
            - DATETIME
        value:
          description: >-
            Datetime, in the **date-time** format defined by <a
            href="https://tools.ietf.org/html/rfc3339#section-5.6"
            target="_blank" rel="noopener noreferrer">RFC 3339, section 5.6</a>
          type: string
          format: date-time
      example:
        objectType: DATETIME
        value: '2025-03-03T16:59:59'
    DurationObjectValue:
      description: Object representing a duration in days
      type: object
      title: DurationObjectValue
      properties:
        objectType:
          type: string
          enum:
            - DURATION
        days:
          description: Number of days
          type: number
          format: float
      example:
        objectType: DURATION
        days: 29
    MultiContactObjectValue:
      description: Object containing a list of Contacts
      type: object
      title: MultiContactObjectValue
      properties:
        objectType:
          type: string
          enum:
            - MULTI_CONTACT
        value:
          description: List of Contacts
          type: array
          items:
            $ref: '#/components/schemas/ContactObjectValue'
    MultiPicklistObjectValue:
      description: Object containing a list of strings to choose from
      type: object
      title: MultiPicklistObjectValue
      properties:
        objectType:
          type: string
          enum:
            - MULTI_PICKLIST
        value:
          description: List of strings to choose from
          type: array
          items:
            type: string
      example:
        objectType: MULTI_PICKLIST
        values:
          - foo bar
          - baz biff
    WorkspaceListing:
      type: object
      properties:
        id:
          description: Workspace Id.
          type: number
        name:
          description: Workspace name.
          type: string
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        permalink:
          description: URL that represents a direct link to the workspace in Smartsheet.
          type: string
    SightName:
      type: object
      properties:
        name:
          description: Dashboard name.
          type: string
    SightResult:
      type: object
      allOf:
        - $ref: '#/components/schemas/SightName'
      properties:
        id:
          description: Dashboard Id.
          type: number
          readOnly: true
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        permalink:
          description: URL that represents a direct link to the dashboard in Smartsheet.
          type: string
          readOnly: true
    SightListItem:
      type: object
      allOf:
        - $ref: '#/components/schemas/SightResult'
      properties:
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
    ChartColumnInfo:
      type: object
      properties:
        type:
          type: string
          enum:
            - ABSTRACT_DATE_TIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATE_TIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
    DashboardFont:
      description: List of supported fonts in Dashboards
      type: string
      enum:
        - Arial
        - Courier
        - Georgia
        - Gill Sans
        - Helvetica
        - Luminari
        - Monaco
        - Tahoma
        - Times New Roman
        - Verdana
    Axes:
      type: object
      properties:
        location:
          description: Describes location of the axis.
          type: string
          enum:
            - BOTTOM
            - LEFT
            - NONE
            - RIGHT
            - TOP
        title:
          description: Axis title.
          type: string
        titleInfo:
          $ref: '#/components/schemas/ChartColumnInfo'
        axisTitleFont:
          $ref: '#/components/schemas/DashboardFont'
        axisLabelFormat:
          description: >-
            Describes the axis format (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
          type: string
          example: ',,,,,,,,36,,,,,,,,'
        axisLabelFont:
          $ref: '#/components/schemas/DashboardFont'
        includeZero:
          description: Includes 0 in the axis.
          type: boolean
    Legend:
      type: object
      properties:
        location:
          type: string
          enum:
            - BOTTOM
            - LEFT
            - NONE
            - RIGHT
            - TOP
        legendFormat:
          type: string
          description: >-
            The format descriptor (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the legend has a non-default format applied to it.
          example: ',,1,1,,,,,,,,,,,,,'
        legendFont:
          $ref: '#/components/schemas/DashboardFont'
    WidgetChartDataLabel:
      type: object
      properties:
        labelType:
          type: string
          enum:
            - NONE
            - PERCENT
            - VALUE
    ChartTooltipStyle:
      type: object
      properties:
        labelType:
          type: string
          enum:
            - NONE
            - PERCENT
            - X_SERIES_Y
            - X_Y_PERCENT
            - 'Y'
            - Y_PERCENT
    SeriesData:
      type: object
      properties:
        x:
          type: number
        'y':
          type: number
        xFormat:
          type: string
          description: >-
            The format descriptor (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the series has a non-default format applied to it.
          example: ',,1,1,,,,,,,,,,,,,'
        yFormat:
          type: string
          description: >-
            The format descriptor (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the series has a non-default format applied to it.
          example: ',,1,1,,,,,,,,,,,,,'
        color:
          type: string
    Series:
      type: object
      properties:
        title:
          type: string
        titleInfo:
          $ref: '#/components/schemas/ChartColumnInfo'
        seriesTitleFormat:
          type: string
          description: >-
            Series title format (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
        seriesType:
          type: string
          enum:
            - AREA
            - BAR
            - COLUMN
            - LINE
            - PIE
            - SCATTER
        dataLabels:
          $ref: '#/components/schemas/WidgetChartDataLabel'
        tooltips:
          $ref: '#/components/schemas/ChartTooltipStyle'
        lineType:
          type: string
          enum:
            - CURVED
            - STEPPED
            - STRAIGHT
        holeSize:
          type: number
        isFilled:
          type: boolean
        isHalf:
          type: boolean
        isStacked:
          type: boolean
        xFormat:
          type: string
          description: >-
            The format descriptor (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the series has a non-default format applied to it.
          example: ',,1,1,,,,,,,,,,,,,'
        yFormat:
          type: string
          description: >-
            The format descriptor (see
            [Formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the series has a non-default format applied to it.
          example: ',,1,1,,,,,,,,,,,,,'
        color:
          type: string
        axisLocationX:
          type: string
          enum:
            - BOTTOM
            - LEFT
            - NONE
            - RIGHT
            - TOP
        axisLocationY:
          type: string
          enum:
            - BOTTOM
            - LEFT
            - NONE
            - RIGHT
            - TOP
        yColumnInfo:
          $ref: '#/components/schemas/ChartColumnInfo'
        xColumnInfo:
          $ref: '#/components/schemas/ChartColumnInfo'
        seriesSelectionOrder:
          type: string
          enum:
            - COLUMNS
            - ROWS
        seriesData:
          type: array
          items:
            $ref: '#/components/schemas/SeriesData'
        selectionRanges:
          type: array
          items:
            $ref: '#/components/schemas/SelectionRange'
    WidgetChartGridLine:
      type: object
      properties:
        lineStyle:
          type: string
          enum:
            - SOLID
    GroupMemberAdd:
      type: object
      properties:
        email:
          description: Group member's email address.
          type: string
          format: email
          example: john.doe@smartsheet.com
    GroupMembersAddArray:
      type: array
      items:
        $ref: '#/components/schemas/GroupMemberAdd'
    GroupCreate:
      description: Create group request.
      type: object
      properties:
        name:
          description: |
            **name** (required)

            Must be unique within the organization account.
          type: string
          example: API-created group
        description:
          description: |
            **description** (optional)
          type: string
          example: Group created via API
        members:
          $ref: '#/components/schemas/GroupMembersAddArray'
    GroupUpdate:
      description: Updates group properties, including name, description, and owner.
      type: object
      properties:
        name:
          description: |
            name (Optional)

            Must be unique within the organization account.
          type: string
          example: Renamed group
        description:
          description: Description (optional).
          type: string
          example: Some new description
        ownerId:
          description: |
            ownerId (optional)

            Id of an admin user to whom the group ownership is transferred.
          type: number
          example: 94094820842
    Recipient_Individual:
      type: object
      description: >
        Specifies the recipient of an [Email]($ref:
        'Email.yaml#/components/schemas/Email'). The recipient may be either an
        individual or a group. To specify an individual, set the **email**
        attribute; to specify a group, set the **groupId** attribute. Either
        **email** and **groupId** may be set, but not both.
      properties:
        email:
          description: The email address of an individual recipient.
          type: string
          format: email
          example: john.doe@smartsheet.com
    Recipient_Group:
      type: object
      description: >
        Specifies the recipient of an [Email]($ref:
        'Email.yaml#/components/schemas/Email'). The recipient may be either an
        individual or a group. To specify an individual, set the **email**
        attribute; to specify a group, set the **groupId** attribute. Either
        **email** and **groupId** may be set, but not both.
      properties:
        groupId:
          description: The Id of a group recipient.
          type: number
          example: 2258118617917316
    version:
      description: A number that is incremented every time a sheet is modified.
      type: number
    schemas-Sheet:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/id'
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        name:
          $ref: '#/components/schemas/name'
        permalink:
          $ref: '#/components/schemas/permalink'
        version:
          $ref: '#/components/schemas/version'
        source:
          $ref: '#/components/schemas/Source'
    SheetVersion:
      type: object
      properties:
        version:
          description: A number that represents the current sheet version.
          type: number
    UpdateSheet:
      type: object
      properties:
        name:
          description: Sheet name.
          type: string
        projectSettings:
          $ref: '#/components/schemas/ProjectSettings'
        userSettings:
          $ref: '#/components/schemas/SheetUserSettings'
    SuccessResult:
      type: object
      properties:
        message:
          description: Message that indicates the request was successful.
          type: string
          enum:
            - SUCCESS
          example: SUCCESS
        resultCode:
          description: '* ''0'' Success'
          type: number
          enum:
            - 0
    GetColumn:
      type: object
      properties:
        id:
          type: number
          description: Column Id.
        index:
          type: number
          description: Column index or position. This number is zero-based.
        symbol:
          type: string
          description: >-
            When applicable for **CHECKBOX** or **PICKLIST** column types. See
            [Symbol Columns](/api/smartsheet/openapi/columns).
        title:
          type: string
          description: Column title.
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
          description: See [Column Types](/api/smartsheet/openapi/columns)
        validation:
          type: boolean
          description: >-
            Indicates whether validation has been enabled for the column (value
            = **true**).
    ColumnObjectAttributes:
      type: object
      properties:
        title:
          type: string
          description: Column title.
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
        formula:
          type: string
          description: The formula for a column, if set, for instance **=data@row**.
        hidden:
          type: boolean
          description: Indicates whether the column is hidden.
        index:
          type: number
          description: Column index or position. This number is zero-based.
        autoNumberFormat:
          $ref: '#/components/schemas/AutoNumberFormat'
        contactOptions:
          $ref: '#/components/schemas/ContactOption'
        description:
          type: string
          description: Column description.
        format:
          type: string
          description: >-
            The format descriptor (see [Cell
            formatting](/api/smartsheet/guides/advanced-topics/cell-formatting)).
            Only returned if the **include** query string parameter contains
            **format** and this column has a non-default format applied to it.
        locked:
          type: boolean
          description: >-
            Indicates whether the column is locked. In a response, a value of
            **true** indicates that the column has been locked by the sheet
            owner or the admin.
        lockedForUser:
          type: boolean
          description: >-
            Indicates whether the column is locked for the requesting user. This
            attribute may be present in a response, but cannot be specified in a
            request.
        options:
          type: array
          items:
            type: string
            description: Array of the options available for the column.
        symbol:
          type: string
          description: >-
            When applicable for **CHECKBOX** or **PICKLIST** column types. See
            [Symbol Columns](/api/smartsheet/openapi/columns).
        systemColumnType:
          type: string
          enum:
            - AUTO_NUMBER
            - CREATED_BY
            - CREATED_DATE
            - MODIFIED_BY
            - MODIFIED_DATE
          description: See [System Columns](/api/smartsheet/openapi/columns)
        validation:
          type: boolean
          description: >-
            Indicates whether validation has been enabled for the column (value
            = **true**)
        version:
          type: number
          description: >
            Read only. The level of the column type. Each element in the array
            is set to one of the following values:
             * **0**: TEXT_NUMBER, CONTACT_LIST, or PICKLIST
             * **1**: MULTI_CONTACT_LIST
             * **2**: MULTI_PICKLIST

            See [Versioning and
            changes](/api/smartsheet/guides/basics/versioning-and-changes).
        width:
          type: number
          description: Display width of the column in pixels.
    AddColumns:
      type: object
      properties:
        id:
          type: number
          description: Column Id.
        index:
          type: number
          description: Column index or position. This number is zero-based.
        title:
          type: string
          description: Column title.
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
          description: See [Column Types](/api/smartsheet/openapi/columns)
        options:
          type: array
          items:
            type: string
          description: Array of the options available for the column.
        validation:
          type: boolean
          description: >-
            Indicates whether validation has been enabled for the column (value
            = **true**).
        width:
          type: number
          description: Display width of the column in pixels.
    UpdateColumn:
      type: object
      properties:
        id:
          type: number
          description: Column Id.
        index:
          type: number
          description: Column index or position. This number is zero-based.
        options:
          type: array
          items:
            type: string
          description: Array of the options available for the column.
        title:
          type: string
          description: Column title.
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
          description: See [Column Types](/api/smartsheet/openapi/columns)
        validation:
          type: boolean
          description: >-
            Indicates whether validation has been enabled for the column (value
            = **true**).
    CommentCreationRequest:
      type: object
      properties:
        text:
          description: Comment body.
          type: string
    components-schemas-Sheet:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/id'
        accessLevel:
          $ref: '#/components/schemas/AccessLevel'
        name:
          $ref: '#/components/schemas/name'
        permalink:
          $ref: '#/components/schemas/permalink'
    CrossSheetReferenceRequestWithColumnIds:
      type: object
      description: >-
        CrossSheetReference object to create which will refer to the entire
        columns in the range from startColumnId to endColumnId.
      properties:
        sourceSheetId:
          description: Sheet Id of source sheet.
          type: number
        name:
          description: >-
            Friendly name of reference. Auto-generated unless specified in
            Create Cross-sheet References.
          type: string
        endColumnId:
          description: >-
            Defines ending edge of range when specifying one or more columns.
            Must be used with startColumnId.
          type: number
        startColumnId:
          description: >-
            Defines beginning edge of range when specifying one or more columns.
            Must be used with endColumnId.
          type: number
    CrossSheetReferenceRequestWithRowIds:
      type: object
      description: >-
        CrossSheetReference object to create which will refer to the entire rows
        in the range from startRowId to endRowId.
      properties:
        sourceSheetId:
          description: Sheet Id of source sheet.
          type: number
        name:
          description: >-
            Friendly name of reference. Auto-generated unless specified in
            Create Cross-sheet References.
          type: string
        endRowId:
          description: >-
            Defines ending edge of range when specifying one or more rows. Must
            be used with startRowId.
          type: number
        startRowId:
          description: >-
            Defines beginning edge of range when specifying one or more rows.
            Must be used with endRowId.
          type: number
    CrossSheetReferenceRequestWithColumnAndRowIds:
      type: object
      description: CrossSheetReference object to create with specified cell range.
      properties:
        sourceSheetId:
          description: Sheet Id of source sheet.
          type: number
        name:
          description: >-
            Friendly name of reference. Auto-generated unless specified in
            Create Cross-sheet References.
          type: string
        endColumnId:
          description: >-
            Defines ending edge of range when specifying one or more columns.
            Must be used with startColumnId. To specify an entire column, omit
            the startRowId and endRowId parameters.
          type: number
        endRowId:
          description: >-
            Defines ending edge of range when specifying one or more rows. Must
            be used with startRowId. To specify an entire row, omit the
            startColumnId and endColumnId parameters.
          type: number
        startColumnId:
          description: >-
            Defines beginning edge of range when specifying one or more columns.
            Must be used with endColumnId. To specify an entire column, omit the
            startRowId and endRowId parameters.
          type: number
        startRowId:
          description: >-
            Defines beginning edge of range when specifying one or more rows.
            Must be used with endRowId. To specify an entire row, omit the
            startColumnId and endColumnId parameters.
          type: number
    CommentRequest:
      description: Comment.
      type: object
      properties:
        text:
          description: Comment text.
          type: string
    DiscussionCreationRequest:
      type: object
      properties:
        comment:
          $ref: '#/components/schemas/CommentRequest'
    DiscussionCreationRequestWithAttachment:
      type: object
      properties:
        discussion:
          type: object
          description: Discussion.
          properties:
            comment:
              $ref: '#/components/schemas/CommentRequest'
            title:
              description: Title for the attachment. Only used with an attachment.
              type: string
        file:
          description: File to attach to the new comment. Only used with an attachment.
          type: string
          format: binary
    CommentCreationRequestWithAttachment:
      type: object
      properties:
        comment:
          $ref: '#/components/schemas/CommentRequest'
        file:
          description: File to attach to the new comment. Only used with an attachment.
          type: string
          format: binary
    destinationId:
      description: >-
        The Id of the destination container (when copying or moving a sheet or a
        folder). Required if destinationType is "folder" or "workspace". If
        destinationType is "home", this value must be null.
      type: number
    destinationType:
      description: Type of the destination container.
      type: string
      nullable: true
      enum:
        - folder
        - home
        - workspace
    ContainerDestinationForMove:
      type: object
      properties:
        destinationId:
          $ref: '#/components/schemas/destinationId'
        destinationType:
          $ref: '#/components/schemas/destinationType'
    icalEnabled:
      description: If **true**, a webcal is available for the calendar in the sheet.
      type: boolean
    readOnlyFullAccessibleBy:
      description: >
        Indicates who can access the 'Read-Only Full' view of the published
        sheet:
          * ALL - available to anyone who has the link.
          * ORG - available only to members of the sheet owner's Smartsheet organization account.
          * SHARED - available only to users shared to the item.

        Only returned in the response if **readOnlyFullEnabled = true**.
      type: string
      enum:
        - ALL
        - ORG
        - SHARED
    readOnlyFullDefaultView:
      description: >
        Indicates which view the user has set for a read-only, default view of
        the published sheet. Must be one of the listed enum values.
      type: string
      enum:
        - CALENDAR
        - CARD
        - GRID
    readOnlyFullEnabled:
      description: >-
        If **true**, a rich version of the sheet is published with the ability
        to download row attachments and discussions.
      type: boolean
    readOnlyFullShowToolbar:
      description: >-
        Indicates whether the left nav toolbar is displayed. The default, or
        **true**, is to display the toolbar. If **false**, hides the toolbar.
      type: boolean
      deprecated: true
    readOnlyLiteEnabled:
      description: >-
        If **true**, a lightweight version of the sheet is published without row
        attachments and discussions.
      type: boolean
    readWriteAccessibleBy:
      description: >
        Indicates who can access the 'Edit by Anyone' view of the published
        sheet:
          * ALL - available to anyone who has the link.
          * ORG - available only to members of the sheet owner's Smartsheet organization account.
          * SHARED - available only to users shared to the item.

        Only returned in the response if **readWriteEnabled = true**.
      type: string
      enum:
        - ALL
        - ORG
        - SHARED
    readWriteDefaultView:
      description: >
        Indicates which view the user has set for a read-write, default view of
        the published sheet. Must be one of the listed enum values.
      type: string
      enum:
        - CALENDAR
        - CARD
        - GRID
    readWriteEnabled:
      description: >-
        If **true**,a rich version of the sheet is published with the ability to
        edit cells and manage attachments and discussions.
      type: boolean
    readWriteShowToolbar:
      description: >-
        Indicates whether the left nav toolbar is displayed. The default, or
        **true**, is to display the toolbar. If **false**, hides the toolbar.
      type: boolean
      deprecated: true
    SheetPublishRequest:
      description: >-
        Describes the sheet's publish settings. Used as a request body to set
        publish status.
      type: object
      x-tags:
        - sheets
      properties:
        icalEnabled:
          $ref: '#/components/schemas/icalEnabled'
        readOnlyFullAccessibleBy:
          $ref: '#/components/schemas/readOnlyFullAccessibleBy'
        readOnlyFullDefaultView:
          $ref: '#/components/schemas/readOnlyFullDefaultView'
        readOnlyFullEnabled:
          $ref: '#/components/schemas/readOnlyFullEnabled'
        readOnlyFullShowToolbar:
          $ref: '#/components/schemas/readOnlyFullShowToolbar'
        readOnlyLiteEnabled:
          $ref: '#/components/schemas/readOnlyLiteEnabled'
        readWriteAccessibleBy:
          $ref: '#/components/schemas/readWriteAccessibleBy'
        readWriteDefaultView:
          $ref: '#/components/schemas/readWriteDefaultView'
        readWriteEnabled:
          $ref: '#/components/schemas/readWriteEnabled'
        readWriteShowToolbar:
          $ref: '#/components/schemas/readWriteShowToolbar'
    cellObjectForRows:
      type: object
      properties:
        columnId:
          type: number
          description: The Id of the column that the cell is located in.
        columnType:
          type: string
          description: >-
            Only returned if the include query string parameter contains
            **columnType**.
        value:
          anyOf:
            - type: string
            - type: number
            - type: boolean
          description: >-
            A string, number, or a Boolean value -- depending on the cell type
            and the data in the cell. Cell values larger than 4000 characters
            are silently truncated. An empty cell returns no value.
        displayValue:
          type: string
          description: >-
            Visual representation of cell contents, as presented to the user in
            the UI.
    UpdateRowsObject:
      type: object
      properties:
        id:
          description: Row Id.
          type: number
        rowNumber:
          description: Row number within the sheet.
          type: number
          minimum: 1
        parentRowNumber:
          description: The row number of the parent.
          type: number
        parentId:
          description: The Id of the parent.
          type: number
        expanded:
          description: Indicates whether the row is expanded or collapsed.
          type: boolean
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        cells:
          description: Cells objects.
          type: array
          items:
            $ref: '#/components/schemas/cellObjectForRows'
        version:
          description: >-
            Sheet version number that is incremented every time a sheet is
            modified.
          type: number
    AddRowsObject:
      type: object
      properties:
        id:
          description: Row Id.
          type: number
        sheetId:
          description: Parent sheet Id.
          type: number
        rowNumber:
          description: Row number within the sheet.
          type: number
          minimum: 1
        expanded:
          description: Indicates whether the row is expanded or collapsed.
          type: boolean
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        cells:
          description: Cells objects.
          type: array
          items:
            $ref: '#/components/schemas/cellObjectForRows'
        version:
          description: >-
            Sheet version number that is incremented every time a sheet is
            modified.
          type: number
    GetRowObject:
      type: object
      properties:
        id:
          description: Row Id.
          type: number
        sheetId:
          description: Parent sheet Id.
          type: number
        rowNumber:
          description: Row number within the sheet.
          type: number
          minimum: 1
        expanded:
          description: Indicates whether the row is expanded or collapsed.
          type: boolean
        cells:
          description: Cells objects.
          type: array
          items:
            $ref: '#/components/schemas/cellObjectForRows'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
    properties-id:
      description: SummaryField Id.
      type: number
    properties-contactOptions:
      description: >-
        Array of ContactOption objects to specify a pre-defined list of values
        for the column. Column type must be CONTACT_LIST.
      type: array
      items:
        $ref: '#/components/schemas/ContactOption'
    format:
      description: >-
        The format descriptor. Only returned if the include query string
        parameter contains format and this column has a non-default format
        applied to it.
      type: string
    formula:
      description: The formula for a cell, if set.
      type: string
    index:
      description: Field index or position. This number is zero-based.
      type: number
    locked:
      description: Indicates whether the field is locked.
      type: boolean
    properties-options:
      description: >-
        When applicable for PICKLIST column type. Array of the options available
        for the field.
      type: array
      items:
        type: string
    properties-symbol:
      description: When applicable for PICKLIST column type.
      type: string
    properties-title:
      description: Arbitrary name, must be unique within summary.
      type: string
    properties-type:
      type: string
      enum:
        - ABSTRACT_DATETIME
        - CHECKBOX
        - CONTACT_LIST
        - DATE
        - DATETIME
        - DURATION
        - MULTI_CONTACT_LIST
        - MULTI_PICKLIST
        - PICKLIST
        - PREDECESSOR
        - TEXT_NUMBER
    validation:
      description: Indicates whether summary field values are restricted to the type.
      type: boolean
    SummaryFieldUpdateRequest:
      type: object
      description: SummaryField object to update.
      properties:
        id:
          $ref: '#/components/schemas/properties-id'
        contactOptions:
          $ref: '#/components/schemas/properties-contactOptions'
        format:
          $ref: '#/components/schemas/format'
        formula:
          $ref: '#/components/schemas/formula'
        hyperlink:
          $ref: '#/components/schemas/Hyperlink'
        image:
          $ref: '#/components/schemas/Image'
        index:
          $ref: '#/components/schemas/index'
        locked:
          $ref: '#/components/schemas/locked'
        objectValue:
          $ref: '#/components/schemas/ObjectValue'
        options:
          $ref: '#/components/schemas/properties-options'
        symbol:
          $ref: '#/components/schemas/properties-symbol'
        title:
          $ref: '#/components/schemas/properties-title'
        type:
          $ref: '#/components/schemas/properties-type'
        validation:
          $ref: '#/components/schemas/validation'
    SummaryFieldCreateRequest:
      type: object
      description: SummaryField object to create.
      properties:
        contactOptions:
          $ref: '#/components/schemas/properties-contactOptions'
        format:
          $ref: '#/components/schemas/format'
        formula:
          $ref: '#/components/schemas/formula'
        hyperlink:
          $ref: '#/components/schemas/Hyperlink'
        image:
          $ref: '#/components/schemas/Image'
        index:
          $ref: '#/components/schemas/index'
        locked:
          $ref: '#/components/schemas/locked'
        objectValue:
          $ref: '#/components/schemas/ObjectValue'
        options:
          $ref: '#/components/schemas/properties-options'
        symbol:
          $ref: '#/components/schemas/properties-symbol'
        title:
          $ref: '#/components/schemas/properties-title'
        type:
          $ref: '#/components/schemas/properties-type'
        validation:
          $ref: '#/components/schemas/validation'
    SummaryFieldAddImage:
      type: object
      properties:
        id:
          description: SummaryField Id.
          type: number
        index:
          description: Field index or position. This number is zero-based.
          type: number
        title:
          description: Arbitrary name, must be unique within summary.
          type: string
        type:
          type: string
          enum:
            - ABSTRACT_DATETIME
            - CHECKBOX
            - CONTACT_LIST
            - DATE
            - DATETIME
            - DURATION
            - MULTI_CONTACT_LIST
            - MULTI_PICKLIST
            - PICKLIST
            - PREDECESSOR
            - TEXT_NUMBER
        locked:
          description: Indicates whether the field is locked.
          type: boolean
        lockedForUser:
          description: Indicates whether the field is locked for the requesting user.
          type: boolean
        objectValue:
          $ref: '#/components/schemas/ObjectValue'
        formula:
          description: The formula for a cell, if set.
          type: string
        image:
          $ref: '#/components/schemas/Image'
        createdAt:
          $ref: '#/components/schemas/Timestamp'
        modifiedAt:
          $ref: '#/components/schemas/Timestamp'
        version:
          description: >-
            Sheet version number that is incremented every time a sheet is
            modified.
          type: number
    Timestamp_Writeable:
      oneOf:
        - $ref: '#/components/schemas/Timestamp_date-time'
        - $ref: '#/components/schemas/Timestamp_number'
    ProfileImage:
      type: object
      properties:
        imageId:
          description: Unique image Id.
          type: string
          example: u!1!nAtdn5RJB_o!k6_e_3h2R3w!wmYXPek-yVD
        height:
          description: Image height.
          type: string
          example: '1050'
        width:
          description: Image width.
          type: string
          example: '1050'
    SheetList:
      type: object
      properties:
        id:
          description: Sheet Id.
          type: number
        name:
          description: Sheet name.
          type: string
        owner:
          description: Empty string
          example: ''
          type: string
        ownerId:
          description: Set to a static value of "0".
          example: 0
          type: number
    UserUpdate:
      description: |
        Updates User for the following attributes:

        * **admin** (required).
        * **licensedSheetCreator** (required).
        * **firstName** (optional).
        * **groupAdmin** (optional).
        * **lastName** (optional).
        * **resourceViewer** (optional).
      type: object
      properties:
        admin:
          description: >-
            Indicates whether the user is a system admin (can manage user
            accounts and organization account).
          type: boolean
          default: false
          example: true
        licensedSheetCreator:
          description: >-
            Indicates whether the user is a licensed user (can create and own
            sheets).
          type: boolean
          default: false
          example: true
        firstName:
          description: User's first name.
          type: string
          example: Jane
        lastName:
          description: User's last name.
          type: string
          example: Doe
        groupAdmin:
          description: >-
            Indicates whether the user is a group admin (can create and edit
            groups).
          type: boolean
          default: false
          example: true
        resourceViewer:
          description: >-
            Indicates whether the user is a resource viewer (can access resource
            views).
          type: boolean
          default: false
          example: true
    UserProfileImageResponse:
      description: User profile image response.
      properties:
        email:
          description: User's primary email address.
          type: string
          format: email
          example: jane.doe@smartsheet.com
        name:
          description: User's full name (read-only).
          type: string
          readOnly: true
          example: Jane Doe
        firstName:
          description: User's first name.
          type: string
          example: Jane
        lastName:
          description: User's last name.
          type: string
          example: Doe
        profileImage:
          $ref: '#/components/schemas/ProfileImage'
        id:
          description: User Id.
          type: number
          readOnly: true
          example: 48569348493401200
    UserDelete:
      description: >
        Removes a user from an organization account. User is transitioned to a
        free collaborator with read-only access to owned reports, sheets,
        Sights, workspaces, and any shared templates (unless those are
        optionally transferred to another user).
      type: object
      properties:
        removeFromSharing:
          description: >
            * Set to **true** to remove the user from sharing for all
            sheets/workspaces in the organization account. If not specified,
            user is not removed from sharing.
          type: boolean
          example: true
        transferSheets:
          description: >
            * If **true**, and **transferTo** is specified, the removed user's
            sheets are transferred. Else, sheets are not transferred.
          type: boolean
          default: false
          example: true
        transferTo:
          description: |
            (Required if user owns groups.)

             * The Id of the user to transfer ownership to.
             * If the user being removed owns groups, they are transferred to this user. If the user owns sheets, and **transferSheets** is true, the removed user's sheets are transferred to this user.
          type: number
          example: 94094820842
    AddAlternateEmail:
      type: object
      properties:
        email:
          description: User's alternate email address.
          type: string
          example: johnathan.doe@smartsheet.com
    userId:
      name: userId
      description: User Id
      in: path
      required: true
      schema:
        type: number
    Create_Webhook_Request:
      type: object
      properties:
        callbackUrl:
          description: HTTPS URL where callbacks are sent.
          type: string
          example: https://www.myApp.com/webhooks
        events:
          description: >-
            Array of the events that are subscribed to. Currently, must be an
            array of size 1 that contains the string value '\*.\*' (asterisk
            period asterisk), which means "all objects" and "all events".
          type: array
          items:
            type: string
            example: '*.*'
        name:
          description: Webhook name.
          type: string
          example: Webhook for Sheet Creation
        version:
          description: >-
            Webhook version. Currently, the only supported value is 1. This
            attribute is intended to ensure backward compatibility as new
            webhook functionality is released. For example, a webhook with a
            version of 1 is guaranteed to always be sent callback objects that
            are compatible with the version 1 release of webhooks.
          type: number
          example: 1
          minimum: 1
          maximum: 1
    Update_Webhook_Request:
      allOf:
        - $ref: '#/components/schemas/Create_Webhook_Request'
        - type: object
          properties:
            enabled:
              description: Indicates whether the webhook is on (true) or off (false).
              type: boolean
              example: true
    FolderNameOnly:
      description: Can contain dashboards, folders, reports, sheets, or templates.
      type: object
      properties:
        name:
          description: Folder name.
          type: string
    FolderSimpleResponse:
      description: Can contain dashboards, folders, reports, sheets, or templates.
      type: object
      properties:
        name:
          description: Folder name.
          type: string
    CallbackEvents:
      description: Array of CallbackEvent objects
      type: array
      items:
        $ref: '#/components/schemas/CallbackEvent'
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.smartsheet.com/b/authorize
          tokenUrl: https://api.smartsheet.com/2.0/token
          scopes:
            ADMIN_SHEETS: >-
              Modify sheet structure, including column definition, publish
              state, etc.
            ADMIN_SIGHTS: Modify dashboards structure.
            ADMIN_USERS: >-
              Add and remove users from your Smartsheet organization account;
              create groups and manage membership.
            ADMIN_WEBHOOKS: >-
              Create, delete, and update webhooks; get all webhooks; reset
              shared secret.
            ADMIN_WORKSPACES: Create and manage workspaces and folders, including sharing.
            CREATE_SHEETS: Create new sheets.
            CREATE_SIGHTS: Create new dashboards.
            DELETE_SHEETS: Delete sheets.
            DELETE_SIGHTS: Delete dashboards.
            READ_CONTACTS: Retrieve contacts.
            READ_EVENTS: Retrieve events.
            READ_SHEETS: >-
              Read all sheet data, including attachments, discussions, and cell
              data.
            READ_SIGHTS: Read all dashboards data.
            READ_USERS: >-
              Retrieve users and groups for your Smartsheet organization
              account.
            SHARE_SHEETS: Share sheets, including sending sheets as attachments.
            SHARE_SIGHTS: Share dashboards.
            WRITE_SHEETS: >-
              Insert and modify sheet data, including attachments, discussions,
              and cell data.
    APIToken:
      scheme: bearer
      type: http
      description: API Token
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: |
        API Access Token used to authenticate requests to Smartsheet APIs.
      schema:
        type: string
        example: Bearer JKlMNOpQ12RStUVwxYZAbcde3F5g6hijklM789
    includeAll:
      name: includeAll
      in: query
      required: false
      description: >-
        If true, include all results, that is, do not paginate. Mutually
        exclusive with page and pageSize (they are ignored if includeAll=true is
        specified).
      schema:
        type: boolean
        default: false
    modifiedSince:
      name: modifiedSince
      in: query
      required: false
      description: >-
        When specified with a date and time value, response only includes the
        objects that are modified on or after the date and time specified. If
        you need to keep track of frequent changes, it may be more useful to use
        Get Sheet Version.
      schema:
        $ref: '#/components/schemas/Timestamp'
    numericDates:
      name: numericDates
      in: query
      schema:
        type: boolean
        default: false
      description: >-
        You can optionally choose to receive and send dates/times in numeric
        format, as milliseconds since the UNIX epoch (midnight on January 1,
        1970 in UTC time), using the query string parameter numericDates with a
        value of true. This query parameter works for any API request.
    page:
      name: page
      in: query
      required: false
      description: >-
        Which page to return. Defaults to 1 if not specified. If you specify a
        value greater than the total number of pages, the last page of results
        is returned.
      schema:
        type: number
        default: 1
    pageSize:
      name: pageSize
      in: query
      required: false
      description: >-
        The maximum number of items to return per page. Unless otherwise stated
        for a specific endpoint, defaults to 100. If only page is specified,
        defaults to a page size of 100. For reports, the default is 100 rows. If
        you need larger sets of data from your report, returns a maximum of
        10,000 rows per request.
      schema:
        type: number
        default: 100
    contactId:
      name: contactId
      in: path
      schema:
        type: number
      required: true
      description: contactId of the contact being accessed.
    contactInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response:
          * **profileImage**
      schema:
        type: string
        enum:
          - profileImage
    Accept-Encoding:
      name: Accept-Encoding
      in: header
      description: >
        Strongly recommended to make sure payload is compressed. Must be set to
        one of the following values:

        * deflate

        * gzip
      schema:
        type: string
        enum:
          - deflate
          - gzip
      required: false
    ActorId:
      name: x-smar-sc-actor-id
      description: |
        UserId of the user
      in: header
      schema:
        type: string
        example: '100012'
    favoriteInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response.
      schema:
        type: string
        enum:
          - directId
          - name
    Content-Type:
      name: Content-Type
      in: header
      description: >
        Required for POST and PUT requests. Defines the structure for the
        request body.
      schema:
        type: string
        default: application/json
    favoriteType:
      name: favoriteType
      in: path
      schema:
        type: string
        enum:
          - folder
          - report
          - sheet
          - sight
          - template
          - workspace
      required: true
      description: The favorite type.
    favoriteIds:
      name: objectIds
      in: query
      required: true
      description: |
        A comma-separated list of Ids of the favorited item.
      schema:
        type: string
    favoriteId:
      name: favoriteId
      in: path
      schema:
        type: number
      required: true
      description: Favorite Id, e.g., sheet Id, report Id.
    folderId:
      name: folderId
      in: path
      schema:
        type: number
      required: true
      description: >-
        Folder Id where you can create sheets, sights, reports, templates, and
        other folders.
    folderWorkspaceInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response:
          * **source** - adds the Source object indicating which object the folder was created from, if any
          * **distributionLink**
          * **ownerInfo** Returns the user with owner permissions, or the user with admin permissions if there is no owner assigned. If no owner or admins are assigned, the Plan Asset Admin is returned. If no Plan Asset Admin is assigned, the System Admin is returned.
          * **sheetVersion**
          * **permalinks**
      schema:
        type: string
        enum:
          - source
          - distributionLink
          - ownerInfo
          - sheetVersion
    sheetCopyInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separated list of elements to copy:
          * **attachments**
          * **cellLinks** - includes cross-sheet references
          * **data** - includes formatting
          * **discussions** - includes comments
          * **filters**
          * **forms**
          * **ruleRecipients** -- includes notification recipients, must also include rules when using this attribute
          * **rules** -- includes notifications and workflow rules
          * **shares** |
        NOTE: Cell history is not copied, regardless of which include parameter
        values are specified.
      schema:
        type: string
        enum:
          - attachments
          - cellLinks
          - data
          - discussions
          - filters
          - forms
          - ruleRecipients
          - rules
          - shares
    sheetCopyExclude:
      name: exclude
      in: query
      required: false
      description: >-
        When specified with a value of **sheetHyperlinks**, excludes this
        category from the response
      schema:
        type: string
        enum:
          - sheetHyperlinks
    skipRemap:
      name: skipRemap
      in: query
      description: >-
        A comma-separated list of references to NOT re-map for the newly created
        folder.
      schema:
        type: string
        enum:
          - cellLinks
          - reports
          - sheetHyperlinks
          - sights
      required: false
    include:
      name: include
      in: query
      required: false
      description: |
        Additional parameter to create a sheet from template.
        A comma-separated list of elements to copy from the template.
      schema:
        type: string
        enum:
          - attachments
          - cellLinks
          - data
          - discussions
          - filters
          - forms
          - ruleRecipients
          - rules
    Content-Disposition:
      name: Content-Disposition
      in: header
      description: >
        Should be equal to "attachment" to tell the API that a file is in the
        body of the POST request, followed by a semicolon, followed by
        **filename=** and the URL-encoded filename in quotes
      schema:
        type: string
        example: attachment; filename="ProgressReport.docx"
    parameters-Content-Type:
      name: Content-Type
      in: header
      required: true
      description: >
        Required for POST request to import a sheet from CSV/XLSX file.

        * For CSV files, use: Content-Type: text/csv

        * For XLSX files, use: Content-Type:
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
      schema:
        type: string
        enum:
          - text/csv
          - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    sheetName:
      name: sheetName
      in: query
      schema:
        type: string
      required: true
      description: Desired name of the sheet.
    headerRowIndex:
      name: headerRowIndex
      in: query
      schema:
        type: number
      required: false
      description: >
        A zero-based integer indicating the row number to use for column names.
        Rows before this are omitted.

        If not specified, the default values are Column1, Column2, etc.
    primaryColumnIndex:
      name: primaryColumnIndex
      in: query
      schema:
        type: number
        default: 0
      required: false
      description: |
        A zero-based integer indicating the column to designate as primary.
    groupId:
      name: groupId
      description: Group Id
      in: path
      required: true
      schema:
        type: number
    userId:
      name: userId
      description: User Id
      in: path
      required: true
      schema:
        type: number
    Accept:
      name: Accept
      in: header
      description: >-
        The Accept request-header field can be used to specify certain media
        types which are acceptable for the response.
      schema:
        type: string
      required: false
    accessApiLevel:
      name: accessApiLevel
      in: query
      required: false
      description: >
        Allows COMMENTER access for inputs and return values. For
        backwards-compatibility, VIEWER is the default. For example, to see
        whether a user has COMMENTER access for a sheet, use accessApiLevel=1.
      schema:
        type: number
        default: 0
    reportId:
      name: reportId
      in: path
      schema:
        type: number
      required: true
      description: reportID of the report being accessed.
    reportInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response:
          * **attachments**
          * **discussions**
          * **proofs**
          * **format**
          * **objectValue** - when used in combination with a level query parameter, includes the email addresses for multi-contact data
          * **scope** - adds the report's scope to the response
          * **source** - adds the Source object indicating which report the report was created from, if any
          * **sourceSheets**
      schema:
        type: string
        enum:
          - attachments
          - discussions
          - proofs
          - format
          - objectValue
          - scope
          - source
          - sourceSheets
    reportExclude:
      name: exclude
      in: query
      required: false
      description: >
        A comma-separated list of optional elements to not include in the
        response
      schema:
        type: string
        enum:
          - linkInFromCellDetails
          - linksOutToCellsDetails
    reportLevel:
      name: level
      in: query
      required: false
      description: >-
        specifies whether new functionality, such as multi-contact data is
        returned in a backwards-compatible, text format (level=0, default),
        multi-contact data (level=1), or multi-picklist data (level=3).
      schema:
        type: integer
        default: 0
    sharingInclude:
      name: sharingInclude
      in: query
      description: >-
        When applicable for the specific object this parameter defines the scope
        of the share. Possible values are ITEM or WORKSPACE. ITEM is an
        item-level share (that is, the specific object to which the share
        applies is shared with the user or group). WORKSPACE is a
        workspace-level share (that is, the workspace that contains the object
        to which the share applies is shared with the user or group).
      required: false
      schema:
        type: string
        enum:
          - ITEM
          - WORKSPACE
    sendEmail:
      name: sendEmail
      in: query
      description: >-
        Either true or false to indicate whether to notify the user by email.
        Default is false. If true, limit is 1000 emails.
      required: false
      schema:
        type: boolean
        default: false
    shareId:
      name: shareId
      in: path
      schema:
        type: string
      required: true
      description: Share Id.
    query:
      name: query
      in: query
      required: true
      description: >-
        Text with which to perform the search. Enclose in double-quotes for an
        exact search.
      schema:
        type: string
    location:
      name: location
      in: query
      required: false
      description: >
        **Deprecated** When specified with a value of **personalWorkspace**,
        limits the response to only those items in the user's workspaces.
      schema:
        type: string
        default: ''
      deprecated: true
    parameters-include:
      name: include
      in: query
      required: false
      description: >
        When specified with a value of **favoriteFlag**, response indicates
        which returned items are favorites.  favorite -- dashboards, folders,
        reports, sheets, templates, and workspaces will have the property
        favorite: true parentObjectFavorite -- attachments, discussions, summary
        fields, and rows will have the property parentObjectFavorite: true
      schema:
        type: string
        default: ''
    scopes:
      name: scopes
      in: query
      required: false
      description: >-
        If search fails, try using an array for each type of this
        comma-separated list of search filters.
      schema:
        type: array
        items:
          type: string
          enum:
            - attachments
            - cellData
            - comments
            - folderNames
            - reportNames
            - sheetNames
            - sightNames
            - summaryFields
            - templateNames
            - workspaceNames
    sheetId:
      name: sheetId
      in: path
      schema:
        type: number
      required: true
      description: Sheet Id of the sheet being accessed.
    sheetInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separated list of optional elements to include in the response:

        * **sheetVersion** - current version number of each sheet, should not be
        combined with pagination

        * **source** - the Source object for any sheet that was created from
        another sheet, if any
      schema:
        type: string
        enum:
          - sheetVersion
          - source
    parameters-sheetInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response:
          * **attachments** - includes the metadata for sheet-level and row-level attachments. To include discussion attachments, both attachments and discussions must be present in the include list.
          * **columnType** -includes columnType attribute in the row's cells indicating the type of the column the cell resides in.
          * **crossSheetReferences** - includes the cross-sheet references
          * **discussions** - includes sheet-level and row-level discussions. To include discussion attachments, both attachments and discussions must be present in the include list.
          * **filters** - includes filteredOut attribute indicating if the row should be displayed or hidden according to the sheet's filters.
          * **filterDefinitions** - includes type of filter, operators used, and criteria
          * **format** -  includes column, row, cell, and summary fields formatting.
          * **ganttConfig** - includes Gantt chart details.
          * **objectValue** - when used in combination with a level query parameter, includes the email addresses for multi-contact data.
          * **ownerInfo** - includes the owner's email address and the owner's user Id.
          * **rowPermalink** - includes permalink attribute that represents a direct link to the row in the Smartsheet application.
          * **source** - adds the Source object indicating which report, sheet  Sight (aka dashboard), or template the sheet was created from, if any.
          * **writerInfo** - includes createdBy and modifiedBy attributes on the row or summary fields, indicating the row or summary field's creator, and last modifier.
      schema:
        type: string
        enum:
          - attachments
          - columnType
          - crossSheetReferences
          - discussions
          - filters
          - filterDefinitions
          - format
          - ganttConfig
          - objectValue
          - ownerInfo
          - rowPermalink
          - source
          - writerInfo
    sheetExclude:
      name: exclude
      in: query
      required: false
      description: |
        A comma-separated list of element types to exclude from the response:
          * **filteredOutRows** - excludes filtered-out rows from response payload if a sheet filter is applied; includes total number of filtered rows
          * **linkInFromCellDetails** - excludes the following attributes from the **cell.linkInFromCell** object: `columnId`, `rowId`, `status`
          * **linksOutToCellsDetails** - excludes the following attributes from the **cell.linksOutToCells** array elements: `columnId`, `rowId`, `status`
          * **nonexistentCells** - excludes empty cells
      schema:
        type: string
        enum:
          - filteredOutRows
          - linkInFromCellDetails
          - linksOutToCellsDetails
          - nonexistentCells
    sheetColumnIds:
      name: columnIds
      in: query
      required: false
      description: >
        A comma-separated list of column ids. The response contains only the
        specified columns in the "columns" array, and individual rows' "cells"
        array only contains cells in the specified columns.
      schema:
        type: string
    sheetFilterId:
      name: filterId
      in: query
      required: false
      description: >
        Overrides the existing include={filters} parameter if both are supplied.
        Applies the given filter (if accessible by the calling user) and marks
        the affected rows as "filteredOut": true.
      schema:
        type: string
    sheetIfVersionAfter:
      name: ifVersionAfter
      in: query
      required: false
      description: >
        If version specified is still the current sheet version, then returns an
        abbreviated Sheet object with only the sheet version property.
        Otherwise, if the sheet has been modified, returns the complete Sheet
        object. Intended to allow clients with a cached copy to make sure they
        have the latest version.
      schema:
        type: integer
    sheetLevel:
      name: level
      in: query
      required: false
      description: >-
        Specifies whether object data types, such as multi-contact data are
        returned in a backwards-compatible, text format in text/number
        columns.<br>  - Set `level=0` (default) to use text/number columns for
        multi-contact data and multi-picklist data.<br>  - Set `level=1` to use
        multiple-entry contact list columns for multi-contact data;
        multi-picklist data is returned in text/number columns.<br>  - Set
        `level=2` to use multiple-entry contact list columns for multi-contact
        data and use multiple-entry picklist columns for multi-picklist data.
      schema:
        type: integer
        default: 0
    paperSize:
      name: paperSize
      in: query
      required: false
      description: applies to PDF format only
      schema:
        type: string
        enum:
          - LETTER
          - LEGAL
          - WIDE
          - ARCHD
          - A4
          - A3
          - A2
          - A1
          - A0
        default: LETTER
    sheetRowIds:
      name: rowIds
      in: query
      required: false
      description: >
        A comma-separated list of row Ids on which to filter the rows included
        in the result.
      schema:
        type: string
    sheetRowNumbers:
      name: rowNumbers
      in: query
      required: false
      description: >
        A comma-separated list of row numbers on which to filter the rows
        included in the result. Non-existent row numbers are ignored.
      schema:
        type: string
    sheetRowsModifiedSince:
      name: rowsModifiedSince
      in: query
      required: false
      description: >-
        Filter to return only rows that have been modified since the date/time
        provided. Date should be in ISO-8601 format.
      example: '2020-01-30T13:25:32-07:00'
      schema:
        $ref: '#/components/schemas/Timestamp'
    attachmentId:
      name: attachmentId
      in: path
      required: true
      description: ID of the attachment
      schema:
        type: string
    automationRuleId:
      name: automationRuleId
      in: path
      required: true
      description: The Id of an Automation Rule
      schema:
        type: string
    columnsLevel:
      name: level
      in: query
      required: false
      description: >-
        Specifies whether object data types, such as multi-contact data are
        returned in a backwards-compatible, text format in text/number
        columns.<br>  - Set `level=0` (default) to use text/number columns for
        multi-contact data and multi-picklist data.<br>  - Set `level=1` to use
        multiple-entry contact list columns for multi-contact data;
        multi-picklist data is returned in text/number columns.<br>  - Set
        `level=2` to use multiple-entry contact list columns for multi-contact
        data and use multiple-entry picklist columns for multi-picklist data.
      schema:
        type: integer
        default: 0
    columnId:
      name: columnId
      in: path
      schema:
        type: number
      required: true
      description: Column Id in the sheet being accessed.
    commentId:
      name: commentId
      in: path
      required: true
      description: ID of the comment
      schema:
        type: string
    crossSheetReferenceId:
      name: crossSheetReferenceId
      in: path
      schema:
        type: number
      required: true
      description: Cross-sheet Reference Id
    discussionInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response:
          * **attachments** - effective only if comments is present, otherwise ignored
          * **comments** - include all comments in threads
      schema:
        type: string
        enum:
          - attachments
          - comments
    discussionId:
      name: discussionId
      in: path
      required: true
      description: ID of the discussion
      schema:
        type: string
    proofId:
      name: proofId
      in: path
      required: true
      description: Proof Id of the original proof
      schema:
        type: string
    proofInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response.
      schema:
        type: string
        enum:
          - attachments
          - discussions
    allowPartialSuccess:
      name: allowPartialSuccess
      in: query
      description: >-
        When specified with a value of true, enables partial success for this
        bulk operation. See [Bulk operations > Partial
        success](/api/smartsheet/guides/advanced-topics/scalability-options) for
        more information.
      schema:
        type: boolean
        default: false
      required: false
    overrideValidation:
      name: overrideValidation
      in: query
      description: >-
        You may use the query string parameter **overrideValidation** with a
        value of **true** to allow a cell value outside of the validation
        limits. You must specify **strict** with a value of **false** to bypass
        value type checking.
      schema:
        type: boolean
        default: false
      required: false
    rowIds:
      name: ids
      in: query
      required: true
      description: |
        A comma-separated list of row Ids.
      schema:
        type: string
    ignoreRowsNotFound:
      name: ignoreRowsNotFound
      description: >
        **true** or **false**. If set to **false** and any of the specified row
        Ids are not found, no rows are deleted, and the "not found"
        [error](/api/smartsheet/openapi/schemas/error) is returned.
      in: query
      required: false
      schema:
        type: boolean
        default: false
    copyRowsInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separated list of row elements to copy in addition to the cell
        data:
          * **all** - specify a value of **all** to include everything (attachments, children, and discussions).
          * **attachments**
          * **children** -  if specified, any child rows of the rows specified in the request are also copied to the destination sheet, and parent-child relationships amongst rows are preserved within the destination sheet; if not specified, only the rows specified in the request are copied.
          * **discussions**
      schema:
        type: string
        enum:
          - all
          - attachments
          - children
          - discussions
    ignoreRowsNotFoundForCopyRows:
      name: ignoreRowsNotFound
      description: >
        **true** or **false**: default is **false**. If set to **true**,
        specifying row Ids that do not exist within the source sheet does not
        cause an error response. If omitted or set to **false**, specifying row
        Ids that do not exist within the source sheet causes an error response
        (and no rows are copied).
      in: query
      required: false
      schema:
        type: boolean
        default: false
    moveRowsInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separate list of row elements to move in addition to the cell
        data.
      schema:
        type: string
        enum:
          - attachments
          - discussions
    ignoreRowsNotFoundForMoveRows:
      name: ignoreRowsNotFound
      description: >
        **true** or **false**: default is **false**. If set to **true**,
        specifying row Ids that do not exist within the source sheet does not
        cause an error response. If omitted or set to **false**, specifying row
        Ids that do not exist within the source sheet causes an error response
        (and no rows are moved).
      in: query
      required: false
      schema:
        type: boolean
        default: false
    rowId:
      name: rowId
      in: path
      schema:
        type: number
      required: true
      description: Row Id in the sheet being accessed.
    rowInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separated list of elements to include in the response.


        See [Row Include Flags](/api/smartsheet/openapi/rows).


        Also supports the **columns** include flag, which adds a columns array
        that specifies all of the columns for the sheet. This enables you to
        have the full context of the cells in the row.


        The **filters** include flag returns a **filteredOut** attribute
        indicating if the row should be displayed or hidden according to the
        sheet's filters.
      schema:
        type: string
        enum:
          - columns
          - filters
    Content-Length:
      name: Content-Length
      in: header
      description: >
        Must be set to the size of the file, in bytes. For example to determine
        file size using in UNIX:

        $ ls -l ProgressReport.docx

        5463 ProgressReport.docx
      schema:
        type: integer
        example: 5463
    altText:
      name: altText
      in: query
      description: Url-encoded alternate text for the image
      schema:
        type: string
      required: false
    cellHistoryInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of elements to copy:
          * **columnType** - includes the columnType attribute for each Cell object
          * **objectValue** - when used in combination with a level query parameter, includes the email addresses for a multi-contact cell.
      schema:
        type: string
        enum:
          - columnType
          - objectValue
    sheetSummaryInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separated list of elements to include in the response.

        * **format**: includes format info for cells, rows, and summary fields

        * **writerInfo**: includes createdBy and modifiedBy attributes for rows
        and summary fields
      schema:
        type: string
        enum:
          - format
          - writerInfo
    sheetSummaryExclude:
      name: exclude
      in: query
      required: false
      description: >
        A comma-separated list of elements to not include in the response.

        * **displayValue**: excludes displayValue info for cells, rows, and
        summary fields

        * **image**: excludes image attributes for cells and summary fields

        * **imageAltText**: excludes alt text for cells and summary fields
      schema:
        type: string
        enum:
          - displayValue
          - image
          - imageAltText
    renameIfConflict:
      name: renameIfConflict
      description: >-
        Set to true if you want to override the requirement for unique summary
        field names. Repeated names will be adjusted by appending "(1)" or
        similar after the field name.
      in: query
      required: false
      schema:
        type: boolean
        default: false
    sheetSummaryFieldIds:
      name: ids
      in: query
      required: true
      description: |
        A comma-separated list of Sheet Summary Field Ids.
      schema:
        type: string
    ignoreSummaryFieldsNotFound:
      name: ignoreSummaryFieldsNotFound
      description: >-
        If **true**, the operation will succeed even if some fieldIds are not
        found.
      in: query
      required: false
      schema:
        type: boolean
        default: false
    summaryFieldId:
      name: fieldId
      in: path
      schema:
        type: number
      required: true
      description: Summary Field Id of the sheet summary field being accessed.
    sortRows:
      name: include&exclude
      in: query
      required: false
      description: >
        (Optional) Any of the relevant parameters or query parameters listed for
        [Get Sheet](/api/smartsheet/openapi/sheets/getsheet).
      schema:
        type: string
    sightId:
      name: sightId
      in: path
      required: true
      description: SightID of the sight being accessed.
      schema:
        type: string
    sightInclude:
      name: include
      in: query
      required: false
      description: |
        A comma-separated list of optional elements to include in the response:
          * **objectValue** - when used in combination with a **level** query parameter, includes the email addresses for multi-contact data.
          * **source** - the Source object for any Sight that was created from another Sight, if any
      schema:
        type: string
        enum:
          - objectValue
          - source
    sightLevel:
      name: level
      in: query
      required: false
      description: >-
        Specifies whether new functionality, such as multi-contact data is
        returned in a backwards-compatible, text format (**level=0**, default),
        multi-contact data (**level=2**), multi-picklist data (**level=3**), or
        Metric widget with sheet summary (**level=4**).
      schema:
        type: integer
        default: 0
    emailInclude:
      name: email
      description: Comma-separated list of email addresses on which to filter the results.
      in: query
      required: false
      schema:
        type: string
    lastLoginInclude:
      name: include
      description: >
        If the API request is submitted by a system administrator and when
        specified with a value of 'lastLogin', response includes a lastLogin
        attribute for each user that indicates the Last login date/time of the
        user.


        **Note** If the number of users included in the response is > 100, you
        must paginate your query to see the lastLogin attribute. For large
        responses, the lastLogin attribute is never included.
      in: query
      required: false
      schema:
        type: string
    userProfileInclude:
      name: include
      description: >-
        When specified with a value of 'groups', response includes an array of
        groups (groupId, name, and description only) that the user is a member
        of.
      in: query
      required: false
      schema:
        type: string
        enum:
          - groups
    alternateEmailId:
      name: alternateEmailId
      description: Alternate Email Id
      in: path
      required: true
      schema:
        type: number
    webhookId:
      name: webhookId
      in: path
      required: true
      description: The Id of a Webhook
      schema:
        type: string
    workspaceCreateInclude:
      name: include
      in: query
      required: false
      description: >
        A comma-separated list of elements to include:
          * **all**
          * **attachments**
          * **brand**
          * **cellLinks** - includes cross-sheet references
          * **data** - includes formatting
          * **discussions** - includes comments
          * **filters**
          * **forms**
          * **ruleRecipients**
          * **rules**
          * **shares**
        NOTE: Cell history is not copied, regardless of which include parameter
        values are specified.
      schema:
        type: string
        enum:
          - all
          - attachments
          - brand
          - cellLinks
          - data
          - discussions
          - filters
          - forms
          - ruleRecipients
          - rules
          - shares
    workspaceId:
      name: workspaceId
      in: path
      schema:
        type: string
      required: true
      description: WorkspaceID of the worksheet being accessed.
  responses:
    '400':
      description: Bad Request.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '401':
      description: |
        Unauthorized.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            1001Example:
              summary: 401 - 1001 - An Access Token is required
              value:
                errorCode: 1001
                message: An Access Token is required
                refId: exlxshtxlpl8
            1002Example:
              summary: 401 - 1002  - Your Access Token is invalid
              value:
                errorCode: 1003
                message: Your Access Token is invalid
                refId: exlxshtxlpl8
            1003Example:
              summary: 401 - 1003 - Your Access Token has expired
              value:
                errorCode: 1003
                message: Your Access Token has expired
                refId: exlxshtxlpl8
            1005Example:
              summary: 401 - 1005 - Single Sign-On is required for this account
              value:
                errorCode: 1005
                message: Single Sign-On is required for this account
                refId: exlxshtxlpl8
            1030Example:
              summary: 401 - 1030 - You are unable to assume the user specified
              value:
                errorCode: 1030
                message: You are unable to assume the user specified
                refId: exlxshtxlpl8
            1067Example:
              summary: 401 - 1067 - Invalid client_id
              value:
                errorCode: 1067
                message: Invalid client_id
                refId: exlxshtxlpl8
    '403':
      description: |
        Forbidden.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '404':
      description: |
        Not Found.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            1006Example:
              summary: 404 - 1006 - Not Found
              value:
                errorCode: 1006
                message: Not Found
                refId: exlxshtxlpl8
    '405':
      description: |
        Method Not Allowed.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            1010Example:
              summary: 404 - 1010 - HTTP Method Not Supported
              value:
                errorCode: 1010
                message: HTTP Method Not Supported
                refId: exlxshtxlpl8
            1122Example:
              summary: '404 - 1122 - Requested URL does not support this method: {0}'
              value:
                errorCode: 1122
                message: 'Requested URL does not support this method: {0}.'
                refId: exlxshtxlpl8
    '406':
      description: |
        Not Acceptable.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            1052Example:
              summary: Invalid Accept header. Media type not supported.
              value:
                errorCode: 1052
                message: Invalid Accept header. Media type not supported.
                refId: exlxshtxlpl8
    '410':
      description: |
        Gone.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            4005Example:
              summary: API Version Retired.
              value:
                errorCode: 4005
                message: API Version Retired.
                refId: exlxshtxlpl8
    '415':
      description: |
        Gone.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            1124Example:
              summary: Invalid Content-Type header. Media type not supported.
              value:
                errorCode: 1124
                message: Invalid Content-Type header. Media type not supported.
                refId: exlxshtxlpl8
    '429':
      description: |
        Gone.  See Smartsheet Error Code and Message for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            4003Example:
              summary: Rate limit exceeded.
              value:
                errorCode: 4003
                message: Rate limit exceeded.
                refId: exlxshtxlpl8
    '500':
      description: >
        Internal Server Error.  See Smartsheet Error Code and Message for
        details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            1119Example:
              summary: 500 - 1119 - Failed to complete copy
              value:
                errorCode: 1119
                message: Failed to complete copy.
                refId: exlxshtxlpl8
            1170Example:
              summary: >-
                500 - 1170 - The sheet referenced by this widget is unavailable
                or deleted.
              value:
                errorCode: 1170
                message: The sheet referenced by this widget is unavailable or deleted.
                refId: exlxshtxlpl8
            1171Example:
              summary: >-
                500 - 1171 - The report referenced by this widget is unavailable
                or deleted.
              value:
                errorCode: 1171
                message: >-
                  The report referenced by this widget is unavailable or
                  deleted.
                refId: exlxshtxlpl8
            1172Example:
              summary: 500 - 1172 - The referenced cell is unavailable or deleted.
              value:
                errorCode: 1172
                message: The referenced cell is unavailable or deleted.
                refId: exlxshtxlpl8
            1278Example:
              summary: 500 - 1278 - Proofing service error.
              value:
                errorCode: 1278
                message: Proofing service error.
                refId: exlxshtxlpl8
            1285Example:
              summary: 500 - 1285 - Dashboard source profile field missing.
              value:
                errorCode: 1285
                message: Dashboard source profile field missing.
                refId: exlxshtxlpl8
            4000Example:
              summary: >-
                500 - 4000 - An unexpected error has occurred. Please contact
                api@smartsheet.com for assistance.
              value:
                errorCode: 4000
                message: >-
                  An unexpected error has occurred. Please contact
                  api@smartsheet.com for assistance.
                refId: exlxshtxlpl8
            4001Example:
              summary: >-
                500 - 4001 - Smartsheet.com is currently offline for system
                maintenance. Please check back again shortly.
              value:
                errorCode: 4001
                message: >-
                  Smartsheet.com is currently offline for system maintenance.
                  Please check back again shortly.
                refId: exlxshtxlpl8
            4002Example:
              summary: 500 - 4002 - Server timeout exceeded. Request has failed.
              value:
                errorCode: 4002
                message: Server timeout exceeded. Request has failed.
                refId: exlxshtxlpl8
            4004Example:
              summary: >-
                500 - 4004 - An unexpected error has occurred. Please retry your
                request. If you encounter this error repeatedly, please contact
                api@smartsheet.com for assistance.
              value:
                errorCode: 4004
                message: >-
                  An unexpected error has occurred. Please retry your request.
                  If you encounter this error repeatedly, please contact
                  api@smartsheet.com for assistance.
                refId: exlxshtxlpl8
            4004Example2:
              summary: >-
                500 - 4004 - Request failed because sheetId {0} is currently
                being updated by another request that uses the same access
                token. Please retry your request once the previous request has
                completed.
              value:
                errorCode: 4004
                message: >-
                  Request failed because sheetId {0} is currently being updated
                  by another request that uses the same access token. Please
                  retry your request once the previous request has completed.
                refId: exlxshtxlpl8
            5151Example:
              summary: >-
                500 - 5151 - The action could not be completed because the
                following people are outside of the approved domain sharing
                list:[email address]
              value:
                errorCode: 5151
                message: >-
                  The action could not be completed because the following people
                  are outside of the approved domain sharing list:[email
                  address]
                refId: exlxshtxlpl8
            5502Example:
              summary: >-
                500 - 5502 - You must have sheet admin permission to save a
                notification with recipients other than yourself.
              value:
                errorCode: 5502
                message: >-
                  You must have sheet admin permission to save a notification
                  with recipients other than yourself.
                refId: exlxshtxlpl8
