Structify sessions API

The sessions API from Structify — 16 operation(s) for sessions.

OpenAPI Specification

structify-sessions-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  contact:
    email: team@structify.ai
    name: Structify Team
  description: Every enterprise's data team.
  license:
    name: Discuss directly with founders for license.
    url: https://structify.ai
  title: Structify account sessions API
  version: 0.1.0
servers:
- description: Production server
  url: https://api.structify.ai
- description: Local server
  url: http://localhost:8080
security:
- api_key: []
- session_token: []
tags:
- name: sessions
paths:
  /sessions:
    post:
      operationId: create_session
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowSessionRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSession'
          description: Successfully created session.
        '400':
          description: Invalid request.
      tags:
      - sessions
  /sessions/estimate_cost:
    post:
      operationId: estimate_cost
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CostEstimateRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CostEstimateResponse'
          description: Cost estimate calculated successfully.
        '400':
          description: Invalid request.
      tags:
      - sessions
  /sessions/nodes/{node_id}:
    get:
      operationId: get_node
      parameters:
      - in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNodeResponse'
          description: Node retrieved successfully.
        '404':
          description: Node not found.
      tags:
      - sessions
    patch:
      operationId: update_workflow_node
      parameters:
      - description: Id of the workflow node to update.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowNodeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSessionNode'
          description: Successfully updated node.
        '400':
          description: Invalid request.
        '404':
          description: Node not found.
      tags:
      - sessions
  /sessions/nodes/{node_id}/confirm:
    post:
      operationId: confirm_node
      parameters:
      - in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmNodeRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSessionNode'
          description: Successfully confirmed/rejected node.
        '400':
          description: Invalid request.
        '404':
          description: Node not found.
      tags:
      - sessions
  /sessions/nodes/{node_id}/edit_output:
    post:
      operationId: edit_workflow_node_output
      parameters:
      - description: Id of the workflow node whose output to edit.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditNodeOutputRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditNodeOutputResponse'
          description: Edit completed.
      tags:
      - sessions
  /sessions/nodes/{node_id}/events:
    get:
      operationId: get_node_events
      parameters:
      - description: Id of the node to get events for.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      - in: query
        name: search_term
        required: false
        schema:
          nullable: true
          type: string
      - in: query
        name: status
        required: false
        schema:
          allOf:
          - $ref: '#/components/schemas/JobStatus'
          nullable: true
      - in: query
        name: offset
        required: false
        schema:
          format: int64
          type: integer
      - in: query
        name: limit
        required: false
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNodeEventsResponse'
          description: Successfully retrieved node events.
        '403':
          description: Access denied.
        '404':
          description: Node not found.
      summary: Get events from all jobs for a specific workflow node.
      tags:
      - sessions
  /sessions/nodes/{node_id}/output_data:
    get:
      operationId: get_workflow_node_output_data
      parameters:
      - description: Id of the workflow node to upload output data for.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Successfully retrieved output data.
        '400':
          description: Invalid request or node not in success status.
        '404':
          description: Node not found.
      tags:
      - sessions
    post:
      operationId: upload_workflow_node_output_data
      parameters:
      - description: Id of the workflow node to upload output data for.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/WorkflowNodeOutputUpload'
        description: Binary output data from workflow node execution
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSessionNode'
          description: Successfully uploaded output data.
        '400':
          description: Invalid request or node not in success status.
        '404':
          description: Node not found.
      tags:
      - sessions
  /sessions/nodes/{node_id}/progress:
    get:
      operationId: get_workflow_node_progress
      parameters:
      - description: Id of the workflow node to get progress for.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties:
                  $ref: '#/components/schemas/ProgressStatus'
                type: object
          description: Successfully retrieved node progress.
        '404':
          description: Node not found.
      tags:
      - sessions
    patch:
      operationId: update_workflow_node_progress
      parameters:
      - description: Id of the workflow node to update progress for.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWorkflowNodeProgressRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSessionNode'
          description: Successfully updated node progress.
        '400':
          description: Invalid request.
        '404':
          description: Node not found.
      tags:
      - sessions
  /sessions/nodes/{node_id}/request_confirmation:
    post:
      operationId: request_node_confirmation
      parameters:
      - in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestConfirmationRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSessionNode'
          description: Node set to pending confirmation.
        '400':
          description: Invalid request.
        '404':
          description: Node not found.
      tags:
      - sessions
  /sessions/nodes/{node_id}/visualization_output:
    post:
      operationId: upload_node_visualization_output
      parameters:
      - description: Id of the workflow node to upload visualization output for.
        in: path
        name: node_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadNodeVisualizationOutputRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSessionNode'
          description: Successfully uploaded visualization output.
        '400':
          description: Invalid request.
        '404':
          description: Node not found.
      tags:
      - sessions
  /sessions/{session_id}/dag:
    get:
      operationId: get_workflow_dag
      parameters:
      - description: Id of the session to get DAG for.
        in: path
        name: session_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDAG'
          description: Successfully retrieved workflow DAG.
        '403':
          description: Access denied.
        '404':
          description: Session not found.
      tags:
      - sessions
  /sessions/{session_id}/dag_ready:
    post:
      operationId: finalize_dag
      parameters:
      - description: Workflow session ID
        in: path
        name: session_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinalizeDagRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinalizeDagResponse'
          description: DAG finalized successfully
        '400':
          description: DAG validation failed
        '500':
          description: Internal server error
      summary: Finalize a workflow session DAG by creating all nodes/edges and marking it as ready
      tags:
      - sessions
  /sessions/{session_id}/dashboard_layout:
    post:
      operationId: upload_dashboard_layout
      parameters:
      - description: Id of the workflow session to upload dashboard layout for.
        in: path
        name: session_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadDashboardLayoutRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSession'
          description: Successfully uploaded dashboard layout.
        '400':
          description: Invalid request.
        '404':
          description: Session not found.
      tags:
      - sessions
  /sessions/{session_id}/error:
    patch:
      operationId: mark_workflow_session_errored
      parameters:
      - description: Id of the workflow session to mark as errored.
        in: path
        name: session_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MarkWorkflowSessionErroredRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowSession'
          description: Successfully marked session as errored.
        '400':
          description: Invalid request.
        '404':
          description: Session not found.
      tags:
      - sessions
  /sessions/{session_id}/kill_jobs:
    post:
      operationId: kill_all_jobs_for_workflow
      parameters:
      - description: Id of the workflow session to kill jobs for.
        in: path
        name: session_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KillAllJobsRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KillAllJobsResponse'
          description: Successfully killed all jobs for the workflow session.
        '400':
          description: Invalid request or session not found.
        '403':
          description: Access denied.
      tags:
      - sessions
  /sessions/{session_id}/trigger_review:
    post:
      operationId: trigger_workflow_review
      parameters:
      - description: Id of the workflow session to trigger review for.
        in: path
        name: session_id
        required: true
        schema:
          $ref: '#/components/schemas/WorkflowSessionId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerReviewResponse'
          description: Review triggered (or skipped if not needed).
        '400':
          description: Invalid request.
        '404':
          description: Session not found.
      tags:
      - sessions
components:
  schemas:
    ConfirmNodeRequest:
      properties:
        confirmed:
          type: boolean
      required:
      - confirmed
      type: object
    KillAllJobsRequest:
      properties:
        message:
          nullable: true
          type: string
      type: object
    WorkflowScheduleId:
      format: uuid
      type: string
    LLMEntity:
      additionalProperties: false
      properties:
        id:
          minimum: 0
          type: integer
        properties:
          additionalProperties:
            $ref: '#/components/schemas/BasicPropValue'
          type: object
        type:
          type: string
      required:
      - id
      - type
      - properties
      type: object
    EdgeSpec:
      properties:
        source_node_index:
          format: int32
          type: integer
        target_node_index:
          format: int32
          type: integer
      required:
      - source_node_index
      - target_node_index
      type: object
    GetNodeEventsResponse:
      properties:
        count:
          minimum: 0
          type: integer
        events:
          items:
            $ref: '#/components/schemas/JobWithEvents'
          type: array
      required:
      - events
      - count
      type: object
    TimeStampedJobEvent:
      properties:
        body:
          $ref: '#/components/schemas/JobEventBody'
        created_at:
          format: date-time
          type: string
      required:
      - created_at
      - body
      type: object
    FinalizeDagResponse:
      properties:
        node_ids:
          items:
            $ref: '#/components/schemas/WorkflowSessionNodeId'
          type: array
      required:
      - node_ids
      type: object
    WorkflowSession:
      properties:
        aborted:
          type: boolean
        chat_session_id:
          $ref: '#/components/schemas/ChatSessionId'
        created_at:
          format: date-time
          nullable: true
          type: string
        dag_ready:
          type: boolean
        dag_ready_at:
          format: date-time
          nullable: true
          type: string
        dashboard_layout_proto:
          format: binary
          nullable: true
          type: string
        error_message:
          nullable: true
          type: string
        error_traceback:
          nullable: true
          type: string
        id:
          $ref: '#/components/schemas/WorkflowSessionId'
        parent_chat_message_id:
          allOf:
          - $ref: '#/components/schemas/ChatMessageId'
          nullable: true
        updated_at:
          format: date-time
          type: string
        workflow_schedule_id:
          allOf:
          - $ref: '#/components/schemas/WorkflowScheduleId'
          nullable: true
      required:
      - id
      - chat_session_id
      - updated_at
      - dag_ready
      - aborted
      type: object
    NodeSpec:
      properties:
        code:
          type: string
        code_md5_hash:
          type: string
        connector_id:
          allOf:
          - $ref: '#/components/schemas/ConnectorId'
          nullable: true
        docstring:
          type: string
        function_name:
          type: string
      required:
      - function_name
      - docstring
      - code_md5_hash
      - code
      type: object
    VizDateControlType:
      enum:
      - date
      type: string
    CostEstimateRequest:
      properties:
        avg_pages_per_doc:
          format: int64
          nullable: true
          type: integer
        num_documents:
          format: int64
          nullable: true
          type: integer
        num_properties:
          format: int64
          nullable: true
          type: integer
        operation:
          $ref: '#/components/schemas/CostOperation'
        row_count:
          format: int64
          nullable: true
          type: integer
        source_count:
          format: int64
          nullable: true
          type: integer
        target_count:
          format: int64
          nullable: true
          type: integer
        use_proxy:
          nullable: true
          type: boolean
      required:
      - operation
      type: object
    VizBooleanControlType:
      enum:
      - checkbox
      type: string
    WorkflowNodeOutputUpload:
      properties:
        cache_final_rows:
          format: int64
          nullable: true
          type: integer
        cache_final_size_bytes:
          format: int64
          nullable: true
          type: integer
        cache_max_bytes:
          format: int64
          nullable: true
          type: integer
        cache_original_rows:
          format: int64
          nullable: true
          type: integer
        cache_original_size_bytes:
          format: int64
          nullable: true
          type: integer
        cache_truncated:
          nullable: true
          type: boolean
        content:
          format: binary
          type: string
        output_schema:
          nullable: true
          type: string
      required:
      - content
      type: object
    VizQuery:
      additionalProperties: false
      properties:
        id:
          type: string
        sql:
          type: string
      required:
      - id
      - sql
      type: object
    VizBooleanControl:
      additionalProperties: false
      properties:
        label:
          type: string
        type:
          $ref: '#/components/schemas/VizBooleanControlType'
      required:
      - type
      - label
      type: object
    VizFigureDefinition:
      additionalProperties: false
      properties:
        expression:
          type: string
        kind:
          $ref: '#/components/schemas/VizFigureKind'
      required:
      - kind
      - expression
      type: object
    DashboardComponent:
      description: A component references a viz node and optional display metadata.
      properties:
        description:
          description: Optional description shown under the component title.
          nullable: true
          type: string
        node_name:
          description: Function name of the viz node that outputs the chart spec.
          type: string
        span:
          description: 'Grid span: 1 (quarter), 2 (half), 3 (three-quarters), 4 (full width).'
          format: int32
          nullable: true
          type: integer
        title:
          description: Display title shown in the dashboard layout.
          type: string
      required:
      - node_name
      - title
      type: object
    WorkflowSessionNodeId:
      format: uuid
      type: string
    WorkflowDAG:
      properties:
        aborted:
          type: boolean
        dag_ready_at:
          format: date-time
          nullable: true
          type: string
        dashboard_layout:
          allOf:
          - $ref: '#/components/schemas/Dashboard'
          nullable: true
        dashboard_specs:
          items:
            $ref: '#/components/schemas/DashboardItem'
          type: array
        edges:
          items:
            $ref: '#/components/schemas/WorkflowSessionEdge'
          type: array
        error:
          nullable: true
          type: string
        error_traceback:
          nullable: true
          type: string
        is_ready:
          type: boolean
        nodes:
          items:
            $ref: '#/components/schemas/WorkflowSessionNode'
          type: array
        session_id:
          $ref: '#/components/schemas/WorkflowSessionId'
      required:
      - session_id
      - aborted
      - nodes
      - edges
      - is_ready
      - dashboard_specs
      type: object
    FinalizeDagRequest:
      properties:
        dashboard_layout:
          allOf:
          - $ref: '#/components/schemas/Dashboard'
          nullable: true
        edges:
          items:
            $ref: '#/components/schemas/EdgeSpec'
          type: array
        nodes:
          items:
            $ref: '#/components/schemas/NodeSpec'
          type: array
      required:
      - nodes
      - edges
      type: object
    JobStatus:
      enum:
      - Queued
      - Running
      - Completed
      - Failed
      type: string
    CostOperation:
      enum:
      - tag
      - pdf
      - web
      - match
      type: string
    WorkflowNodeExecutionStatus:
      enum:
      - Unexecuted
      - Success
      - Failure
      - Running
      - Aborted
      - PendingConfirmation
      type: string
    ConnectorId:
      format: uuid
      type: string
    VizControlOption:
      additionalProperties: false
      properties:
        label:
          type: string
        value:
          type: string
      required:
      - label
      - value
      type: object
    TriggerReviewResponse:
      properties:
        triggered:
          type: boolean
      required:
      - triggered
      type: object
    DashboardItem:
      properties:
        file_name:
          description: File path relative to repository root.
          type: string
        spec:
          $ref: '#/components/schemas/DashboardSpec'
      required:
      - file_name
      - spec
      type: object
    JobId:
      format: uuid
      type: string
    UpdateWorkflowNodeProgressRequest:
      properties:
        current:
          format: int32
          minimum: 0
          type: integer
        elapsed_seconds:
          format: double
          type: number
        title:
          type: string
        total:
          format: int32
          minimum: 0
          nullable: true
          type: integer
      required:
      - title
      - current
      - elapsed_seconds
      type: object
    ProgressStatus:
      properties:
        current:
          format: int32
          minimum: 0
          type: integer
        elapsed_seconds:
          format: double
          type: number
        started_at:
          format: date-time
          type: string
        total:
          format: int32
          minimum: 0
          nullable: true
          type: integer
      required:
      - started_at
      - current
      - elapsed_seconds
      type: object
    WorkflowSessionNode:
      properties:
        cache_final_rows:
          format: int64
          nullable: true
          type: integer
        cache_final_size_bytes:
          format: int64
          nullable: true
          type: integer
        cache_max_bytes:
          format: int64
          nullable: true
          type: integer
        cache_original_rows:
          format: int64
          nullable: true
          type: integer
        cache_original_size_bytes:
          format: int64
          nullable: true
          type: integer
        cache_truncated:
          type: boolean
        code:
          nullable: true
          type: string
        code_md5_hash:
          type: string
        confirmation_status:
          nullable: true
          type: string
        connector_id:
          allOf:
          - $ref: '#/components/schemas/ConnectorId'
          nullable: true
        created_at:
          format: date-time
          nullable: true
          type: string
        docstring:
          type: string
        error_message:
          nullable: true
          type: string
        error_traceback:
          nullable: true
          type: string
        estimated_cost:
          format: int64
          nullable: true
          type: integer
        execution_status:
          $ref: '#/components/schemas/WorkflowNodeExecutionStatus'
        execution_time_ms:
          format: int64
          nullable: true
          type: integer
        function_name:
          type: string
        id:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
        input_row_count:
          format: int64
          nullable: true
          type: integer
        manually_edited:
          type: boolean
        node_index:
          format: int32
          type: integer
        node_name:
          type: string
        original_node:
          allOf:
          - $ref: '#/components/schemas/WorkflowSessionNodeId'
          nullable: true
        output_blob_name:
          nullable: true
          type: string
        output_schema:
          nullable: true
        progress:
          nullable: true
        reviewed:
          type: boolean
        session_id:
          $ref: '#/components/schemas/WorkflowSessionId'
        updated_at:
          format: date-time
          type: string
        visualization_output:
          nullable: true
      required:
      - id
      - node_index
      - node_name
      - session_id
      - function_name
      - docstring
      - execution_status
      - updated_at
      - code_md5_hash
      - reviewed
      type: object
    ControlOption:
      properties:
        label:
          type: string
        value:
          type: string
      required:
      - value
      - label
      type: object
    VizStringControl:
      additionalProperties: false
      properties:
        label:
          type: string
        options:
          items:
            $ref: '#/components/schemas/VizControlOption'
          type: array
        type:
          $ref: '#/components/schemas/VizStringControlType'
      required:
      - type
      - label
      - options
      type: object
    CostEstimateResponse:
      properties:
        estimated_credits:
          format: int64
          type: integer
        estimated_dollars:
          format: double
          type: number
      required:
      - estimated_credits
      - estimated_dollars
      type: object
    UploadDashboardLayoutRequest:
      oneOf:
      - properties:
          layout:
            $ref: '#/components/schemas/Dashboard'
        required:
        - layout
        type: object
      - properties:
          dashboard_specs:
            items:
              $ref: '#/components/schemas/DashboardSpecUpload'
            type: array
        required:
        - dashboard_specs
        type: object
    JobWithEvents:
      description: A job paired with all its associated events
      properties:
        events:
          items:
            $ref: '#/components/schemas/TimeStampedJobEvent'
          type: array
        id:
          $ref: '#/components/schemas/JobId'
        run_started_time:
          format: date-time
          type: string
        seeded_kg:
          allOf:
          - $ref: '#/components/schemas/LLMKnowledgeGraph'
          nullable: true
        status:
          $ref: '#/components/schemas/JobStatus'
      required:
      - id
      - status
      - run_started_time
      - events
      type: object
    VizFigure:
      additionalProperties: false
      properties:
        description:
          type: string
        figure:
          $ref: '#/components/schemas/VizFigureDefinition'
        id:
          type: string
        span:
          format: int32
          type: integer
        title:
          type: string
      required:
      - id
      - figure
      type: object
    UpdateWorkflowNodeRequest:
      properties:
        error_message:
          nullable: true
          type: string
        error_traceback:
          nullable: true
          type: string
        execution_status:
          $ref: '#/components/schemas/WorkflowNodeExecutionStatus'
        execution_time_ms:
          format: int64
          nullable: true
          type: integer
      required:
      - execution_status
      type: object
    EditNodeOutputResponse:
      properties:
        error_message:
          nullable: true
          type: string
      type: object
    WorkflowSessionEdge:
      properties:
        created_at:
          format: date-time
          type: string
        id:
          $ref: '#/components/schemas/WorkflowSessionEdgeId'
        session_id:
          $ref: '#/components/schemas/WorkflowSessionId'
        source_node_id:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
        target_node_id:
          $ref: '#/components/schemas/WorkflowSessionNodeId'
      required:
      - id
      - session_id
      - source_node_id
      - target_node_id
      - created_at
      type: object
    WorkflowSessionEdgeId:
      format: uuid
      type: string
    VizNumberControlType:
      enum:
      - range
      type: string
    ParquetEdit:
      discriminator:
        propertyName: type
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/CellEdit'
        - properties:
            type:
              enum:
              - edit_cell
              type: string
          required:
          - type
          type: object
      - properties:
          row_index:
            minimum: 0
            type: integer
          type:
            enum:
            - delete_row
            type: string
        required:
        - row_index
        - type
        type: object
      - properties:
          type:
            enum:
            - add_row
            type: string
          values:
            additionalProperties:
              type: string
            type: object
        required:
        - values
        - type
        type: object
    CreateWorkflowSessionRequest:
      properties:
        chat_session_id:
          $ref: '#/components/schemas/ChatSessionId'
        parent_chat_message_id:
          

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/structify/refs/heads/main/openapi/structify-sessions-api-openapi.yml