openapi: 3.1.0
info:
  contact:
    name: Workiva Inc
    url: https://www.workiva.com
    email: platformsupport@workiva.com
  description: |
    The Wdata Preparation API allow users
    to import data sets from their source system, tag, organize, manipulate, share,
    export, and query against the data
  title: Wdata API
  version: '1.0'
  termsOfService: https://developers.workiva.com
servers:
  - url: https://h.app.wdesk.com/s/wdata/prep
    description: US
  - url: https://h.eu.wdesk.com/s/wdata/prep
    description: EU
  - url: https://h.apac.wdesk.com/s/wdata/prep
    description: APAC
externalDocs:
  description: Developer documentation for Workiva Inc.
  url: https://developers.workiva.com
tags:
  - description: <br>The Query Management API endpoints provide an interface to run and perform CRUD operations on queries. Running queries is asynchronous. Creating or previewing queries creates a query object that can be executed separately. Query execution results in the creation of an entity with a status that can be polled. A status of COMPLETED or ERROR indicates the query has completed. You must first obtain a token to download a CSV file of the query results.
    name: Query Management
  - description: <br>The Parameter Management API endpoints provide an interface for interacting with Global Parameters to be used in filtering queries and pivot views.
    name: Parameter Management
  - description: |-
      <br>The File Management API endpoints provide an interface to interact with files and their metadata. 
      * To import a file into a table, the `Upload File` endpoint in this API moves a file status to STAGED, and the `Import File` endpoint in the Table Management API is then moves it to IMPORTED.  If the file contains an error, the `Errors` endpoint can download a list of errors. 
      * To delete an imported file, it must be unimported via the Table Management API, and then deleted via the `Delete File` endpoint in this API. 
      * To update a file, it must first be deleted and then re-imported. Any attempt to upload a file with the same name as a file already in the table results in an error.
    name: File Management
  - description: <br>The Pivot View Management API endpoints provide an interface to manipulate pivot views.
    name: Pivot View Management
  - description: <br>The Table Management API endpoints provide an interface to interact with fact and dimension tables. Columns can only be added; this endpoint doesn't delete or modify columns.<br><br>A column is considered new if no other column can be found with the same name. This equality check is case-insensitive. New columns appear after other user-defined columns, but before any meta columns, which start with `_`.<br><br>To indicate a fact table, these endpoints refer to a table type of data.
    name: Table Management
  - description: <br>The Folder Management API endpoints provide an interface to interact with file folders and their contents.
    name: Folder Management
  - description: <br>The Health API endpoints provide methods to return status and debug information.
    name: API Health
  - description: <br> The Administrative Tasks API endpoints facilitate basic admin functionality. As only admins in an individual workspace can access these operations, these endpoints are permissioned at a user level.  No cross-workspace operations are supported.
    name: Administrative Tasks
  - description: <br>The Shared Table Management API endpoints provide an interface to interact with shared tables.
    name: Shared Table Management
  - description: <br>The Utility API endpoints provide helper methods to make life just a little easier.
    name: Utilities
  - description: <br>The Select List Management API endpoints provide an interface to interact with select lists.
    name: Select List Management
  - description: <br>The Token Management API endpoints provide an interface to create short-lived tokens to use to download files.
    name: Token Management
  - description: <br>The Tag Management API endpoints provide an interface to interact with descriptive tags.
    name: Tag Management
  - description: <br>The Connections API endpoints enable an interface to retrieve information about data connections between features of the Workiva platform.
    name: Connection Management
components:
  schemas:
    BaseErrorResponseDetail:
      type: object
      properties:
        code:
          description: Error code of specific error
          type: string
        message:
          description: Message of specific error
          type: string
        target:
          description: Target of specific error
          type: string
      required:
        - code
        - message
    BaseResponseCollectionFolderableDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/FolderableDto'
        code:
          type: integer
          format: int32
    BaseResponseConnectionDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/ConnectionDto'
        code:
          type: integer
          format: int32
    BaseResponseConnectionRunDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/ConnectionRunDto'
        code:
          type: integer
          format: int32
    BaseResponseDescribeQueryResponseDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/DescribeQueryResponseDto'
        code:
          type: integer
          format: int32
    BaseResponseFileMetaDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/FileMetaDto'
        code:
          type: integer
          format: int32
    BaseResponseFolderDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/FolderDto'
        code:
          type: integer
          format: int32
    BaseResponseGlobalParameterDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/GlobalParameterDto'
        code:
          type: integer
          format: int32
    BaseResponseImportInfoDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/ImportInfoDto'
        code:
          type: integer
          format: int32
    BaseResponseLong:
      type: object
      properties:
        body:
          type: integer
          format: int64
        code:
          type: integer
          format: int32
    BaseResponseMapStringString:
      type: object
      properties:
        body:
          type: object
          additionalProperties:
            type: string
        code:
          type: integer
          format: int32
    BaseResponsePivotViewDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/PivotViewDto'
        code:
          type: integer
          format: int32
    BaseResponseQueryColumnDataDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/QueryColumnDataDto'
        code:
          type: integer
          format: int32
    BaseResponseQueryDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/QueryDto'
        code:
          type: integer
          format: int32
    BaseResponseQueryResultDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/QueryResultDto'
        code:
          type: integer
          format: int32
    BaseResponseRefreshBatchDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/RefreshBatchDto'
        code:
          type: integer
          format: int32
    BaseResponseSelectListDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/SelectListDto'
        code:
          type: integer
          format: int32
    BaseResponseSharedTableDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/SharedTableDto'
        code:
          type: integer
          format: int32
    BaseResponseSpreadsheetInfoDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/SpreadsheetInfoDto'
        code:
          type: integer
          format: int32
    BaseResponseString:
      type: object
      properties:
        body:
          type: string
        code:
          type: integer
          format: int32
    BaseResponseTableDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/TableDto'
        code:
          type: integer
          format: int32
    BaseResponseTagDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/TagDto'
        code:
          type: integer
          format: int32
    BaseResponseTokenDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/TokenDto'
        code:
          type: integer
          format: int32
    BaseResponseValidateFilesDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/ValidateFilesDto'
        code:
          type: integer
          format: int32
    BaseResponseValidateTablesDto:
      type: object
      properties:
        body:
          $ref: '#/components/schemas/ValidateTablesDto'
        code:
          type: integer
          format: int32
    Column:
      type: object
      properties:
        alias:
          type: string
        description:
          type: string
        metadata:
          type: object
          additionalProperties: {}
        mode:
          type: string
          enum:
            - nullable
            - required
            - repeated
        name:
          type: string
        type:
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
    ColumnDto:
      type: object
      properties:
        alias:
          description: Optional alias, may be at most 255 characters in length
          type: string
          maxLength: 255
          minLength: 0
        description:
          description: May be at most 255 characters in length
          type: string
          maxLength: 255
          minLength: 0
        metadata:
          description: "Optional type metadata. Current allowed parameters are: 'formatString' allows users to define their own Java8 datetime format string.'numberFormat' allows parsing of alternative decimal formats such as 1.000,00"
          type: object
          additionalProperties: {}
        mode:
          description: This property is for future use, currently always set to nullable
          type: string
          enum:
            - nullable
            - required
            - repeated
        name:
          description: May be at most 100 characters in length
          type: string
          maxLength: 100
          minLength: 0
        type:
          description: The type of column
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
      required:
        - name
        - type
    ColumnInfoDto:
      description: Contains column name and derived type from the associated query.
      type: object
      properties:
        name:
          description: The name of the column
          type: string
          readOnly: true
        type:
          description: The column's type
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
          readOnly: true
    ConnectionDto:
      type: object
      properties:
        connectionId:
          description: The unique ID of the connection
          type: string
          readOnly: true
        created:
          description: When the connection was created, as a datetime
          type: string
          format: date-time
          readOnly: true
        createdBy:
          description: The ID of the user that created the connection
          type: string
          readOnly: true
        description:
          description: The description of the connection, if specified
          type: string
          readOnly: true
        destinationId:
          description: The ID of the file or item the connection sends data to
          type: string
          readOnly: true
        destinationType:
          description: The type of file or item the connection sends data to
          type: string
          enum:
            - spreadsheet
            - spreadsheet_section
            - presentation
            - presentation_chart
            - presentation_embedded_table
            - document
            - document_chart
            - document_embedded_table
            - wdata_query
            - wdata_shared_query
            - wdata_table
            - wdata_table_dataset
            - report
            - esg_program
            - chart_visual
            - unknown_record_type
          readOnly: true
        destinationWorkspaceId:
          description: The workspace of the file or item the connection sends data to
          type: string
          readOnly: true
        lastRun:
          description: The last run of this connection
          $ref: '#/components/schemas/ConnectionRunDto'
          readOnly: true
        lastRunBy:
          description: The ID of the user that last ran the connection
          type: string
          readOnly: true
        lastRunDate:
          description: When the connection last ran, as a datetime
          type: string
          format: date-time
          readOnly: true
        lastRunDestinationParameters:
          description: A map of the parameters used with the destination when the connection last ran
          type: object
          additionalProperties: {}
          readOnly: true
        lastRunJobId:
          description: The ID of the connection's last run
          type: string
          readOnly: true
        lastRunSourceParameters:
          description: A map of the parameters used with the source when the connection last ran
          type: object
          additionalProperties: {}
          readOnly: true
        metadata:
          description: Any additional information about the connection
          type: object
          additionalProperties: {}
          readOnly: true
        name:
          description: The name of the connection, if specified
          type: string
          readOnly: true
        sourceId:
          description: The ID of the file or item the connection pulls data from
          type: string
          readOnly: true
        sourceType:
          description: The type of file or item the connection pulls data from
          type: string
          enum:
            - spreadsheet
            - spreadsheet_section
            - presentation
            - presentation_chart
            - presentation_embedded_table
            - document
            - document_chart
            - document_embedded_table
            - wdata_query
            - wdata_shared_query
            - wdata_table
            - wdata_table_dataset
            - report
            - esg_program
            - chart_visual
            - unknown_record_type
          readOnly: true
        sourceWorkspaceId:
          description: The workspace of the file or item the connection pulls data from
          type: string
          readOnly: true
        updated:
          description: When the connection was updated, as a datetime.
          type: string
          format: date-time
          readOnly: true
        workspaceId:
          description: The workspace the connection belongs to
          type: string
          readOnly: true
    ConnectionRunDto:
      type: object
      properties:
        connectionId:
          description: The unique ID of the connection
          type: string
          readOnly: true
        created:
          description: When the connection was created, as a datetime
          type: string
          format: date-time
          readOnly: true
        createdBy:
          description: The ID of the user that created the connection
          type: string
          readOnly: true
        destinationMetadata:
          description: Any Metadata provided to the destination
          type: object
          additionalProperties: {}
          readOnly: true
        destinationParameters:
          description: Any parameters provided to the destination
          type: object
          additionalProperties: {}
          readOnly: true
        destinationStatus:
          description: The run status of the destination
          type: string
          enum:
            - not_started
            - running
            - complete
            - error
            - cancelled
          readOnly: true
        destinationWorkspaceId:
          description: The workspace of the the run destination
          type: string
          readOnly: true
        error:
          description: An error, if encountered, while initiating the job
          type: string
          readOnly: true
        jobId:
          description: The unique ID of the job
          type: string
          readOnly: true
        sourceMetadata:
          description: Any Metadata provided to the source
          type: object
          additionalProperties: {}
          readOnly: true
        sourceParameters:
          description: Any parameters provided to the source
          type: object
          additionalProperties: {}
          readOnly: true
        sourceStatus:
          description: The run status of the source
          type: string
          enum:
            - not_started
            - running
            - complete
            - error
            - cancelled
          readOnly: true
        sourceWorkspaceId:
          description: The workspace of the run source
          type: string
          readOnly: true
        updated:
          description: When the connection was updated, as a datetime
          type: string
          format: date-time
          readOnly: true
        workspaceId:
          description: The workspace id for this connection
          type: string
          readOnly: true
    DatetimeDto:
      type: object
      properties:
        candidate:
          description: Candidate to parse with the provided dateformat.
          type: string
          maxLength: 200
          minLength: 0
        dateFormat:
          description: The dateformat of the candidate to test.
          type: string
          maxLength: 200
          minLength: 0
      required:
        - candidate
        - dateFormat
    DescribeQueryColumnDto:
      type: object
      properties:
        catalog:
          description: The source of the column
          type: string
          readOnly: true
        catalogColumnName:
          description: The name of the original column, if available
          type: string
          readOnly: true
        name:
          description: The name of the column
          type: string
          readOnly: true
        schema:
          description: The source's schema for this column
          type: string
          readOnly: true
        table:
          description: The schema's table for this column
          type: string
          readOnly: true
        type:
          description: The column's type
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
          readOnly: true
    DescribeQueryResponseDto:
      type: object
      properties:
        columns:
          description: |-
            A list of the output columns, including the name, type, and source information that would be
            returned in the result of a successful query run.
          type: array
          items:
            $ref: '#/components/schemas/DescribeQueryColumnDto'
          readOnly: true
      required:
        - columns
    ExportFileDto:
      type: object
      properties:
        url:
          description: URL of the spreadsheet to export to, if present. If not present, a new spreadsheet will be created.
          type: string
          maxLength: 500
          minLength: 0
    ExportQueryResultDto:
      type: object
      properties:
        exportAsDataset:
          description: If set to true, the data will be exported as a connected dataset to spreadsheets.
          type: boolean
        url:
          description: URL of the spreadsheet to export to, if present. If not present, a new spreadsheet will be created.
          type: string
          maxLength: 500
          minLength: 0
        useFlatKey:
          description: Export flat query results in the context of crosstab queries; Ignored unless true.
          type: boolean
    FileMetaDto:
      type: object
      properties:
        columnMappings:
          description: Maps the columns in the physical file (CSV or JSON) to the columns in fact table = {"physical_col1":"table_col1", "physical_col2":"table_col2"}
          type: object
          additionalProperties:
            type: string
          readOnly: true
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        delimiter:
          description: |-
            The character to use as a delimiter within the file to separate one field from
            another.  The default is comma
          type: string
          readOnly: true
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        key:
          description: The key is here for backwards compatibility only and will always be an empty string.
          type: string
          deprecated: true
          readOnly: true
        metadata:
          description: The file's meta data
          type: object
          additionalProperties:
            additionalProperties: {}
            type: object
          readOnly: true
        name:
          description: The name of the file
          type: string
          readOnly: true
        numErrors:
          description: Number of errors found in the file
          type: integer
          format: int64
          readOnly: true
        numRecords:
          description: Number of records imported from this file.  This will only be non-zero if the file is in the IMPORTED status.
          type: integer
          format: int64
          readOnly: true
        originalFileSize:
          description: Size of the original file that was uploaded.
          type: integer
          format: int64
          readOnly: true
        source:
          description: URI that describes the source location of this file if imported from another system. For instance, this will have a spreadsheet URL if this file was imported from spreadsheets. This will be null if the file was uploaded using the data prep API.
          type: string
          readOnly: true
        status:
          description: The files's current status
          type: string
          enum:
            - STAGING
            - STAGED
            - IMPORTING
            - IMPORTED
            - ERROR
          readOnly: true
        tableId:
          description: The unique identifier for the table
          type: string
          readOnly: true
        tags:
          description: The tags associated with the file
          type: object
          additionalProperties:
            type: string
          readOnly: true
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
    FolderDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        description:
          description: A description of the folder
          type: string
          maxLength: 1024
          minLength: 0
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        name:
          description: The name of the folder
          type: string
          maxLength: 255
          minLength: 0
        parentId:
          description: |-
            The ID of the folder to which this folder belongs. This can be null if the folder
            is not in another folder.
          type: string
          readOnly: true
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - name
    FolderableDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        description:
          description: A description of the folderable entity
          type: string
          readOnly: true
        id:
          description: The UUID unique identifier for the entity.
          type: string
          pattern: '[a-f0-9]{12}4[a-f0-9]{3}[89aAbB][a-f0-9]{15}'
        metadata:
          description: |-
            Contains additional metadata about the entity returned. For example, a table entity
            might have a type attribute.
          type: object
          additionalProperties: {}
          readOnly: true
        modified:
          description: When a significant event happened on the data object.  For example, for queries, this is when the last run occurred; for tables, this is when the last upload occurred.
          type: string
          format: date-time
          readOnly: true
        modifiedBy:
          description: The identifier of the user who last modified the entity
          type: string
          readOnly: true
        name:
          description: The name of the folderable entity
          type: string
          readOnly: true
        parentId:
          description: |-
            The ID of the folder to which this entity belongs. This can be null if the entity
            is not in a folder.
          type: string
          readOnly: true
        type:
          description: "The numerical identifier for the entity's type:  Query=100, Table=200, Pivot View=500, Folder=600, Shared Table=700"
          type: integer
          format: int32
        updated:
          description: When the data object was last updated
          type: string
          format: date-time
          readOnly: true
        updatedBy:
          description: The identifier of the user who last updated the entity
          type: string
          readOnly: true
      required:
        - id
        - type
    GlobalParameterDto:
      type: object
      properties:
        choices:
          description: |-
            If the parameter is of type select, this is a list of possible choices. This is
            read only and is for listing and viewing reports to help the user.
          type: array
          items: {}
          readOnly: true
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        databaseId:
          description: |-
            The unique identifier of the database where this parameter can be used to filter
            query results
          type: string
          readOnly: true
        description:
          description: The description of the parameter
          type: string
          maxLength: 10000
          minLength: 0
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        label:
          description: The label for the query parameter
          type: string
          maxLength: 255
          minLength: 0
        listType:
          description: |-
            For single and multi-select parameters, this represents the type of select list.
            Supported types are 'static' and 'external_legal_entity'. This field is only
            required when creating a SYSTEM-scoped parameter, in which case it specifies a
            valid select list type to auto-create. For GLOBAL and LOCAL scoped parameters,
            this field is read-only and populated based on the referenced select list.
          type: string
        mode:
          description: The mode of the parameter
          type: string
          enum:
            - scalar
            - singleSelect
            - multiSelect
        name:
          description: The name of the parameter
          type: string
          maxLength: 255
          minLength: 0
          pattern: \w+
        overridable:
          description: |-
            Denotes if this parameter can be overridden later in the process, either when the
            query is created or executed.  The default is true; it can be overridden.
          type: boolean
        scope:
          description: The scope of the parameter (global, local, or system)
          type: string
          enum:
            - global
            - local
            - system
        selectListId:
          description: |-
            If mode is select, this must be populated and is a reference to a select list from
            which choices will be derived. For SYSTEM-scoped parameters, this field is optional
            and will be resolved from the listType if not provided.
          type: string
        type:
          description: The type of the parameter
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        value:
          description: The default value of the parameter
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - mode
        - name
        - type
    HierarchyMetadata:
      type: object
      properties:
        childColumnId:
          description: |
            The name of a column in the table that represents a unique identifier in the column.
            Every value in this column in the table should be unique and the value must not be
            empty. This identifier needs to match a column name defined in the table and the type
            of the column must be a string.
          type: string
          maxLength: 100
          minLength: 0
        parentColumnId:
          description: |
            The name of a column in the table that represents the parent identifier of any given
            row. The column referenced in this identifier should contain a value that references
            a value found in the child id column. Because a parent can have multiple children, the
            values in this column do not need to be unique. This column can contain a null which
            simply indicates the row is a root node.
          type: string
          maxLength: 100
          minLength: 0
      required:
        - childColumnId
        - parentColumnId
    ImportDto:
      type: object
      properties:
        columnMappings:
          description: a map of import column names to table column ids
          type: object
          example: '{import column id:"table column id"}'
          additionalProperties:
            type: string
        delimiter:
          description: |-
            For overriding the file metadata's delimiter. The file delimiter is the character to
            use within the file to separate one field from another. If this value is not set,
            the import will use the file's set delimiter. If this value is set, the file metadata's
            delimiter will be updated on the file object.
          type: string
        fileId:
          description: id of the file to import to the table
          type: string
          maxLength: 32
          minLength: 0
        metadata:
          description: |-
            For overriding column metadata specifically for this import. The keys in this object
            are column identifiers with the values being metadata objects.
          type: object
          additionalProperties:
            additionalProperties: {}
            type: object
        tags:
          description: an object containing keys and values, which becomes the tag map
          type: object
          example:
            key: value
          additionalProperties:
            type: string
      required:
        - fileId
    ImportErrorDto:
      type: object
      properties:
        code:
          description: The error code
          type: integer
          format: int64
          readOnly: true
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        lineNumber:
          description: |-
            Contains the line number the error occurred on if the error can be reduced to a
            single line (ie, date formatting error)
          type: integer
          format: int64
          readOnly: true
        message:
          description: The error message
          type: string
          readOnly: true
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
    ImportFromSpreadsheetDto:
      type: object
      properties:
        fileId:
          type: string
        name:
          type: string
          maxLength: 100
          minLength: 0
        tags:
          type: object
          additionalProperties:
            type: string
        url:
          type: string
      required:
        - name
        - url
    ImportInfoDto:
      type: object
      properties:
        numFiles:
          description: The total number of individual files imported to the table.
          type: integer
          format: int64
          readOnly: true
        numRecords:
          description: The total number of records/rows of data imported to the table.
          type: integer
          format: int64
          readOnly: true
        tableId:
          description: The id for the table that the import info applies to.
          type: string
          readOnly: true
    MultiError:
      type: object
      properties:
        body:
          description: A human-readable message describing the error
          type: array
          items:
            type: string
        code:
          description: A server-defined error code
          type: integer
          format: int32
        details:
          description: Additional details of the error
          type: array
          items:
            $ref: '#/components/schemas/BaseErrorResponseDetail'
      required:
        - body
        - code
    PagedResponseConnectionDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseFileMetaDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/FileMetaDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseFolderDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/FolderDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseFolderableDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/FolderableDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseGlobalParameterDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/GlobalParameterDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseImportErrorDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/ImportErrorDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponsePivotViewDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/PivotViewDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseQueryDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/QueryDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseQueryResultDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/QueryResultDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseSelectListDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/SelectListDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseSharedTableDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/SharedTableDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseTableDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/TableDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PagedResponseTagDto:
      type: object
      properties:
        body:
          type: array
          items:
            $ref: '#/components/schemas/TagDto'
        code:
          type: integer
          format: int32
        cursor:
          type: string
    PivotDefinitionDto:
      type: object
      properties:
        columns:
          description: The colmnnns associated with the pivot view
          type: array
          items:
            $ref: '#/components/schemas/PivotViewDefinitionColumnDto'
          maxItems: 30
          minItems: 0
        decimalPlaces:
          description: Numeric data values are rounded to the number of decimal places.  The default number to round to and show is 2 decimal places, and the maximum number is capped at 16.
          type: integer
          format: int32
          maximum: 16
          minimum: 0
        filters:
          description: The filters associated with the pivot view
          type: array
          items:
            $ref: '#/components/schemas/PivotViewDefinitionFilterDto'
          maxItems: 30
          minItems: 0
        grandTotalEnabled:
          description: The level to which Grand Totals are enabled.  It is defaulted to DISABLED.
          type: string
          enum:
            - ENABLED
            - ROW
            - COLUMN
            - DISABLED
        id:
          description: The pivot view's definition's id
          type: string
          pattern: '[a-f0-9]{12}4[a-f0-9]{3}[89aAbB][a-f0-9]{15}'
          readOnly: true
        multipleHeaders:
          description: Denotes whether a pivot is created in multi-line header mode. Default is false.
          type: boolean
        pivotViewType:
          description: The type of pivot view. Options are currently Classic and Compact.
          type: string
          enum:
            - CLASSIC
            - COMPACT
            - FLAT
        rows:
          description: The rows associated with the pivot view
          type: array
          items:
            $ref: '#/components/schemas/PivotViewDefinitionRowDto'
          maxItems: 30
          minItems: 0
        sortColumns:
          description: Columns with which to sort the crosstab query
          type: array
          items:
            type: string
          maxItems: 30
          minItems: 0
        subtotalEnabled:
          description: The level to which Subtotals are enabled.  It is defaulted to DISABLED.
          type: string
          enum:
            - ENABLED
            - ROW
            - COLUMN
            - DISABLED
        values:
          description: The values associated with the pivot view
          type: array
          items:
            $ref: '#/components/schemas/PivotViewDefinitionValueDto'
          maxItems: 30
          minItems: 0
    PivotViewDefinitionColumnDto:
      type: object
      properties:
        columnType:
          description: The column type.
          type: string
          enum:
            - integer
            - number
            - boolean
            - timestamp
            - date
            - string
            - float
        name:
          description: Name of the pivot view column. The maximum size is 255 characters.
          type: string
          maxLength: 255
          minLength: 0
      required:
        - name
    PivotViewDefinitionFilterDto:
      type: object
      properties:
        betweenValue:
          description: A second value for 'between' filters
          type: string
          maxLength: 255
          minLength: 0
        columnType:
          description: The column type.
          type: string
          enum:
            - integer
            - number
            - boolean
            - timestamp
            - date
            - string
            - float
        exclude:
          description: True if value list is exclude, false if value list is include. Defaults to true.
          type: boolean
        filter:
          description: The filter to perform.
          type: string
          enum:
            - EQUAL
            - NOT_EQUAL
            - GREATER
            - GREATER_OR_EQUAL
            - LESS
            - LESS_OR_EQUAL
            - BETWEEN
            - NOT_BETWEEN
        filterValues:
          description: The values obtained after applying the filter
          type: array
          items:
            type: string
          maxItems: 200
          minItems: 0
        name:
          description: The column for the pivot view filter. The maximum size is 255 characters.
          type: string
          maxLength: 255
          minLength: 0
        value:
          description: The value to filter on.
          type: string
          maxLength: 255
          minLength: 0
      required:
        - columnType
        - exclude
        - name
    PivotViewDefinitionRowDto:
      type: object
      properties:
        name:
          description: Name of the pivot view row. The maximum size is 255 characters.
          type: string
          maxLength: 255
          minLength: 0
        type:
          description: The column type.
          type: string
          enum:
            - integer
            - number
            - boolean
            - timestamp
            - date
            - string
            - float
      required:
        - name
    PivotViewDefinitionValueDto:
      type: object
      properties:
        active:
          type: boolean
        aggregation:
          description: The aggregation type to apply to the pivot view value
          type: string
          enum:
            - sum
            - count
            - distinctcount
            - average
            - median
            - product
            - min
            - max
            - percent
            - percentofcolumn
            - percentofrow
            - difference
            - percentdifference
            - runningtotals
            - stdevp
            - stdevs
        columnType:
          description: The column type.
          type: string
          enum:
            - integer
            - number
            - boolean
            - timestamp
            - date
            - string
            - float
        name:
          description: Name of the pivot view value. The maximum size is 255 characters.
          type: string
          maxLength: 255
          minLength: 0
      required:
        - active
        - aggregation
        - name
    PivotViewDto:
      type: object
      properties:
        additionalMeta:
          description: User-defined metadata to attach to the pivot view. This is any arbitrary JSON object and is not required.
          type: object
          additionalProperties: {}
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        description:
          description: The description of the pivot view
          type: string
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        name:
          description: Name of the pivot view. The maximum size is 255 characters.
          type: string
          maxLength: 255
          minLength: 0
        parentId:
          description: |-
            If non-null, indicates the parent of this entity. Must be modified through the
            folder api.
          type: string
          readOnly: true
        queryId:
          description: |-
            The query to associate with this pivot view. This value is required and cannot be
            updated after the pivot is created. Any attempt to update the query ID is ignored.
          type: string
          pattern: '[a-f0-9]{12}4[a-f0-9]{3}[89aAbB][a-f0-9]{15}'
        queryResultId:
          description: An optional query result id to associate with this pivot view. If associated, saving a pivot view will cause an existence check on the related query result.  This value is not required. The query id on the query result must match this pivot's query ID.
          type: string
          pattern: '[a-f0-9]{12}4[a-f0-9]{3}[89aAbB][a-f0-9]{15}'
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - name
        - queryId
    QueryColumnDataDto:
      type: object
      properties:
        columns:
          type: array
          items:
            $ref: '#/components/schemas/Column'
    QueryDependencyDto:
      description: The query text associated with any persisted query contains references to tables upon which that query relies. This model represents those dependencies. Every dependency contains a database and table identifier as in a traditional SQL database.
      type: object
      properties:
        databaseId:
          description: The database in which this dependency exists.
          type: string
          readOnly: true
        system:
          description: The name of the system holding this reference.
          type: string
          enum:
            - prep
            - spreadsheets
            - queries
            - program
            - com
            - iam
            - graph
            - explorer
            - program_v2
            - explorer_v2
            - program_dimension_v1
            - program_tag_v1
            - pcaf
          readOnly: true
        tableId:
          description: The id of the table this dependency represents.
          type: string
          readOnly: true
      required:
        - databaseId
        - system
        - tableId
    QueryDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        definition:
          description: The pivot view's definition
          $ref: '#/components/schemas/PivotDefinitionDto'
        dependencies:
          description: A structured list of dependencies that this query relies upon. This list is populated by the server from the query text. Each dependency model contains enough information to find the source object.
          type: array
          items:
            $ref: '#/components/schemas/QueryDependencyDto'
          readOnly: true
        description:
          description: The description of the query
          type: string
          maxLength: 10000
          minLength: 0
        historyRevision:
          description: Historical revision number of this entity
          type: integer
          format: int64
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        isShared:
          description: Whether or not this query is being shared.
          type: boolean
        lastRun:
          description: If non-null, indicates the last time this query was run.
          type: string
          format: date-time
          readOnly: true
        lastRunBy:
          description: If non-null, indicates the last user that ran the query.
          type: string
          readOnly: true
        name:
          description: The name of the query
          type: string
          maxLength: 100
          minLength: 0
        parameters:
          description: The query parameters
          items:
            $ref: '#/components/schemas/QueryParameterDto'
          maxItems: 30
          minItems: 0
          type: array
        parentId:
          description: |-
            If non-null, indicates the parent of this entity. Must be modified through the
            folder api.
          type: string
          readOnly: true
        primaryQueryResultId:
          description: The identifier of the primary query result
          type: string
          maxLength: 32
          minLength: 0
        queryText:
          description: Max size is 30000 characters.  Is required.  Must be a valid DML statement.
          type: string
          maxLength: 30000
          minLength: 0
        temporary:
          description: Denotes if this query is meant to be temporary.  Default is false.
          type: boolean
        type:
          description: This field exists for backwards compatibility only and will always be an empty string.
          type: string
          deprecated: true
          readOnly: true
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - name
        - queryText
    QueryParameterDto:
      type: object
      properties:
        alias:
          description: The alias of the query parameter, used to avoid name collisions for nested query parameter references
          type: string
          maxLength: 255
          minLength: 0
          pattern: \w+
        choices:
          description: |-
            If the query parameter is of type select, this is a list of possible choices. This
            is read only and is for listing and viewing reports to help the user.
          type: array
          items: {}
          readOnly: true
        id:
          description: The entity's unique identifier, set if it is a reference kind.
          type: string
        label:
          description: The label for the query parameter
          type: string
          maxLength: 255
          minLength: 0
        listType:
          description: |-
            If the query parameter is of type select, this is the listType and is either
            static or external_legal_entity.
          type: string
        mode:
          description: The mode of the query parameter
          type: string
          enum:
            - scalar
            - singleSelect
            - multiSelect
            - reference
        name:
          description: The name of the query parameter
          type: string
          maxLength: 255
          minLength: 0
          pattern: \w+
        overridable:
          description: Whether the parameter can be overridden, defaults to true.
          type: boolean
          readOnly: true
        reference:
          description: The hydrated reference object
          readOnly: true
        selectListId:
          description: |-
            If mode is select, this must be populated and is a reference to a select list from
            which choices will be derived.
          type: string
        type:
          description: The type of the query parameter
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
        value: {}
      required:
        - mode
        - name
        - type
    QueryResultDto:
      type: object
      properties:
        bytesScanned:
          description: The number of bytes scanned
          type: integer
          format: int64
          readOnly: true
        columns:
          description: If the query has successfully completed, contains a list of columns and their associated computed types from the query.
          type: array
          items:
            $ref: '#/components/schemas/ColumnInfoDto'
          readOnly: true
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        duration:
          description: The duration of time it took to execute the query
          type: integer
          format: int64
          readOnly: true
        error:
          description: |-
            If an error was encountered during the query, this field will be populated with
            error text.
          type: string
          readOnly: true
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        isExplain:
          description: Determines if this query is to be explained and not executed
          type: boolean
        parameters:
          description: The query parameter map
          additionalProperties: {}
          type: object
        pivotStatus:
          description: The current status of the pivot execution
          type: string
          enum:
            - NOT_STARTED
            - RUNNING
            - COMPLETE
            - ERROR
            - CANCELLED
            - RUNNING_QUERY
            - PIVOT_QUEUED
            - RUNNING_PIVOT
            - QUERY_COMPLETE
            - NOT_APPLICABLE
            - PIVOT_ERROR
          readOnly: true
        queryDto:
          description: Associated queryDto
          $ref: '#/components/schemas/QueryDto'
        queryId:
          description: The identifier of the original query
          type: string
          maxLength: 32
          minLength: 0
        queryParameters:
          description: Contains the parameters available to the query at the time it was run. This allows consumers to go back in time and view the state of the query at runtime. For older query runs, this value may not be populated.
          type: array
          items:
            $ref: '#/components/schemas/QueryParameterDto'
          readOnly: true
        queryText:
          type: string
          readOnly: true
        rowsReturned:
          description: Contains the number of rows returned from the query.
          type: integer
          format: int64
          readOnly: true
        size:
          description: |-
            Contains the size of the query results in bytes. This can be used to determine how
            best to download the file and if it's reasonable to open it in a browser or other
            application. This may be 0 if there are no results or the query results were gathered
            before we started collecting this metric.
          type: integer
          format: int64
          readOnly: true
        status:
          description: The current status of the query execution
          type: string
          enum:
            - NOT_STARTED
            - RUNNING
            - COMPLETE
            - ERROR
            - CANCELLED
          readOnly: true
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - queryId
    QueryTextDto:
      type: object
      properties:
        queryText:
          description: queryText to be parsed, if present and valid.
          type: string
          maxLength: 30000
          minLength: 0
      required:
        - queryText
    RefreshBatchDto:
      type: object
      properties:
        batchRefreshId:
          description: The unique ID of the batch
          type: string
          readOnly: true
        childRefreshes:
          description: The list of jobs initiated by the batch
          type: array
          items:
            $ref: '#/components/schemas/ConnectionRunDto'
          readOnly: true
        created:
          description: When the batch was created, as a datetime
          type: string
          format: date-time
          readOnly: true
        createdBy:
          description: The ID of the user that created the batch
          type: string
          readOnly: true
        destinationStatus:
          description: The run status of the destination
          type: string
          enum:
            - not_started
            - running
            - complete
            - error
            - cancelled
          readOnly: true
        error:
          description: Any error encountered while initiating the batch
          type: string
          readOnly: true
        sourceStatus:
          description: The run status of the source
          type: string
          enum:
            - not_started
            - running
            - complete
            - error
            - cancelled
          readOnly: true
        updated:
          description: When the batch was updated, as a datetime
          type: string
          format: date-time
          readOnly: true
    RefreshConnectionDto:
      type: object
      properties:
        connectionId:
          description: The unique ID of the connection
          type: string
          writeOnly: true
        destinationParameters:
          description: Parameters to send to the destination, on refresh
          type: object
          additionalProperties: {}
          writeOnly: true
        sourceParameters:
          description: Parameters to send to the source, on refresh
          type: object
          additionalProperties: {}
          writeOnly: true
        usePreviousDestinationParameters:
          description: Use the destination parameters from the previous run. This overrides any specified destination parameters. Ignored by "Refresh batch of connections" endpoint
          type: boolean
          writeOnly: true
        usePreviousSourceParameters:
          description: Use the source parameters from the previous run. This overrides any specified source parameters. Ignored by "Refresh batch of connections" endpoint
          type: boolean
          writeOnly: true
        workspaceId:
          description: The workspace ID of the connection
          type: string
          writeOnly: true
    SelectListDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        description:
          description: 'Description of this select list. Max length: 1024'
          type: string
          maxLength: 1024
          minLength: 0
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        name:
          description: 'Name of this select list. Max length: 100'
          type: string
          maxLength: 100
          minLength: 0
        type:
          description: |-
            Defines the type of the select list. Currently supported types are:
            - `static`: A standard select list with user-defined values
            - `external_legal_entity`: A special select list that contains external legal entity values

            Defaults to `static` if not provided.

            **Important**: Select lists of type `external_legal_entity` have restricted update
            capabilities. Only the `name` field can be modified after creation.
          type: string
          default: static
          enum:
            - static
            - external_legal_entity
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        valueType:
          description: Defines the type of the items in the list.
          type: string
          enum:
            - string
            - bytes
            - integer
            - float
            - boolean
            - timestamp
            - date
            - time
            - datetime
            - global_parameter
            - nested_query_parameter
        values:
          description: List of possible values for the list. These values will be validated against the valueType provided.
          type: array
          items: {}
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - name
        - valueType
        - values
    SharedTableDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        destinationWorkspaceId:
          description: The id of the workspace being shared to.
          type: string
          maxLength: 40
          minLength: 0
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        parentId:
          description: |-
            If non-null, indicates the parent of this entity. Must be modified through the
            folder api.
          type: string
          readOnly: true
        sourceTableId:
          description: The id of the table being shared.
          type: string
          pattern: '[a-f0-9]{12}4[a-f0-9]{3}[89aAbB][a-f0-9]{15}'
        table:
          description: |-
            The associated table which will be hydrated when listing are fetching shared table
            entities.
          $ref: '#/components/schemas/TableDto'
          readOnly: true
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - destinationWorkspaceId
        - sourceTableId
    SingleError:
      type: object
      properties:
        body:
          description: A human-readable message describing the error
          type: string
        code:
          description: A server-defined error code
          type: integer
          format: int32
        details:
          description: Additional details of the error
          type: array
          items:
            $ref: '#/components/schemas/BaseErrorResponseDetail'
      required:
        - body
        - code
    SpreadsheetInfoDto:
      type: object
      properties:
        sheetId:
          description: The unique identifier of the sheet
          type: string
        workbookId:
          description: The unique identifier of the workbook
          type: string
    StartValidateFilesDto:
      type: object
      properties:
        tableId:
          description: The unique identifier for the table.
          type: string
          pattern: '[a-f0-9]{12}4[a-f0-9]{3}[89aAbB][a-f0-9]{15}'
      required:
        - tableId
    TableDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        databaseId:
          description: The unique identifier of the database where the table resides.
          type: string
          readOnly: true
        datasetUpdated:
          description: The last time that the data set for this table was modified.
          type: string
          format: date-time
        deleted:
          description: This is for backwards compatibility only and will always return false.
          type: boolean
          deprecated: true
          readOnly: true
        description:
          description: May be at most 255 characters in length
          type: string
          maxLength: 255
          minLength: 0
        hierarchyMetadata:
          description: |
            For hierarchical tables, this object specifies the parent and child column identifiers.
            Only required for tables of type "hierarchy."
          $ref: '#/components/schemas/HierarchyMetadata'
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        isShared:
          description: A property indicating if this table is shared to any destination.
          type: boolean
          readOnly: true
        lastUploaded:
          description: Contains the date and time of the last file that was imported into the table. Valuable for determining if the data is stale.
          type: string
          format: date-time
          readOnly: true
        name:
          description: May be at most 150 characters in length
          type: string
          maxLength: 150
          minLength: 0
        parentId:
          description: |-
            If non-null, indicates the parent of this entity. Must be modified through the
            folder api.
          type: string
          readOnly: true
        readOnly:
          description: |-
            Indicates if this table is readonly in the account receiving this table. If so, any
            attempt to edit the table will fail.
          type: boolean
          readOnly: true
        tableSchema:
          description: The schema to apply
          $ref: '#/components/schemas/TableSchema'
        type:
          description: The type of table
          type: string
          enum:
            - data
            - lookup
            - hierarchy
        uniqueTableConstraints:
          description: A property indicating the unique constraints on the table.
          type: array
          items:
            $ref: '#/components/schemas/UniqueConstraintDto'
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - isShared
        - name
        - tableSchema
        - type
        - uniqueTableConstraints
    TableSchema:
      type: object
      properties:
        columns:
          description: list of columns in the table, must at least one in size
          type: array
          items:
            $ref: '#/components/schemas/ColumnDto'
          maxItems: 150
          minItems: 1
      required:
        - columns
    TagDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        key:
          description: Value for the key, maximum 100 characters in length
          type: string
          maxLength: 100
          minLength: 0
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        values:
          description: Set of values for the tag
          type: array
          items:
            type: string
          maxItems: 300
          minItems: 0
          uniqueItems: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - key
    TokenDto:
      type: object
      properties:
        created:
          description: When the entity was created
          type: string
          format: date-time
          readOnly: true
        id:
          description: The entity's unique identifier
          type: string
          readOnly: true
        objectId:
          description: The object's unique identifier
          type: string
          maxLength: 32
          minLength: 0
        updated:
          description: When the entity was last updated
          type: string
          format: date-time
          readOnly: true
        useFlatKey:
          description: Create token using flat query results key; Ignored unless true.
          type: boolean
        userId:
          description: The owner of the entity
          type: string
          readOnly: true
        version:
          description: The version of the current representation of the entity
          type: integer
          format: int64
          readOnly: true
      required:
        - objectId
    UniqueConstraintDto:
      type: object
      properties:
        description:
          description: 'Description of this unique constraint. Max length: 1024'
          type: string
          maxLength: 1024
          minLength: 0
        id:
          description: Id of the unique constraint
          type: string
          maxLength: 100
          minLength: 0
        name:
          description: 'Name of this unique constraint. Max length: 100'
          type: string
          enum:
            - key_columns
        tableId:
          description: Id of the table this unique constraint is associated with
          type: string
          maxLength: 100
          minLength: 0
        values:
          description: List of values in the unique constraint
          type: array
          items:
            type: string
          maxItems: 512
          minItems: 1
      required:
        - id
        - name
        - tableId
        - values
    ValidateFilesDto:
      type: object
      properties:
        deletedFiles:
          description: A list of files that were deleted during the validation because not enough information was available to repair them. These files will no longer be available via the endpoint and will not be included in queries.
          type: array
          items:
            $ref: '#/components/schemas/FileMetaDto'
          readOnly: true
        repairedFiles:
          description: A list of files that were modified during the validation and will continue to be visible and to be usable in the account.
          type: array
          items:
            $ref: '#/components/schemas/FileMetaDto'
          readOnly: true
    ValidateTablesDto:
      type: object
      properties:
        deletedTables:
          description: A list of tables that were deleted during the validation because not enough information was available to repair them. These tables will no longer be available via the endpoint and queries using these tables will cease to function properly.
          type: array
          items:
            $ref: '#/components/schemas/TableDto'
          readOnly: true
        repairedTables:
          description: |-
            A list of tables that were modified during the validation and will continue to
            be visible and to be usable in the account.
          type: array
          items:
            $ref: '#/components/schemas/TableDto'
          readOnly: true
  securitySchemes:
    oauth:
      flows:
        authorizationCode:
          authorizationUrl: /iam/v1/oauth2/auth
          scopes: {}
          tokenUrl: /iam/v1/oauth2/token
      type: oauth2
paths:
  /api/v1/admin/account:
    delete:
      operationId: deleteWorkspace
      summary: Delete a single workspace
      description: Deletes all information in the workspace of the request. <b>This is a final operation and can't be undone</b>. Any state left in the workspace due to an error is in an indeterminate state and shouldn't be trusted. Some non-private information may be kept for auditing and metric purposes.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/export:
    get:
      operationId: exportWorkspace
      summary: Export a single workspace
      description: |-
        Creates a file representing the entirety of the requested workspace and returns a
        token. Use the [`Download a single file endpoint`](ref:wdata-downloadfile) to
        exchange the token for the file.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTokenDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/import:
    post:
      operationId: importData
      summary: Import data
      description: |-
        By default, deletes all information in the workspace of the request. <b>This is a final
        operation and can't be undone.</b>  Any state left in the workspace due to an error is
        in an indeterminate state and shouldn't be trusted. Some non-private information may be
        kept for auditing and metric purposes. After the delete, it then imports the tables, tags,
        and queries in the provided cb file into the workspace. <br><br>
        This is an asynchronous operation. Returns a 201 when the file is correctly decoded and
        its tables, queries, and tags are saved. Files continue to import after this call
        completes.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      parameters:
        - name: wipe
          in: query
          required: false
          schema:
            type: boolean
            default: true
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  description: The file containing workspace information to import
                  type: string
                  format: binary
              required:
                - file
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/usage/filesBySize:
    get:
      operationId: findWorkspaceFilesBySize
      summary: Retrieve workspace files by size
      description: |-
        Returns a paged collection of the file meta associated with the workspace of the request,
        ordered by size.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      parameters:
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of file meta objects to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/usage/query:
    get:
      operationId: getWorkspaceQueryUsage
      summary: Retrieve workspace query usage
      description: |-
        Returns a Long that represents the number of bytes queried by the workspace of the
        request since the start time provided.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      parameters:
        - name: startDate
          description: The earliest date of usage to consider
          in: query
          required: false
          schema:
            type: string
            default: 1970-01-01
        - name: stopDate
          description: The end date of usage to consider
          in: query
          required: false
          schema:
            type: string
            default: 9999-01-01
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseLong'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/usage/upload:
    get:
      operationId: getWorkspaceUploadUsage
      summary: Retrieve workspace upload usage
      description: Returns a Long that represents the number of bytes uploaded by the workspace associated with this request from the start time provided to now.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      parameters:
        - name: startDate
          description: The starting point to begin considering usage
          in: query
          required: false
          schema:
            type: string
            default: 1970-01-01
        - name: stopDate
          description: The ending point when considering usage
          in: query
          required: false
          schema:
            type: string
            default: 9999-01-01
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseLong'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/validation/files:
    post:
      operationId: validateFiles
      summary: Validate files
      description: |-
        Validates files associated with the provided table ID. Validation repairs any files in
        an inconsistent state, and deletes those without enough state to recover. All files
        deleted or repaired are returned.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      requestBody:
        description: The representation of the file to validate
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartValidateFilesDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseValidateFilesDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/admin/validation/tables:
    post:
      operationId: validateTables
      summary: Validate tables
      description: Validates the tables in the workspace associated with the request. Validation returns an entity that indicates the tables deleted due to bad state, and those with enough state and repaired.
      tags:
        - Administrative Tasks
      security:
        - oauth: []
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseValidateTablesDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/connections:
    get:
      operationId: listConnections
      summary: List connections
      description: A pageable endpoint to list data connections between features of the Workiva platform. When filtering by source or destination, the corresponding ID is required.
      tags:
        - Connection Management
      security:
        - oauth: []
      parameters:
        - name: sourceType
          description: The type of file or item the connection pulls data from
          in: query
          required: false
          schema:
            type: string
            enum:
              - document
              - document_chart
              - document_embedded_table
              - esg_program
              - presentation
              - presentation_chart
              - presentation_embedded_table
              - report
              - spreadsheet
              - spreadsheet_section
              - wdata_query
              - wdata_table
              - wdata_table_dataset
        - name: destinationType
          description: The type of file or item the connection sends data to
          in: query
          required: false
          schema:
            type: string
            enum:
              - document
              - document_chart
              - document_embedded_table
              - presentation
              - presentation_chart
              - presentation_embedded_table
              - report
              - spreadsheet
              - spreadsheet_section
              - wdata_query
              - wdata_table
              - wdata_table_dataset
        - name: sourceId
          description: The ID of the file or item the connection pulls data from
          in: query
          required: false
          schema:
            type: string
        - name: destinationId
          description: The ID of the file or item the connection sends data to
          in: query
          required: false
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of connections to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseConnectionDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/connections/batch/refresh:
    post:
      operationId: refreshBatch
      summary: Refresh batch of connections
      description: |-
        Refreshes multiple incoming connections within the same spreadsheet, based on ID. When connecting to multiple spreadsheets, tables or other destinations, use the [`singular refresh connection`](ref:wdata-refreshconnection) instead.
         `usePreviousDestinationParameters` and  `usePreviousSourceParameters` will use the exact parameters of your previous run; any new parameters you’ve provided will be ignored. This endpoint only works for outgoing connections if they are all connected to the same workbook. This endpoint has a limit of 100 refreshes per request.
      tags:
        - Connection Management
      security:
        - oauth: []
      parameters:
        - name: cancelUnwritables
          description: Allow individual connections in the batch to be canceled if they have a destination that is unwritable. This will NOT cancel the entire batch.
          in: query
          required: false
          schema:
            type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/RefreshConnectionDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseRefreshBatchDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/connections/batch/refresh/{batchId}:
    get:
      operationId: getRefreshBatchStatus
      summary: Gets the status of a batch refresh
      description: Returns details about a specific batch refresh, based on its ID.
      tags:
        - Connection Management
      security:
        - oauth: []
      parameters:
        - name: batchId
          description: The ID of the batch to return details about
          in: path
          required: true
          schema:
            type: string
        - name: workspaceId
          in: query
          required: false
          schema:
            type: string
            maxLength: 40
            minLength: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseRefreshBatchDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/connections/{connectionId}:
    get:
      operationId: getConnection
      summary: Get connection details
      description: Returns details about a specific connection, based on its ID
      tags:
        - Connection Management
      security:
        - oauth: []
      parameters:
        - name: connectionId
          description: The ID of the connection to return details about
          in: path
          required: true
          schema:
            type: string
        - name: workspaceId
          in: query
          required: false
          schema:
            type: string
            maxLength: 40
            minLength: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseConnectionDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/connections/{connectionId}/refresh:
    post:
      operationId: refreshConnection
      summary: Refresh connection
      description: Refreshes a specific connection, based on its ID
      tags:
        - Connection Management
      security:
        - oauth: []
      parameters:
        - name: connectionId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshConnectionDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseConnectionRunDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/connections/{connectionId}/status:
    get:
      operationId: getRefreshStatus
      summary: Get connection refresh status
      description: Returns details about a specific connection refresh status, based on its ID. To retrieve details about a specific refresh, provide its 'jobId'.
      tags:
        - Connection Management
      security:
        - oauth: []
      parameters:
        - name: connectionId
          description: The ID of the connection to return details about
          in: path
          required: true
          schema:
            type: string
        - name: jobId
          description: The ID of the job running for a connection
          in: query
          required: false
          schema:
            type: string
        - name: workspaceId
          in: query
          required: false
          schema:
            type: string
            maxLength: 40
            minLength: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseConnectionRunDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/entity:
    get:
      operationId: search
      summary: Search
      description: |-
        Returns a list of all entities that match the provided criteria. Both name and
        description are fuzzy matches; they match _any_ entity that contains the provided
        string. The type is used to filter results based on the provided type of entity.
        The consumer must have READ access on all returned entities.
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: name
          description: The name to use when fuzzy-matching entities
          in: query
          required: false
          schema:
            type: string
        - name: description
          description: The description to use when fuzzy-matching entities
          in: query
          required: false
          schema:
            type: string
        - name: type
          description: To limit the scope, the type of entity to return in the results
          in: query
          required: false
          schema:
            type: array
            items:
              format: int32
              type: integer
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of folders to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseFolderableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/file:
    get:
      operationId: getFiles
      summary: Retrieve a list of files
      description: |-
        Returns a paged list of all files associated with the provided table ID, as well
        as metadata associated with each file.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique table identifier associated with this file
          in: query
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of files to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
        - name: sortOrder
          description: The sort order for the files being returned
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: sortBy
          description: The column to use the sort order on
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: searchText
          description: The text to filter the results upon; matching the file name
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: uploadFile
      summary: Upload a single file
      description: |-
        Accepts CSV, TSV, or JSON files, or a ZIP file that contains a single CSV, TSV, or
        JSON file. If a ZIP, it must contain a CSV, TSV, or JSON file, and the name of the
        CSV, TSV, or JSON file is also used with the imported file. Downloading this file
        again downloads the source. Note that all files uploaded must have a .csv, .tsv, or .json
        extension. JSON files are expected to have a single JSON record per line; a JSON file is
        a series of JSON objects delimited by a newline character.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique table identifier associated with this file
          in: query
          required: true
          schema:
            type: string
        - name: name
          description: No longer in use, here to ensure backwards compatibility
          in: query
          required: false
          schema:
            type: string
        - name: url
          description: No longer in use, here to ensure backwards compatibility
          in: query
          required: false
          schema:
            type: string
        - name: source
          description: |-
            The data source to associate with the file, no more than 255 characters. This
            field is not in use; it only keeps track of the source
          in: query
          required: false
          schema:
            type: string
        - name: delimiter
          description: |-
            The character to use as a delimiter within the file to separate one field from
            another.  The default is comma
          in: query
          required: false
          schema:
            type: string
        - name: importDto
          in: query
          required: false
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  description: The physical file to upload
                  type: string
                  format: binary
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/file/validateName:
    get:
      operationId: validateFilename
      summary: Validate whether a file with the filename can be uploaded to the table
      description: If the filename is valid, this returns 200. If the table already has a file with the same name, this returns 409. If the user isn't allowed to read the table, or if the table isn't found, this returns 404.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The ID of the table to upload the file to
          in: query
          required: true
          schema:
            type: string
        - name: filename
          description: The name of the file to upload
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: A file with this name already exists in the table
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/file/{fileId}:
    delete:
      operationId: deleteFile
      summary: Delete a single file
      description: |-
        Unstages the file with the provided ID. The file must have a STAGED status; if the
        file isn't STAGED, returns a 409 status. If the file isn't found, this is a no-op.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: fileId
          description: The unique identifier of the file
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getFile
      summary: Retrieve a single file
      description: |-
        Returns the file meta that matches the provided ID, or a 404 if an associated file
        can't be found.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: fileId
          description: The unique identifier of the file
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/file/{fileId}/download:
    get:
      operationId: downloadFile_1
      summary: Download a single file
      description: Returns a file with the provided ID, which points to a file meta ID.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: fileId
          description: The unique identifier of the file
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: string
                format: binary
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/file/{fileId}/error:
    get:
      operationId: getErrors
      summary: Retrieve errors
      description: |-
        Returns a paged list of operation errors during the upload, import, or tagging
        processes for the provided file ID, if they exist. This list is immutable and may be
        empty if no errors have occurred. If errors exist we recommend fixing them and
        reimporting your file
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: fileId
          description: The unique identifier of the file
          in: path
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of errors to return, from 1 to 50; by default, 50
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 50
            maximum: 50
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseImportErrorDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/file/{fileId}/export:
    post:
      operationId: exportFileToSpreadsheets
      summary: Export a file to spreadsheets
      description: |-
        Exports the file ID identified in the path to the spreadsheet identified by the
        provided URL. If the URL string is empty, creates and returns a new spreadsheet and
        its sheet IDs.
      tags:
        - File Management
      security:
        - oauth: []
      parameters:
        - name: fileId
          description: The unique identifier of the file
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the file to export
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportFileDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseSpreadsheetInfoDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/folder:
    get:
      operationId: listFolders
      summary: Retrieve a list of folders
      description: Returns a paged list of all folders associated with the workspace.
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of folders to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseFolderDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createFolder
      summary: Create a new folder
      description: Creates a folder using the provided information and returns the folder meta.
      tags:
        - Folder Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the folder to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FolderDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFolderDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/folder/{folderId}:
    delete:
      operationId: deleteFolder
      summary: Delete a single folder
      description: |-
        Deletes the folder with the provided ID.  If the folder is not found, this is a
        no-op. <b>All files and sub-folders are also recursively deleted.</b>
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: folderId
          description: The unique identifier of the folder
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getFolder
      summary: Retrieve a single folder
      description: Returns a folder with the provided ID, or a 404 if no matching folder is found.
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: folderId
          description: The unique identifier of the folder
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFolderDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updateFolder
      summary: Update a single folder
      description: |-
        Updates the folder that matches the provided ID with the details provided in the
        body.
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: folderId
          description: The unique identifier of the folder
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the folder to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FolderDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFolderDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/folder/{folderId}/children:
    get:
      operationId: listChildren
      summary: Retrieve list of folder contents
      description: |-
        Returns a paged list of all children whose parent ID matches the provided folder
        ID.  If the folder ID in the path is the literal 'null' value, returns a list of
        all entities with no parent.
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: folderId
          description: The unique identifier of the folder
          in: path
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of folders to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseFolderableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: setChildren
      summary: Move content into a folder
      description: |-
        Sets the children of a folder using the entities' types and IDs provided in the
        body. If the entities previously resided under a folder, including the root,
        they move to the folder with the provided ID. If the provided ID is 'null',
        the entities move to the root folder.
      tags:
        - Folder Management
      security:
        - oauth: []
      parameters:
        - name: folderId
          description: The unique identifier of the folder
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the entities to drop into the folder
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/FolderableDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseCollectionFolderableDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/parameter:
    get:
      operationId: listParameters
      summary: Get Parameters
      description: |-
        Returns a list of all parameters associated with the workspace.  By default, these
        parameters are ordered by their names in ascending order.
      tags:
        - Parameter Management
      security:
        - oauth: []
      parameters:
        - name: cursor
          description: A paging cursor; if included the limit is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: |-
            The number of parameters to return, must be between 1 and 1000, will default
            to 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, must be greater than or equal to 0, will default to 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
        - name: scope
          description: Comma-separated list of scopes to filter parameters by (e.g., 'global,system'). If not provided, defaults to global.
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseGlobalParameterDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createParameter
      summary: Create parameter
      description: Creates a parameter.  If there is a parameter with the same ID, a 409 is returned.
      tags:
        - Parameter Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the parameter to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalParameterDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseGlobalParameterDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/parameter/{parameterId}:
    delete:
      operationId: deleteParameter
      summary: Delete Parameter
      description: Deletes the parameter with the provided parameter ID.  If the parameter is not found, this is a no-op.
      tags:
        - Parameter Management
      security:
        - oauth: []
      parameters:
        - name: parameterId
          description: The unique identifier of the parameter
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getParameter
      summary: Get Parameter
      description: Returns a parameter matching the provided parameter ID.  If no matching entity can be found, a 404 status is returned.
      tags:
        - Parameter Management
      security:
        - oauth: []
      parameters:
        - name: parameterId
          description: The unique identifier of the parameter
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseGlobalParameterDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updateParameter
      summary: Update Parameter
      description: Updates the parameter matching the provided ID in the provided payload.
      tags:
        - Parameter Management
      security:
        - oauth: []
      parameters:
        - name: parameterId
          description: The unique identifier of the parameter
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the parameter to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalParameterDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseGlobalParameterDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/pivotview:
    get:
      operationId: listPivotViews
      summary: Retrieve a list of pivot views
      description: Returns a paged list of views in the workspace of the request. If queryId is provided, the results are limited to only views associated with the query ID.
      tags:
        - Pivot View Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique query identifier to filter the views
          in: query
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of views to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponsePivotViewDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createPivotView
      summary: Create a new pivot view
      description: |-
        Creates a view from the provided information. Currently, persists the provided
        `additionalMetadata` field, which can store an arbitrary JSON definition of a pivot
        table view. This pivot table must be associated with a query, and can optionally be
        associated with a query result. When a query is deleted, its associated views are
        also deleted.
      tags:
        - Pivot View Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the view to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PivotViewDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponsePivotViewDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/pivotview/{pivotViewId}:
    delete:
      operationId: deletePivotView
      summary: Delete a single pivot view
      description: |-
        Deletes a view that matches the provided ID.  This is an administrative method and
        should be assumed a hard-delete, given no capability to restore a deleted view is
        available.  A no-op if no such view exists.
      tags:
        - Pivot View Management
      security:
        - oauth: []
      parameters:
        - name: pivotViewId
          description: The unique identifier of the pivot view
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getPivotView
      summary: Retrieve a single pivot view
      description: Returns a view with the provided ID, or a 404 if no view matches the ID.
      tags:
        - Pivot View Management
      security:
        - oauth: []
      parameters:
        - name: pivotViewId
          description: The unique identifier of the pivot view
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponsePivotViewDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updatePivotView
      summary: Update a single pivot view
      description: |-
        Updates the view that matches the provided ID with the details provided in the
        body. The associated query can't be updated, so providing the query ID has no effect.
      tags:
        - Pivot View Management
      security:
        - oauth: []
      parameters:
        - name: pivotViewId
          description: The unique identifier of the pivot view
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the pivot view to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PivotViewDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponsePivotViewDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query:
    get:
      operationId: listQueries
      summary: Retrieve list of queries
      description: Returns a list of all non-temporary queries associated with the workspace. By default, these queries are ordered by their names, in ascending order.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of queries to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
        - name: ids
          description: A list of ids to filter the returned list by
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseQueryDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createQuery
      summary: Create a new query
      description: |-
        Creates a query object and validates full permissions to ensure the requestor has
        access to all data sources being queried. This endpoint _doesn't_ execute the query;
        to execute, call the POST /queryresult method.
      tags:
        - Query Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the query to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query/data:
    post:
      operationId: getQueryColumnData
      summary: Retrieve query column data
      description: |-
        Returns a QueryColumnDataDto representing the column data for the given query text.
        If the query isn't valid, returns a 400.
      tags:
        - Query Management
      security:
        - oauth: []
      requestBody:
        description: The query text to parse, up to 30000 characters; must not be null or empty
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryTextDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryColumnDataDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query/validation:
    post:
      operationId: isQueryValid
      summary: Parses the query to determine if it is valid
      description: Returns the provided QueryDto
      tags:
        - Query Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the created query
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query/{queryId}:
    delete:
      operationId: deleteQuery
      summary: Delete a single query
      description: |-
        Deletes the query that matches the provided ID. If no such query is found, this is
        a no-op.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getQuery
      summary: Retrieve a single query
      description: Returns a query that matches the provided ID, or a 404 if no matching query is found.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: path
          required: true
          schema:
            type: string
        - name: includeParameters
          description: Whether to include full parameter details. Defaults to true
          in: query
          required: false
          schema:
            type: boolean
            default: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updateQuery
      summary: Update a single query
      description: |-
        Updates the query that matches the provided ID with the details provided in the
        body.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the query to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query/{queryId}/dependencies:
    get:
      operationId: getDependencies
      summary: Retrieve dependencies
      description: Returns an unordered collection of all tables the matching query uses as datasources, including any shared tables outside of this OAuth token's workspace. The endpoint verifies the user has read permissions on the query, but _not_ on the tables returned.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: path
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of dependencies to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseTableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query/{queryId}/dependents:
    get:
      operationId: getTablesDependentOnQuery
      summary: Retrieve a list of dependents
      description: Returns a list of all tables that use the query with provided ID as a datasource.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: path
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of folders to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseTableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/query/{queryId}/describe:
    post:
      operationId: describeQuery
      summary: List the output columns of a query
      description: |-
        List the output columns of a query, including the column name (or alias), catalog, schema,
        table, type, type size in bytes, and a boolean indicating if the column is aliased.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseDescribeQueryResponseDto'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/queryresult:
    get:
      operationId: listQueryResults
      summary: Retrieve a list of query results
      description: |-
        Returns a paged list of query results that match the provided query ID, or an empty
        list if no matching query is found.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryId
          description: The unique identifier of the query
          in: query
          required: true
          schema:
            type: string
        - name: userSpecific
          description: Limit results to those created by the current user
          in: query
          required: false
          schema:
            type: boolean
            default: false
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of query results to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: string
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            default: 0
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseQueryResultDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: runQuery
      summary: Execute a query
      description: |-
        Runs a query and immediately returns a query result entity, which has an ID that
        can be used to poll the status from the GET /queryresult method. A status of
        COMPLETED or ERROR indicates the query has completed.
      tags:
        - Query Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the created query
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QueryResultDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryResultDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/queryresult/{queryResultId}:
    delete:
      operationId: cancelQuery
      summary: Cancel a running query
      description: |-
        Cancels a running query based on the provided result ID, and returns a cancelled
        result unless the query's already in a COMPLETED state.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryResultId
          description: The unique identifier of the query result
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryResultDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getQueryResult
      summary: Retrieve a single query result
      description: |-
        Returns a single query result that matches the provided ID, or a 404 if no such
        query result is found.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryResultId
          description: The unique identifier of the query result
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseQueryResultDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/queryresult/{queryResultId}/download:
    get:
      operationId: downloadQueryResult
      summary: Download a query result
      description: |-
        Uses the Token Management API to create a token with the query result ID, which it
        then uses to download a CSV file of the query results.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryResultId
          description: The unique identifier of the query result
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The results of query run
          content:
            '*/*':
              schema:
                type: string
                format: binary
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/queryresult/{queryResultId}/export:
    post:
      operationId: exportQueryResultToSpreadsheets
      summary: Export query result to spreadsheets
      description: |-
        Exports a query result with the provided ID to Spreadsheets. To determine where to
        export the results, the request body should include a URL copied and pasted from the
        Spreadsheets UI. Returns a 404 if no matching query result is found.
      tags:
        - Query Management
      security:
        - oauth: []
      parameters:
        - name: queryResultId
          description: The unique identifier of the query result
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the export query result
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportQueryResultDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/selectlist:
    get:
      operationId: listSelectLists
      summary: Retrieve a list of select lists
      description: Returns a list of select lists associated with the workspace.
      tags:
        - Select List Management
      security:
        - oauth: []
      parameters:
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of select lists to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseSelectListDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createSelectList
      summary: Create a new select list
      description: Creates a select list using the provided information and returns the select list meta.
      tags:
        - Select List Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the select list to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectListDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseSelectListDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/selectlist/{selectListId}:
    delete:
      operationId: delete
      summary: Delete a single select list
      description: |-
        Deletes a select list with the provided ID. If no such select list exists, this is
        a no-op.
      tags:
        - Select List Management
      security:
        - oauth: []
      parameters:
        - name: selectListId
          description: The unique identifier of the select list
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getSelectList
      summary: Retrieve a single select list
      description: |-
        Returns a select list that matches the provided ID, or a 404 if no matching select
        list is found.
      tags:
        - Select List Management
      security:
        - oauth: []
      parameters:
        - name: selectListId
          description: The unique identifier of the select list
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseSelectListDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updateSelectList
      summary: Update a single select list
      description: |-
        Updates the select list with the provided ID with the details provided in the body.

        **Restrictions for EXTERNAL_LEGAL_ENTITY Select Lists:**
        Select lists of type `EXTERNAL_LEGAL_ENTITY` have restricted update capabilities.
        Only the `name` field can be modified. Attempting to update `valueType`, `values`,
        or other fields will result in a 400 Bad Request error with a validation message.
        To change other fields, delete and recreate the select list (if not in use).
      tags:
        - Select List Management
      security:
        - oauth: []
      parameters:
        - name: selectListId
          description: The unique identifier of the select list
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the select list to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SelectListDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseSelectListDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/sharedtable:
    get:
      operationId: listSharedTables
      summary: Retrieve a list of shared tables
      description: Returns a list of shared tables associated with the workspace of the request.
      tags:
        - Shared Table Management
      security:
        - oauth: []
      parameters:
        - name: sharedWithMe
          description: |-
            If true, returns a list of tables that have been shared _to_ it rather than
            from it. The entities contain both the shared table entity _and_ the table being
            shared. If true, `tableId` is ignored.
          in: query
          required: false
          schema:
            type: boolean
        - name: tableId
          description: The unique table identifier associated with the shared table
          in: query
          required: false
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of shared files to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseSharedTableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createSharedTable
      summary: Create a new shared table
      description: Creates a shared table instance between the workspace of the request and the workspace provided in the body.
      tags:
        - Shared Table Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the shared table to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SharedTableDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseSharedTableDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/sharedtable/{sharedTableId}:
    delete:
      operationId: deleteSharedTable
      summary: Delete a single shared table
      description: |-
        Deletes the linkages between the source and destination of a shared table that matches
        the provided ID; the actual table itself is left intact. If no such shared table exists,
        this is a no-op.
      tags:
        - Shared Table Management
      security:
        - oauth: []
      parameters:
        - name: sharedTableId
          description: The unique identifier of the shared table
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getSharedTable
      summary: Retrieve a single shared table
      description: Returns a shared table that matches the provided ID, or a 404 if no matching shared table is found.
      tags:
        - Shared Table Management
      security:
        - oauth: []
      parameters:
        - name: sharedTableId
          description: The unique identifier of the shared table
          in: path
          required: true
          schema:
            type: string
        - name: sharedWithMe
          description: If true, returns a shared table with the provided ID that has been shared _to_—rather than from—the workspace of the request.
          in: query
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseSharedTableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table:
    get:
      operationId: getTables
      summary: Retrieve a list of tables
      description: Returns all tables available in the workspace.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: includeShared
          description: If true, returns all tables shared with the workspace associated with the request. If false, returns only tables the workspace owns.
          in: query
          required: false
          schema:
            type: boolean
            default: false
        - name: cursor
          description: a paging cursor; if included the limit is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: the number of folders to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, must be greater than or equal to 0, will default to 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseTableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createTable
      summary: Create a new table
      description: Creates a table in the database with the specified schema. For type, specify either a dimension or data table. In the interface, data tables appear as fact tables.
      tags:
        - Table Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the table to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTableDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table/{tableId}:
    delete:
      operationId: deleteTable
      summary: Delete a single table
      description: Soft-deletes the table with the provided ID.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    get:
      operationId: getTable
      summary: Retrieve a single table
      description: Returns a table with the provided ID, or a 404 if no such table is found.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTableDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updateTable
      summary: Update a single table
      description: |-
        Updates an existing table with the provided information. Include all user-defined
        table columns with the request. For type, specify either a dimension or data table.
        In the interface, data tables appear as fact tables. 
        * If the table has no imported
        data, user-defined columns not included with the request are deleted, and columns are
        sorted according to their order in the request. 
        * If the table has imported data,
        any columns with names not already in the table are considered new. This equality
        check is case-insensitive. Any new columns appear after other user-defined columns,
        but before any meta columns, which start with `_`.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the table to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TableDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTableDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table/{tableId}/dependents:
    get:
      operationId: getDependents
      summary: Retrieve a list of dependents
      description: |-
        Returns a list of all queries that use the table with provided ID as a datasource.
        If a shared table, this may include queries outside of the current OAuth context.
        Permission is checked only for the table ID provided, _not_ on the returned list of
        queries.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of folders to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseQueryDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table/{tableId}/import:
    post:
      operationId: importFile
      summary: Import a single file
      description: |-
        Imports the provided file into the associated table, and immediately returns a
        file meta object with an ID that can be used to poll the file controller for status.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the table to import
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table/{tableId}/import/{fileId}:
    delete:
      operationId: unimportFile
      summary: Unimport a single file
      description: |-
        Unimports the provided file from the provided table. Returns a 409 if the file is
        not in an imported state, or a 404 if the file can't be found.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
        - name: fileId
          description: The unique identifier of the file
          in: path
          required: true
          schema:
            type: string
        - name: force
          description: If true, unimports and deletes file from the table
          in: query
          required: false
          schema:
            type: string
            default: 'false'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table/{tableId}/importInfo:
    get:
      operationId: getImportInfo
      summary: Retrieve import information
      description: Returns information around imported files for a table.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseImportInfoDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/table/{tableId}/spreadsheet/import:
    post:
      operationId: importFromSpreadsheets
      summary: Import from spreadsheets
      description: |-
        Imports spreadsheet data and immediately returns a file meta result. This DTO has
        an ID, which can be used to poll on status via the file controller.
      tags:
        - Table Management
      security:
        - oauth: []
      parameters:
        - name: tableId
          description: The unique identifier of the table
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the table to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportFromSpreadsheetDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseFileMetaDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/tag:
    get:
      operationId: listTags
      summary: Retrieve a list of tags
      description: Returns a paged list of all tags associated with the workspace of the request.
      tags:
        - Tag Management
      security:
        - oauth: []
      parameters:
        - name: cursor
          description: A paging cursor; if included, `limit` is ignored
          in: query
          required: false
          schema:
            type: string
        - name: limit
          description: The number of tags to return, from 1 to 1000; by default, 1000
          in: query
          required: false
          schema:
            type: integer
            format: int32
            default: 1000
            maximum: 1000
            minimum: 1
        - name: offset
          description: The item to start with on the page, greater than or equal to 0; by default, 0
          in: query
          required: false
          schema:
            type: integer
            format: int64
            minimum: 0
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedResponseTagDto'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    post:
      operationId: createTag
      summary: Create a new tag
      description: Creates a tag. If another tag already has the same key, returns a 409. There is a limit of 300 values for a tag.
      tags:
        - Tag Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the tag to create
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTagDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/tag/{tagId}:
    delete:
      operationId: deleteTag
      summary: Delete a single tag
      description: Deletes the tag with the provided ID. If no such tag is found, this is a no-op.
      tags:
        - Tag Management
      security:
        - oauth: []
      parameters:
        - name: tagId
          description: The unique identifier of the tag
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
    put:
      operationId: updateTag
      summary: Update a single tag
      description: |-
        Updates the tag that matches the provided ID with the details provided in the body.
        Ignores the provided key, as keys are immutable once set.
        There is a limit of 300 values for a tag.
      tags:
        - Tag Management
      security:
        - oauth: []
      parameters:
        - name: tagId
          description: The unique identifier of the tag
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The representation of the tag to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TagDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTagDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/token:
    post:
      operationId: createToken
      summary: Create a new token
      description: |-
        Creates a temporary token—valid for only a short period of time—to download a table
        dataset file or query result, given its ID.
      tags:
        - Token Management
      security:
        - oauth: []
      requestBody:
        description: The representation of the token to update
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenDto'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseTokenDto'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/token/{tokenId}:
    get:
      operationId: downloadFile
      summary: Download a single file
      description: Downloads a table dataset or query result as a file, given its token from the [`Create a new token endpoint`](ref:wdata-createtoken). If no matching entity is found, returns a 404.
      tags:
        - Token Management
      security:
        - oauth: []
      parameters:
        - name: tokenId
          description: The unique identifier of the token
          in: path
          required: true
          schema:
            type: string
        - name: filename
          description: A filename for the download; if included, the default filename is overridden
          in: query
          required: false
          schema:
            type: string
      responses:
        '200':
          description: The file if it exists
          content:
            '*/*':
              schema:
                type: string
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
  /api/v1/util/datetime:
    post:
      operationId: parseDate
      summary: Parse a date
      description: |-
        Provides a simple endpoint to check whether a given date candidate parses with
        the provided format string.  Both the date candidate and format strings are required.
        Returns a 200 if the date parses, or a 400 with a message if not. If the date parses,
        the provided format can be provided as column metadata, and the imported values parse
        correctly. The format string is java DateTimeFormatter style e.g. dateFormat =
        "MM/dd/yyyy" and candidate = "07/28/1987"
      tags:
        - Utilities
      security:
        - oauth: []
      requestBody:
        description: The representation of the datetime object to parse
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DatetimeDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseString'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Collision
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleError'
  /health:
    get:
      operationId: healthCheck
      summary: Health check
      description: Returns the status of the API WSGI servers
      tags:
        - API Health
      security:
        - oauth: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponseMapStringString'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SingleError'
                  - $ref: '#/components/schemas/MultiError'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '403':
          description: Forbidden
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '404':
          description: Not Found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '409':
          description: Conflict
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '423':
          description: Locked
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '429':
          description: Too Many Requests
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'
        '500':
          description: Internal Server Error
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/SingleError'

