openapi: 3.1.0
info:
  title: CogniCo Public API
  version: 0.0.1
paths:
  /api/v0/account/{account_id}:
    get:
      tags:
      - Account
      summary: Get Account
      operationId: get_account
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/analyzer-result:
    get:
      tags:
      - AnalyzerResult
      summary: List Analyzer Results
      operationId: list_analyzer_results
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Id
      - name: recording_file_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording File Id
      - name: data_key
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Data Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AnalyzerResultData'
                title: Response List Analyzer Results
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - AnalyzerResult
      summary: Create Analyzer Result
      operationId: create_analyzer_result
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyzerResultData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyzerResultData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/analyzer-result/{result_id}:
    get:
      tags:
      - AnalyzerResult
      summary: Get Analyzer Result
      operationId: get_analyzer_result
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: result_id
        in: path
        required: true
        schema:
          type: integer
          title: Result Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyzerResultData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - AnalyzerResult
      summary: Update Analyzer Result
      operationId: update_analyzer_result
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: result_id
        in: path
        required: true
        schema:
          type: integer
          title: Result Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyzerResultData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyzerResultData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - AnalyzerResult
      summary: Delete Analyzer Result
      operationId: delete_analyzer_result
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: result_id
        in: path
        required: true
        schema:
          type: integer
          title: Result Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/api-keys:
    post:
      tags:
      - ApiKey
      summary: Create Api Key
      operationId: create_api_key
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiKeyData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyCreatedData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - ApiKey
      summary: List Api Keys
      operationId: list_api_keys
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiKeyData'
                title: Response List Api Keys
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/api-keys/{key_id}:
    delete:
      tags:
      - ApiKey
      summary: Delete Api Key
      operationId: delete_api_key
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: key_id
        in: path
        required: true
        schema:
          type: integer
          title: Key Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recheck-limits:
    post:
      tags:
      - Counters
      summary: Recheck Limits
      description: "\u041F\u0440\u0438\u043D\u0443\u0434\u0438\u0442\u0435\u043B\u044C\
        \u043D\u043E \u043F\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u0430\u0442\u044C\
        \ \u043B\u0438\u043C\u0438\u0442\u044B \u0430\u043A\u043A\u0430\u0443\u043D\
        \u0442\u0430."
      operationId: recheck_limits
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/counters:
    get:
      tags:
      - Counters
      summary: Get Account Counters
      operationId: get_account_counters
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountCounterResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/counters/history:
    get:
      tags:
      - Counters
      summary: Get Counter History
      operationId: get_counter_history
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: counter_name
        in: query
        required: true
        schema:
          type: string
          title: Counter Name
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 30
          title: Days
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CounterHistoryEntry'
                title: Response Get Counter History
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/counters/tokens:
    get:
      tags:
      - Counters
      summary: Get Token Usage
      operationId: get_token_usage
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 30
          title: Days
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenUsageResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/document:
    post:
      tags:
      - Document
      summary: Create Document
      operationId: create_document
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentData-Input'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentData-Output'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Document
      summary: List Documents
      operationId: list_documents
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Id
      - name: folder_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DocumentMeta'
                title: Response List Documents
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/document/{document_id}:
    get:
      tags:
      - Document
      summary: Get Document
      operationId: get_document
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentData-Output'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Document
      summary: Update Document
      operationId: update_document
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentData-Input'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentData-Output'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Document
      summary: Delete Document
      operationId: delete_document
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/document/{document_id}/content:
    get:
      tags:
      - Document
      summary: Get Document Content
      operationId: get_document_content
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/document/reorder:
    post:
      tags:
      - Document
      summary: Reorder Documents
      operationId: reorder_documents
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReorderDocumentsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/document/move:
    post:
      tags:
      - Document
      summary: Move Documents
      operationId: move_documents
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveDocumentsData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/events:
    post:
      tags:
      - Events
      summary: Save Tracking Events
      operationId: save_tracking_events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackingEventsRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/feedback:
    post:
      tags:
      - Feedback
      summary: Submit Feedback
      operationId: submit_feedback
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_submit_feedback'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/folder:
    post:
      tags:
      - Folder
      summary: Create Folder
      operationId: create_folder
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFolderData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Folder
      summary: List Folders
      operationId: list_folders
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: parent_path
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Parent folder path. If not specified, returns root folder only
          title: Parent Path
        description: Parent folder path. If not specified, returns root folder only
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FolderData'
                title: Response List Folders
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/folder/move:
    post:
      tags:
      - Folder
      summary: Move Items
      operationId: move_items
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MoveRecordingsFoldersData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/folder/tree:
    get:
      tags:
      - Folder
      summary: Get Folder Tree
      operationId: get_folder_tree
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderTreeNode'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/folder/{folder_id}:
    get:
      tags:
      - Folder
      summary: Get Folder
      operationId: get_folder
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: folder_id
        in: path
        required: true
        schema:
          type: integer
          title: Folder Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Folder
      summary: Delete Folder
      operationId: delete_folder
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: folder_id
        in: path
        required: true
        schema:
          type: integer
          title: Folder Id
      - name: recursive
        in: query
        required: false
        schema:
          type: boolean
          description: Delete folder and all its contents recursively
          default: false
          title: Recursive
        description: Delete folder and all its contents recursively
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/folder/{folder_id}/rename:
    put:
      tags:
      - Folder
      summary: Rename Folder
      operationId: rename_folder
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: folder_id
        in: path
        required: true
        schema:
          type: integer
          title: Folder Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RenameFolderData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording:
    post:
      tags:
      - Recording
      summary: Create Recording
      operationId: create_recording
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRecordingData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Recording
      summary: List Recordings
      operationId: list_recordings
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: folder_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Optional folder ID to filter recordings by folder
          title: Folder Id
        description: Optional folder ID to filter recordings by folder
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordingData'
                title: Response List Recordings
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/draft:
    post:
      tags:
      - Recording
      summary: Create Draft Recording
      description: Create a draft recording for web uploads (chunked upload flow).
      operationId: create_draft_recording
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDraftRecordingData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/create-with-file:
    post:
      tags:
      - Recording
      summary: Create Recording With File
      operationId: create_recording_with_file
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: satellite_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Satellite Name
      - name: start_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Start Time
      - name: label
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
      - name: recognition_mode
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/RecognitionModeType'
          default: single_source
      - name: speakers_count_ch0
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Speakers Count Ch0
      - name: speakers_count_ch1
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Speakers Count Ch1
      - name: languages
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Languages
      - name: allow_language_change
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Allow Language Change
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_create_recording_with_file'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}:
    delete:
      tags:
      - Recording
      summary: Delete Recording
      operationId: delete_recording
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Recording
      summary: Get Recording
      operationId: get_recording
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Recording
      summary: Update Recording
      operationId: update_recording
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRecordingData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recordings:
    post:
      tags:
      - Recording
      summary: List Recordings V2
      operationId: list_recordings_v2
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/RecordingsRequestData'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingsResponseData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/repeat-post-processing:
    post:
      tags:
      - Recording
      summary: Repeat Post Processing
      operationId: repeat_post_processing
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/change-language:
    post:
      tags:
      - Recording
      summary: Change Language And Reprocess
      operationId: change_language_and_reprocess
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeLanguageData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/files/{rec_file_id}/transcription:
    get:
      tags:
      - Recording
      summary: Get Recording Transcription
      operationId: get_recording_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: rec_file_id
        in: path
        required: true
        schema:
          type: integer
          title: Rec File Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/audio_error_marks:
    get:
      tags:
      - RecordingError
      summary: List Recording Errors
      operationId: list_recording_errors
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingErrorListData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - RecordingError
      summary: Mark Recording Error
      operationId: mark_recording_error
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRecordingErrorRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingErrorData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/audio_error_marks/{error_id}:
    delete:
      tags:
      - RecordingError
      summary: Delete Recording Error
      operationId: delete_recording_error
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: error_id
        in: path
        required: true
        schema:
          type: integer
          title: Error Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/manual_transcriptions:
    get:
      tags:
      - ManualTranscription
      summary: List Manual Transcriptions
      operationId: list_manual_transcriptions
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTranscriptionListData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - ManualTranscription
      summary: Create Manual Transcription
      operationId: create_manual_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateManualTranscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/manual_transcriptions/{transcription_id}:
    get:
      tags:
      - ManualTranscription
      summary: Get Manual Transcription
      operationId: get_manual_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: transcription_id
        in: path
        required: true
        schema:
          type: integer
          title: Transcription Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - ManualTranscription
      summary: Update Manual Transcription
      operationId: update_manual_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: transcription_id
        in: path
        required: true
        schema:
          type: integer
          title: Transcription Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateManualTranscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - ManualTranscription
      summary: Delete Manual Transcription
      operationId: delete_manual_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: transcription_id
        in: path
        required: true
        schema:
          type: integer
          title: Transcription Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/file:
    post:
      tags:
      - RecordingFile
      summary: Create Recording File
      operationId: create_recording_file
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRecordingFileData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingFileData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - RecordingFile
      summary: List Recording Files
      operationId: list_recording_files
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecordingFileData'
                title: Response List Recording Files
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/file/{file_id}:
    delete:
      tags:
      - RecordingFile
      summary: Delete Recording File
      operationId: delete_recording_file
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - RecordingFile
      summary: Get Recording File
      operationId: get_recording_file
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingFileData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - RecordingFile
      summary: Update Recording File
      operationId: update_recording_file
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingFileData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingFileData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/file/{file_id}/content:
    get:
      tags:
      - RecordingFile
      summary: Download Recording File
      operationId: download_recording_file
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/satellite:
    post:
      tags:
      - Satellite
      summary: Create Satellite
      operationId: create_satellite
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSatelliteData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SatelliteData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Satellite
      summary: List Satellites
      operationId: list_satellites
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SatelliteData'
                title: Response List Satellites
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/satellite/{satellite_id}:
    delete:
      tags:
      - Satellite
      summary: Delete Satellite
      operationId: delete_satellite
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: satellite_id
        in: path
        required: true
        schema:
          type: integer
          title: Satellite Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    get:
      tags:
      - Satellite
      summary: Get Satellite
      operationId: get_satellite
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: satellite_id
        in: path
        required: true
        schema:
          type: integer
          title: Satellite Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SatelliteData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Satellite
      summary: Update Satellite
      operationId: update_satellite
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: satellite_id
        in: path
        required: true
        schema:
          type: integer
          title: Satellite Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SatelliteData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SatelliteData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/satellite/min-version:
    get:
      tags:
      - Satellite
      summary: Get Minimal Version
      operationId: get_minimal_version
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MinimalVersionData'
  /api/v0/account/{account_id}/search/full-text:
    get:
      tags:
      - Search
      summary: Full Text Search
      operationId: full_text_search
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: query
        in: query
        required: true
        schema:
          type: string
          description: Search query
          title: Query
        description: Search query
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Number of results to return
          default: 20
          title: Limit
        description: Number of results to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip
          default: 0
          title: Offset
        description: Number of results to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponseData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/search/full-text/documents:
    get:
      tags:
      - Search
      summary: Full Text Search Documents
      operationId: full_text_search_documents
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: query
        in: query
        required: true
        schema:
          type: string
          description: Search query
          title: Query
        description: Search query
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Number of results to return
          default: 20
          title: Limit
        description: Number of results to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip
          default: 0
          title: Offset
        description: Number of results to skip
      - name: recording_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Optional recording ID to filter by
          title: Recording Id
        description: Optional recording ID to filter by
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponseData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/share:
    post:
      tags:
      - Sharing
      summary: Create Public Link
      operationId: create_public_link
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSharedLinkData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedLinkData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Sharing
      summary: Update Recording Shared Link
      operationId: update_recording_shared_link
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSharedLinkData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedLinkData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Sharing
      summary: Revoke Public Link
      operationId: revoke_public_link
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/recording/{shared_id}:
    get:
      tags:
      - Sharing
      summary: Get Recording By Shared Link
      operationId: get_recording_by_shared_link
      parameters:
      - name: shared_id
        in: path
        required: true
        schema:
          type: string
          title: Shared Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/shares:
    get:
      tags:
      - Sharing
      summary: List Recording Shares
      operationId: list_recording_shares
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SharedLinkData'
                title: Response List Recording Shares
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/document/{document_id}/share:
    post:
      tags:
      - Sharing
      summary: Create Document Public Link
      operationId: create_document_public_link
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SharedLinkData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Sharing
      summary: Revoke Document Public Link
      operationId: revoke_document_public_link
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: document_id
        in: path
        required: true
        schema:
          type: integer
          title: Document Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/document/{shared_id}:
    get:
      tags:
      - Sharing
      summary: Get Document By Shared Link
      operationId: get_document_by_shared_link
      parameters:
      - name: shared_id
        in: path
        required: true
        schema:
          type: string
          title: Shared Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentMeta'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/health:
    get:
      tags:
      - System
      summary: Health
      operationId: health
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthData'
  /api/v0/version:
    get:
      tags:
      - System
      summary: Version
      operationId: version
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionData'
  /api/v0/account/{account_id}/chat:
    get:
      tags:
      - Chat
      summary: List Chats
      operationId: list_chats
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ChatData'
                title: Response List Chats
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Chat
      summary: Create Chat
      operationId: create_chat
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChatData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/chat/suggestions:
    get:
      tags:
      - Chat
      summary: Get Chat Suggestions
      operationId: get_chat_suggestions
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatSuggestionsData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/chat/{chat_id}:
    get:
      tags:
      - Chat
      summary: Get Chat
      operationId: get_chat
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: chat_id
        in: path
        required: true
        schema:
          type: integer
          title: Chat Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatWithMessagesData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Chat
      summary: Update Chat
      operationId: update_chat
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: chat_id
        in: path
        required: true
        schema:
          type: integer
          title: Chat Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateChatData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - Chat
      summary: Delete Chat
      operationId: delete_chat
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: chat_id
        in: path
        required: true
        schema:
          type: integer
          title: Chat Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/chat/{chat_id}/message:
    post:
      tags:
      - Chat
      summary: Send Message
      operationId: send_message
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: chat_id
        in: path
        required: true
        schema:
          type: integer
          title: Chat Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendMessageData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/user:
    get:
      tags:
      - UserManagement
      summary: Get Current User
      operationId: get_current_user
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAuthInfoData'
  /api/v0/notifications/clear:
    post:
      tags:
      - Notifications
      summary: Clear Notifications
      operationId: clear_notifications
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClearNotificationsRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/tools/analyze_emotions:
    post:
      tags:
      - Tools
      summary: Analyze Emotions
      operationId: analyze_emotions
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingProcessingRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobTaskData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/tools/analyze_speakers:
    post:
      tags:
      - Tools
      summary: Analyze Speakers
      operationId: analyze_speakers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyzeSpeakersRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobTaskData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/tools/format_transcription_ai:
    post:
      tags:
      - Tools
      summary: Format Transcription Ai
      operationId: format_transcription_ai
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingProcessingRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobTaskData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/tools/format_transcription_simple:
    post:
      tags:
      - Tools
      summary: Format Transcription Simple
      operationId: format_transcription_simple
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingProcessingRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobTaskData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/tools/summarize_transcription_ai:
    post:
      tags:
      - Tools
      summary: Summarize Transcription Ai
      operationId: summarize_transcription_ai
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingProcessingRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobTaskData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/tools/action_points_transcription_ai:
    post:
      tags:
      - Tools
      summary: Action Points Transcription Ai
      operationId: action_points_transcription_ai
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingProcessingRequestData'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobTaskData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/transcription:
    get:
      tags:
      - Transcription
      summary: Get Transcription
      operationId: get_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingTranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - Transcription
      summary: Update Transcription
      operationId: update_transcription
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TranscriptionUpdateData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingTranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/recording/{recording_id}/speaker:
    patch:
      tags:
      - Transcription
      summary: Update Speaker
      operationId: update_speaker
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: recording_id
        in: path
        required: true
        schema:
          type: integer
          title: Recording Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSpeakerData'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingTranscriptionData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/upload/init:
    post:
      tags:
      - Upload
      summary: Init Upload
      description: "Initialize or resume a file upload.\n\nIf a file with the same\
        \ filename already exists for this recording:\n- Returns the existing file_id\
        \ and confirmed_position for resumption\n- If file is already completed, returns\
        \ is_completed=True\n\nReturns:\n    InitUploadResponse with file_id and confirmed_position"
      operationId: init_upload
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitUploadRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitUploadResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/upload/{file_id}/chunk:
    post:
      tags:
      - Upload
      summary: Upload Chunk
      description: "Upload a chunk of file data.\n\nChunks must be uploaded in sequence\
        \ (no gaps).\nPosition must equal the current file size (confirmed_position).\n\
        \nArgs:\n    account_id: Account ID\n    file_id: File ID from init_upload\n\
        \    position: Position in file where this chunk starts\n    file: Chunk data\
        \ as multipart file\n\nReturns:\n    UploadChunkResponse with new confirmed_position"
      operationId: upload_chunk
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      - name: position
        in: query
        required: true
        schema:
          type: integer
          description: Position in file where this chunk starts
          title: Position
        description: Position in file where this chunk starts
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_upload_chunk'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadChunkResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/upload/{file_id}/status:
    get:
      tags:
      - Upload
      summary: Get Upload Status
      description: "Get current upload status for a file.\n\nUse this to check confirmed_position\
        \ for resumption.\n\nReturns:\n    UploadStatusResponse with current status\
        \ and confirmed_position"
      operationId: get_upload_status
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/upload/{file_id}/complete:
    post:
      tags:
      - Upload
      summary: Complete Upload
      description: "Complete a file upload and start processing.\n\nThis marks the\
        \ file as UPLOAD_COMPLETE and starts processing jobs\nbased on the file type\
        \ (audio processing, image processing, etc.).\n\nArgs:\n    account_id: Account\
        \ ID\n    file_id: File ID from init_upload\n    request: Optional completion\
        \ data (frame_count for duration calculation,\n             speakers_count_ch0/ch1\
        \ for speaker diarization)\n\nReturns:\n    CompleteUploadResponse with success\
        \ status and final file size"
      operationId: complete_upload
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/CompleteUploadRequest'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompleteUploadResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/upload/{file_id}/cancel:
    post:
      tags:
      - Upload
      summary: Cancel Upload
      description: "Cancel a file upload.\n\nThis marks the file and recording as\
        \ ERROR and signals any active\nupload to stop. The file can be retried later\
        \ if needed.\n\nArgs:\n    account_id: Account ID\n    file_id: File ID from\
        \ init_upload\n\nReturns:\n    CompleteUploadResponse with success status"
      operationId: cancel_upload
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: file_id
        in: path
        required: true
        schema:
          type: integer
          title: File Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompleteUploadResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/account/{account_id}/search/semantic:
    get:
      tags:
      - Search
      summary: Semantic Search
      description: "Semantic search using RAG embeddings.\n\nArgs:\n    account_id:\
        \ Account ID\n    query: Search query text\n    limit: Maximum results to\
        \ return\n    offset: Results offset for pagination\n\nReturns:\n    SearchResponseData\
        \ with hits ordered by similarity score."
      operationId: semantic_search
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: integer
          title: Account Id
      - name: query
        in: query
        required: true
        schema:
          type: string
          description: Search query
          title: Query
        description: Search query
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Number of results to return
          default: 20
          title: Limit
        description: Number of results to return
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip
          default: 0
          title: Offset
        description: Number of results to skip
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponseData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v0/oauth/consent:
    post:
      tags:
      - oauth
      summary: Consent Submit
      operationId: consent_submit_api_v0_oauth_consent_post
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_consent_submit_api_v0_oauth_consent_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /.well-known/oauth-protected-resource/api/mcp/:
    get:
      summary: Protected Resource Metadata
      operationId: protected_resource_metadata__well_known_oauth_protected_resource_api_mcp__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /.well-known/oauth-protected-resource/api/mcp:
    get:
      summary: Protected Resource Metadata
      operationId: protected_resource_metadata__well_known_oauth_protected_resource_api_mcp_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /.well-known/oauth-authorization-server/api/mcp/:
    get:
      summary: Authorization Server Metadata
      operationId: authorization_server_metadata__well_known_oauth_authorization_server_api_mcp__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /.well-known/oauth-authorization-server/api/mcp:
    get:
      summary: Authorization Server Metadata
      operationId: authorization_server_metadata__well_known_oauth_authorization_server_api_mcp_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
components:
  schemas:
    AccountCounterResponse:
      properties:
        storage_bytes:
          type: integer
          title: Storage Bytes
        recording_duration_ms:
          type: integer
          title: Recording Duration Ms
        ai_chat_requests:
          type: integer
          title: Ai Chat Requests
        recording_duration_total_ms:
          type: integer
          title: Recording Duration Total Ms
          default: 0
        ai_chat_requests_total:
          type: integer
          title: Ai Chat Requests Total
          default: 0
        storage_limit_bytes:
          anyOf:
          - type: integer
          - type: 'null'
          title: Storage Limit Bytes
        recording_limit_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Limit Ms
        ai_chat_requests_limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Chat Requests Limit
        recording_bonus:
          anyOf:
          - $ref: '#/components/schemas/BonusInfo'
          - type: 'null'
        ai_chat_bonus:
          anyOf:
          - $ref: '#/components/schemas/BonusInfo'
          - type: 'null'
        storage_bonus_gb:
          type: integer
          title: Storage Bonus Gb
          default: 0
        recorder_bonus_ms:
          type: integer
          title: Recorder Bonus Ms
          default: 0
        recorder_bonus_limit_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recorder Bonus Limit Ms
        recognition_api_duration_ms:
          type: integer
          title: Recognition Api Duration Ms
          default: 0
        recognition_api_limit_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recognition Api Limit Ms
        recognition_api_blocked:
          type: boolean
          title: Recognition Api Blocked
          default: false
        processing_blocked:
          type: boolean
          title: Processing Blocked
        upload_blocked:
          type: boolean
          title: Upload Blocked
        ai_blocked:
          type: boolean
          title: Ai Blocked
        period_start:
          type: string
          format: date
          title: Period Start
        period_end:
          type: string
          format: date
          title: Period End
      type: object
      required:
      - storage_bytes
      - recording_duration_ms
      - ai_chat_requests
      - storage_limit_bytes
      - recording_limit_ms
      - ai_chat_requests_limit
      - processing_blocked
      - upload_blocked
      - ai_blocked
      - period_start
      - period_end
      title: AccountCounterResponse
    AccountData:
      properties:
        account_id:
          type: integer
          title: Account Id
        name:
          type: string
          title: Name
        owner_user_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Owner User Id
        owner_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Email
        owner_username:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Username
        active:
          type: boolean
          title: Active
          default: true
        service_plan_id:
          type: string
          title: Service Plan Id
        service_plan_activation_date:
          type: string
          format: date-time
          title: Service Plan Activation Date
        next_action_date:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Next Action Date
        next_action_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Action Type
        processing_blocked:
          type: boolean
          title: Processing Blocked
          default: false
        upload_blocked:
          type: boolean
          title: Upload Blocked
          default: false
        ai_blocked:
          type: boolean
          title: Ai Blocked
          default: false
        recognition_api_blocked:
          type: boolean
          title: Recognition Api Blocked
          default: false
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
      type: object
      required:
      - account_id
      - name
      - service_plan_id
      - service_plan_activation_date
      title: AccountData
    AccountWithRoleData:
      properties:
        account:
          $ref: '#/components/schemas/AccountData'
        role:
          type: string
          title: Role
        toggles:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Toggles
      type: object
      required:
      - account
      - role
      title: AccountWithRoleData
    AnalyzeSpeakersRequestData:
      properties:
        account_id:
          type: integer
          title: Account Id
        recording_id:
          type: integer
          title: Recording Id
        src_document_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Src Document Id
        type:
          $ref: '#/components/schemas/DiarizationType'
          default: pyannote
        speakers_by_channel:
          items:
            $ref: '#/components/schemas/SpeakersCount'
          type: array
          title: Speakers By Channel
        notification_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Notification Id
      type: object
      required:
      - account_id
      - recording_id
      - speakers_by_channel
      title: AnalyzeSpeakersRequestData
    AnalyzerResultData:
      properties:
        id:
          type: integer
          title: Id
        account_id:
          type: integer
          title: Account Id
        recording_id:
          type: integer
          title: Recording Id
        recording_file_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording File Id
        data_key:
          type: string
          title: Data Key
        data:
          type: string
          title: Data
      type: object
      required:
      - id
      - account_id
      - recording_id
      - recording_file_id
      - data_key
      - data
      title: AnalyzerResultData
    ApiKeyCreatedData:
      properties:
        id:
          type: integer
          title: Id
        account_id:
          type: integer
          title: Account Id
        name:
          type: string
          title: Name
        key_prefix:
          type: string
          title: Key Prefix
        expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expires At
        active:
          type: boolean
          title: Active
        created_at:
          type: string
          format: date-time
          title: Created At
        key:
          type: string
          title: Key
      type: object
      required:
      - id
      - account_id
      - name
      - key_prefix
      - expires_at
      - active
      - created_at
      - key
      title: ApiKeyCreatedData
    ApiKeyData:
      properties:
        id:
          type: integer
          title: Id
        account_id:
          type: integer
          title: Account Id
        name:
          type: string
          title: Name
        key_prefix:
          type: string
          title: Key Prefix
        expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expires At
        active:
          type: boolean
          title: Active
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - account_id
      - name
      - key_prefix
      - expires_at
      - active
      - created_at
      title: ApiKeyData
    AudioProcessingStatusType:
      type: string
      enum:
      - PENDING
      - RECOGNITION
      - FINALIZATION
      - COMPLETE
      - ERROR
      title: AudioProcessingStatusType
    Body_consent_submit_api_v0_oauth_consent_post:
      properties:
        client_id:
          type: string
          title: Client Id
        redirect_uri:
          type: string
          title: Redirect Uri
        code_challenge:
          type: string
          title: Code Challenge
        code_challenge_method:
          type: string
          title: Code Challenge Method
          default: S256
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
        scope:
          anyOf:
          - type: string
          - type: 'null'
          title: Scope
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        password:
          anyOf:
          - type: string
          - type: 'null'
          title: Password
        session_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Session Token
        account_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Account Id
      type: object
      required:
      - client_id
      - redirect_uri
      - code_challenge
      title: Body_consent_submit_api_v0_oauth_consent_post
    Body_create_recording_with_file:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
      - file
      title: Body_create_recording_with_file
    Body_submit_feedback:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
      - file
      title: Body_submit_feedback
    Body_upload_chunk:
      properties:
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
      - file
      title: Body_upload_chunk
    BonusInfo:
      properties:
        renewable:
          type: integer
          title: Renewable
          default: 0
        onetime_granted:
          type: integer
          title: Onetime Granted
          default: 0
        onetime_remaining:
          type: integer
          title: Onetime Remaining
          default: 0
      type: object
      title: BonusInfo
      description: "\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E\
        \ \u0431\u043E\u043D\u0443\u0441\u0430\u0445 \u0434\u043B\u044F \u043E\u0434\
        \u043D\u043E\u0433\u043E \u0442\u0438\u043F\u0430 \u043B\u0438\u043C\u0438\
        \u0442\u0430."
    ChangeLanguageData:
      properties:
        languages:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Languages
        allow_language_change:
          type: boolean
          title: Allow Language Change
          default: false
      type: object
      title: ChangeLanguageData
      description: Request to change language settings and re-run recognition.
    ChatConfigData:
      properties:
        rag_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Rag Enabled
        limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Limit
        max_tokens:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Tokens
        dedupe_strategy:
          anyOf:
          - type: string
          - type: 'null'
          title: Dedupe Strategy
        reorder_strategy:
          anyOf:
          - type: string
          - type: 'null'
          title: Reorder Strategy
        diversity_factor:
          anyOf:
          - type: number
          - type: 'null'
          title: Diversity Factor
        history_max_tokens:
          anyOf:
          - type: integer
          - type: 'null'
          title: History Max Tokens
        enable_query_analysis:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Enable Query Analysis
        enable_runtime_token_backfill:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Enable Runtime Token Backfill
      type: object
      title: ChatConfigData
      description: "Chat behavior override \u2014 all fields are optional, unset fields\
        \ use server defaults."
    ChatContext:
      properties:
        recordings:
          items:
            $ref: '#/components/schemas/RecordingSummary'
          type: array
          title: Recordings
          default: []
        documents:
          items:
            $ref: '#/components/schemas/DocumentSummary'
          type: array
          title: Documents
          default: []
        folders:
          items:
            $ref: '#/components/schemas/FolderSummary'
          type: array
          title: Folders
          default: []
        chat_config:
          anyOf:
          - $ref: '#/components/schemas/ChatConfigData'
          - type: 'null'
      type: object
      title: ChatContext
      description: "Context for RAG chat - defines what content to search.\n\nSpecify\
        \ recordings/documents/folders \u2014 the backend resolves them to RAG nodes\
        \ internally."
    ChatData:
      properties:
        chat_id:
          type: integer
          title: Chat Id
        account_id:
          type: integer
          title: Account Id
        user_id:
          type: integer
          title: User Id
        title:
          type: string
          title: Title
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        is_generating:
          type: boolean
          title: Is Generating
          default: false
      type: object
      required:
      - chat_id
      - account_id
      - user_id
      - title
      - created_at
      - updated_at
      title: ChatData
    ChatMessageData:
      properties:
        message_id:
          type: integer
          title: Message Id
        chat_id:
          type: integer
          title: Chat Id
        role:
          type: string
          title: Role
        text:
          type: string
          title: Text
        created_at:
          type: string
          format: date-time
          title: Created At
        sources:
          anyOf:
          - items:
              $ref: '#/components/schemas/SourceCitationData'
            type: array
          - type: 'null'
          title: Sources
      type: object
      required:
      - message_id
      - chat_id
      - role
      - text
      - created_at
      title: ChatMessageData
    ChatSuggestionsData:
      properties:
        welcome:
          type: string
          title: Welcome
        suggestions:
          items:
            type: string
          type: array
          title: Suggestions
      type: object
      required:
      - welcome
      - suggestions
      title: ChatSuggestionsData
    ChatWithMessagesData:
      properties:
        chat_id:
          type: integer
          title: Chat Id
        account_id:
          type: integer
          title: Account Id
        user_id:
          type: integer
          title: User Id
        title:
          type: string
          title: Title
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        is_generating:
          type: boolean
          title: Is Generating
          default: false
        messages:
          items:
            $ref: '#/components/schemas/ChatMessageData'
          type: array
          title: Messages
      type: object
      required:
      - chat_id
      - account_id
      - user_id
      - title
      - created_at
      - updated_at
      - messages
      title: ChatWithMessagesData
    CheckResult:
      properties:
        status:
          $ref: '#/components/schemas/CheckStatus'
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        critical:
          type: boolean
          title: Critical
      type: object
      required:
      - status
      - critical
      title: CheckResult
    CheckStatus:
      type: string
      enum:
      - Ok
      - Failed
      title: CheckStatus
    ClearNotificationsRequestData:
      properties:
        notification_ids:
          items:
            type: integer
          type: array
          title: Notification Ids
      type: object
      required:
      - notification_ids
      title: ClearNotificationsRequestData
    CompleteUploadRequest:
      properties:
        frame_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Frame Count
          description: Optional frame count for duration calculation
        speakers_count_ch0:
          anyOf:
          - type: integer
          - type: 'null'
          title: Speakers Count Ch0
          description: Optional speaker count for channel 0 (for speaker diarization)
        speakers_count_ch1:
          anyOf:
          - type: integer
          - type: 'null'
          title: Speakers Count Ch1
          description: Optional speaker count for channel 1 (for independent channels
            mode)
        sha256:
          anyOf:
          - type: string
          - type: 'null'
          title: Sha256
          description: SHA-256 hex digest of the uploaded file (for integrity verification)
      type: object
      title: CompleteUploadRequest
      description: Request to complete an upload.
    CompleteUploadResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: True if upload was successfully completed
        file_size:
          type: integer
          title: File Size
          description: Final file size in bytes
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
          description: Media duration in milliseconds (audio/video only)
        media_format:
          anyOf:
          - type: string
          - type: 'null'
          title: Media Format
          description: Media format name (audio/video only)
      type: object
      required:
      - success
      - file_size
      title: CompleteUploadResponse
      description: Response after completing an upload.
    CounterHistoryEntry:
      properties:
        bucket_time:
          type: string
          format: date-time
          title: Bucket Time
        value:
          type: integer
          title: Value
      type: object
      required:
      - bucket_time
      - value
      title: CounterHistoryEntry
    CreateApiKeyData:
      properties:
        name:
          type: string
          title: Name
        expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expires At
      type: object
      required:
      - name
      title: CreateApiKeyData
    CreateChatData:
      properties:
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
      type: object
      title: CreateChatData
    CreateDraftRecordingData:
      properties:
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        recording_type:
          $ref: '#/components/schemas/RecordingType'
          default: audio_meeting
        languages:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Languages
        allow_language_change:
          type: boolean
          title: Allow Language Change
          default: false
      type: object
      title: CreateDraftRecordingData
      description: Model for web-initiated draft recording creation (for chunked uploads).
    CreateFolderData:
      properties:
        parent_path:
          type: string
          title: Parent Path
          default: /
        name:
          type: string
          title: Name
      type: object
      required:
      - name
      title: CreateFolderData
    CreateManualTranscriptionRequest:
      properties:
        start_ms:
          type: integer
          title: Start Ms
        end_ms:
          type: integer
          title: End Ms
        transcription_data:
          anyOf:
          - type: string
          - type: 'null'
          title: Transcription Data
      type: object
      required:
      - start_ms
      - end_ms
      title: CreateManualTranscriptionRequest
    CreateRecordingData:
      properties:
        satellite_name:
          type: string
          title: Satellite Name
        start_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Start Time
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        recording_type:
          $ref: '#/components/schemas/RecordingType'
          default: audio_meeting
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
      type: object
      required:
      - satellite_name
      - start_time
      - label
      title: CreateRecordingData
      description: Model for satellite-initiated recording creation.
    CreateRecordingErrorRequest:
      properties:
        start_ms:
          type: integer
          title: Start Ms
        end_ms:
          type: integer
          title: End Ms
        description:
          type: string
          title: Description
        is_critical:
          type: boolean
          title: Is Critical
          default: false
      type: object
      required:
      - start_ms
      - end_ms
      - description
      title: CreateRecordingErrorRequest
    CreateRecordingFileData:
      properties:
        device_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Device Id
        originator:
          anyOf:
          - type: string
          - type: 'null'
          title: Originator
        start_time:
          type: string
          format: date-time
          title: Start Time
        recognition_mode:
          anyOf:
          - $ref: '#/components/schemas/RecognitionModeType'
          - type: 'null'
        s3_filename:
          anyOf:
          - type: string
          - type: 'null'
          title: S3 Filename
        file_type:
          anyOf:
          - $ref: '#/components/schemas/RecordingFileType'
          - type: 'null'
          default: AUDIO
        filename:
          anyOf:
          - type: string
          - type: 'null'
          title: Filename
      type: object
      required:
      - device_id
      - originator
      - start_time
      - recognition_mode
      - s3_filename
      title: CreateRecordingFileData
    CreateSatelliteData:
      properties:
        name:
          type: string
          title: Name
        version:
          anyOf:
          - type: string
          - type: 'null'
          title: Version
        platform:
          anyOf:
          - type: string
          - type: 'null'
          title: Platform
        build:
          anyOf:
          - type: string
          - type: 'null'
          title: Build
      type: object
      required:
      - name
      title: CreateSatelliteData
    CreateSharedLinkData:
      properties:
        recording_id:
          type: integer
          title: Recording Id
        type:
          $ref: '#/components/schemas/SharedLinkType'
          default: PUBLIC
        expires_in:
          anyOf:
          - type: string
          - type: 'null'
          title: Expires In
        allowed_emails:
          items:
            type: string
          type: array
          title: Allowed Emails
          default: []
      type: object
      required:
      - recording_id
      title: CreateSharedLinkData
    DiarizationType:
      type: string
      enum:
      - pyannote
      title: DiarizationType
    DocumentData-Input:
      properties:
        id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Id
        account_id:
          type: integer
          title: Account Id
        recording_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Id
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        name:
          type: string
          title: Name
        type:
          type: string
          title: Type
        order:
          type: integer
          title: Order
          default: 0
        document_role:
          anyOf:
          - $ref: '#/components/schemas/DocumentRoleType'
          - type: 'null'
        token_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Token Count
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
        shared_link:
          anyOf:
          - $ref: '#/components/schemas/SharedLinkData'
          - type: 'null'
        content:
          anyOf:
          - type: string
            format: binary
          - type: 'null'
          title: Content
      type: object
      required:
      - account_id
      - name
      - type
      title: DocumentData
    DocumentData-Output:
      properties:
        id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Id
        account_id:
          type: integer
          title: Account Id
        recording_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Id
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        name:
          type: string
          title: Name
        type:
          type: string
          title: Type
        order:
          type: integer
          title: Order
          default: 0
        document_role:
          anyOf:
          - $ref: '#/components/schemas/DocumentRoleType'
          - type: 'null'
        token_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Token Count
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
        shared_link:
          anyOf:
          - $ref: '#/components/schemas/SharedLinkData'
          - type: 'null'
        content:
          anyOf:
          - type: string
            format: binary
          - type: 'null'
          title: Content
      type: object
      required:
      - account_id
      - name
      - type
      title: DocumentData
    DocumentMeta:
      properties:
        id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Id
        account_id:
          type: integer
          title: Account Id
        recording_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Id
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        name:
          type: string
          title: Name
        type:
          type: string
          title: Type
        order:
          type: integer
          title: Order
          default: 0
        document_role:
          anyOf:
          - $ref: '#/components/schemas/DocumentRoleType'
          - type: 'null'
        token_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Token Count
        created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Created At
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
        shared_link:
          anyOf:
          - $ref: '#/components/schemas/SharedLinkData'
          - type: 'null'
      type: object
      required:
      - account_id
      - name
      - type
      title: DocumentMeta
    DocumentOrderUpdate:
      properties:
        document_id:
          type: integer
          title: Document Id
        order:
          type: integer
          title: Order
      type: object
      required:
      - document_id
      - order
      title: DocumentOrderUpdate
    DocumentRoleType:
      type: string
      enum:
      - formatted_transcription
      - summary
      - action_points
      - auto_generated
      title: DocumentRoleType
      description: Document role types.
    DocumentSummary:
      properties:
        document_id:
          type: integer
          title: Document Id
        name:
          type: string
          title: Name
        type:
          type: string
          title: Type
        document_role:
          anyOf:
          - type: string
          - type: 'null'
          title: Document Role
      type: object
      required:
      - document_id
      - name
      - type
      title: DocumentSummary
      description: Summary of a document for chat context display.
    EmotionType:
      type: string
      enum:
      - positive
      - angry
      - sad
      - neutral
      title: EmotionType
    FolderData:
      properties:
        folder_id:
          type: integer
          title: Folder Id
        account_id:
          type: integer
          title: Account Id
        path:
          type: string
          title: Path
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        recording_count:
          type: integer
          title: Recording Count
          default: 0
        subfolder_count:
          type: integer
          title: Subfolder Count
          default: 0
        document_count:
          type: integer
          title: Document Count
          default: 0
      type: object
      required:
      - folder_id
      - account_id
      - path
      - created_at
      - updated_at
      title: FolderData
    FolderPathItem:
      properties:
        id:
          type: integer
          title: Id
        name:
          type: string
          title: Name
      type: object
      required:
      - id
      - name
      title: FolderPathItem
    FolderSummary:
      properties:
        folder_id:
          type: integer
          title: Folder Id
        path:
          type: string
          title: Path
        name:
          type: string
          title: Name
      type: object
      required:
      - folder_id
      - path
      - name
      title: FolderSummary
      description: Summary of a folder for chat context display.
    FolderTreeNode:
      properties:
        folder_id:
          type: integer
          title: Folder Id
        name:
          type: string
          title: Name
        path:
          type: string
          title: Path
        level:
          type: integer
          title: Level
        children:
          items:
            $ref: '#/components/schemas/FolderTreeNode'
          type: array
          title: Children
          default: []
      type: object
      required:
      - folder_id
      - name
      - path
      - level
      title: FolderTreeNode
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    HealthData:
      properties:
        status:
          $ref: '#/components/schemas/OverallStatus'
        timestamp:
          type: string
          format: date-time
          title: Timestamp
        checks:
          additionalProperties:
            $ref: '#/components/schemas/CheckResult'
          type: object
          title: Checks
      type: object
      required:
      - status
      - timestamp
      - checks
      title: HealthData
    InitUploadRequest:
      properties:
        recording_id:
          type: integer
          title: Recording Id
          description: Recording ID to upload file to
        filename:
          type: string
          title: Filename
          description: Original filename
        file_type:
          $ref: '#/components/schemas/RecordingFileType'
          description: Type of file
          default: AUDIO
        recognition_mode:
          $ref: '#/components/schemas/RecognitionModeType'
          description: Recognition mode for audio files
          default: single_source
        file_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: File Size
          description: Total file size in bytes (for size limit validation)
      type: object
      required:
      - recording_id
      - filename
      title: InitUploadRequest
      description: Request to initialize a new upload or resume an existing one.
    InitUploadResponse:
      properties:
        file_id:
          type: integer
          title: File Id
          description: RecordingFile ID
        confirmed_position:
          type: integer
          title: Confirmed Position
          description: Confirmed position for resumption (bytes already uploaded)
        status:
          $ref: '#/components/schemas/RecordingFileStatusType'
          description: Current file status
        is_completed:
          type: boolean
          title: Is Completed
          description: True if file is already fully uploaded
      type: object
      required:
      - file_id
      - confirmed_position
      - status
      - is_completed
      title: InitUploadResponse
      description: Response from upload initialization.
    JobTaskData:
      properties:
        task_id:
          type: string
          title: Task Id
        status:
          type: string
          title: Status
        document_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Document Id
      type: object
      required:
      - task_id
      - status
      title: JobTaskData
    ManualTranscriptionData:
      properties:
        id:
          type: integer
          title: Id
        recording_id:
          type: integer
          title: Recording Id
        account_id:
          type: integer
          title: Account Id
        start_ms:
          type: integer
          title: Start Ms
        end_ms:
          type: integer
          title: End Ms
        status:
          $ref: '#/components/schemas/ManualTranscriptionStatusType'
        created_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
        transcription_data:
          anyOf:
          - type: string
          - type: 'null'
          title: Transcription Data
      type: object
      required:
      - id
      - recording_id
      - account_id
      - start_ms
      - end_ms
      - status
      - created_by
      - created_at
      - transcription_data
      title: ManualTranscriptionData
    ManualTranscriptionItemData:
      properties:
        id:
          type: integer
          title: Id
        recording_id:
          type: integer
          title: Recording Id
        account_id:
          type: integer
          title: Account Id
        start_ms:
          type: integer
          title: Start Ms
        end_ms:
          type: integer
          title: End Ms
        status:
          $ref: '#/components/schemas/ManualTranscriptionStatusType'
        created_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - recording_id
      - account_id
      - start_ms
      - end_ms
      - status
      - created_by
      - created_at
      title: ManualTranscriptionItemData
    ManualTranscriptionListData:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ManualTranscriptionItemData'
          type: array
          title: Items
      type: object
      required:
      - items
      title: ManualTranscriptionListData
    ManualTranscriptionStatusType:
      type: string
      enum:
      - new
      - ready
      title: ManualTranscriptionStatusType
    MinimalVersionData:
      properties:
        minimal_version:
          type: integer
          title: Minimal Version
      type: object
      required:
      - minimal_version
      title: MinimalVersionData
    MoveDocumentsData:
      properties:
        document_ids:
          items:
            type: integer
          type: array
          title: Document Ids
        target_folder_id:
          type: integer
          title: Target Folder Id
      type: object
      required:
      - document_ids
      - target_folder_id
      title: MoveDocumentsData
    MoveRecordingsFoldersData:
      properties:
        recording_ids:
          items:
            type: integer
          type: array
          title: Recording Ids
          default: []
        folder_ids:
          items:
            type: integer
          type: array
          title: Folder Ids
          default: []
        target_folder_id:
          type: integer
          title: Target Folder Id
        target_account_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Target Account Id
      type: object
      required:
      - target_folder_id
      title: MoveRecordingsFoldersData
    OverallStatus:
      type: string
      enum:
      - Ok
      - PartiallyOk
      - Failed
      title: OverallStatus
    PagingRequestData:
      properties:
        page:
          type: integer
          title: Page
          default: 0
        page_size:
          type: integer
          title: Page Size
          default: 100
      type: object
      title: PagingRequestData
    PagingResponseData:
      properties:
        page:
          type: integer
          title: Page
        page_size:
          type: integer
          title: Page Size
        total_count:
          type: integer
          title: Total Count
      type: object
      required:
      - page
      - page_size
      - total_count
      title: PagingResponseData
    RagNodeType:
      type: string
      enum:
      - document
      - document_summary
      - folder_summary
      title: RagNodeType
      description: Types of RAG nodes.
    RecognitionModeType:
      type: string
      enum:
      - single_source
      - independent_channels
      title: RecognitionModeType
    RecognitionStatusType:
      type: string
      enum:
      - PENDING
      - LIVE_RECOGNITION
      - OFFLINE_RECOGNITION
      - COMPLETE
      - ERROR
      title: RecognitionStatusType
    RecordingData:
      properties:
        recording_id:
          type: integer
          title: Recording Id
        account_id:
          type: integer
          title: Account Id
        satellite_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Satellite Name
        status:
          $ref: '#/components/schemas/RecordingStatusType'
        audio_status:
          $ref: '#/components/schemas/AudioProcessingStatusType'
        main_file_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Main File Id
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        start_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Start Time
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
        creator_user_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Creator User Id
        recording_type:
          anyOf:
          - $ref: '#/components/schemas/RecordingType'
          - type: 'null'
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        folder_path:
          anyOf:
          - type: string
          - type: 'null'
          title: Folder Path
        folder:
          anyOf:
          - items:
              $ref: '#/components/schemas/FolderPathItem'
            type: array
          - type: 'null'
          title: Folder
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
        processing_stage_text:
          anyOf:
          - type: string
          - type: 'null'
          title: Processing Stage Text
        shared_link:
          anyOf:
          - $ref: '#/components/schemas/SharedLinkData'
          - type: 'null'
        recorder_online:
          type: boolean
          title: Recorder Online
          default: false
        client_files_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: Client Files Size
        client_uploaded_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: Client Uploaded Size
        source:
          anyOf:
          - $ref: '#/components/schemas/RecordingSourceType'
          - type: 'null'
        languages:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Languages
        allow_language_change:
          type: boolean
          title: Allow Language Change
          default: false
        document_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Document Id
      type: object
      required:
      - recording_id
      - account_id
      - satellite_name
      - status
      - audio_status
      - label
      - start_time
      - duration_ms
      - creator_user_id
      - recording_type
      title: RecordingData
    RecordingErrorData:
      properties:
        id:
          type: integer
          title: Id
        recording_id:
          type: integer
          title: Recording Id
        account_id:
          type: integer
          title: Account Id
        start_ms:
          type: integer
          title: Start Ms
        end_ms:
          type: integer
          title: End Ms
        description:
          type: string
          title: Description
        is_critical:
          type: boolean
          title: Is Critical
        created_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - recording_id
      - account_id
      - start_ms
      - end_ms
      - description
      - is_critical
      - created_by
      - created_at
      title: RecordingErrorData
    RecordingErrorListData:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/RecordingErrorData'
          type: array
          title: Errors
      type: object
      required:
      - errors
      title: RecordingErrorListData
    RecordingFileData:
      properties:
        id:
          type: integer
          title: Id
        account_id:
          type: integer
          title: Account Id
        recording_id:
          type: integer
          title: Recording Id
        device_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Device Id
        originator:
          anyOf:
          - type: string
          - type: 'null'
          title: Originator
        start_time:
          type: string
          format: date-time
          title: Start Time
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
        file_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: File Size
        recognition_mode:
          $ref: '#/components/schemas/RecognitionModeType'
        s3_filename:
          anyOf:
          - type: string
          - type: 'null'
          title: S3 Filename
        file_type:
          $ref: '#/components/schemas/RecordingFileType'
        filename:
          anyOf:
          - type: string
          - type: 'null'
          title: Filename
        recording_status:
          $ref: '#/components/schemas/RecordingFileStatusType'
        recording_status_timestamp:
          type: string
          format: date-time
          title: Recording Status Timestamp
        recognition_status:
          $ref: '#/components/schemas/RecognitionStatusType'
        recognition_status_timestamp:
          type: string
          format: date-time
          title: Recognition Status Timestamp
        last_error:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Error
      type: object
      required:
      - id
      - account_id
      - recording_id
      - device_id
      - originator
      - start_time
      - duration_ms
      - file_size
      - recognition_mode
      - s3_filename
      - file_type
      - filename
      - recording_status
      - recording_status_timestamp
      - recognition_status
      - recognition_status_timestamp
      - last_error
      title: RecordingFileData
    RecordingFileStatusType:
      type: string
      enum:
      - PENDING
      - UPLOADING
      - UPLOAD_COMPLETE
      - POST_PROCESSING
      - COMPLETE
      - ERROR
      title: RecordingFileStatusType
    RecordingFileType:
      type: string
      enum:
      - AUDIO
      - VIDEO
      - IMAGE
      - TEXT
      title: RecordingFileType
    RecordingProcessingRequestData:
      properties:
        account_id:
          type: integer
          title: Account Id
        recording_id:
          type: integer
          title: Recording Id
        src_document_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Src Document Id
        summary_format:
          anyOf:
          - type: string
          - type: 'null'
          title: Summary Format
      type: object
      required:
      - account_id
      - recording_id
      title: RecordingProcessingRequestData
      description: External API model for recording processing requests
    RecordingSourceType:
      type: string
      enum:
      - recorder
      - uploader
      title: RecordingSourceType
    RecordingStatusType:
      type: string
      enum:
      - draft
      - recording
      - uploading
      - upload_complete
      - post_processing
      - completed
      - processing_blocked
      - error
      title: RecordingStatusType
    RecordingSummary:
      properties:
        recording_id:
          type: integer
          title: Recording Id
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
        recording_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Recording Type
      type: object
      required:
      - recording_id
      - label
      - duration_ms
      - recording_type
      title: RecordingSummary
      description: Summary of a recording for chat context display.
    RecordingTranscriptionData:
      properties:
        id:
          type: integer
          title: Id
        account_id:
          type: integer
          title: Account Id
        recording_id:
          type: integer
          title: Recording Id
        transcription:
          $ref: '#/components/schemas/TranscriptionData'
      type: object
      required:
      - id
      - account_id
      - recording_id
      - transcription
      title: RecordingTranscriptionData
    RecordingType:
      type: string
      enum:
      - audio_note
      - audio_meeting
      - video_meeting
      title: RecordingType
    RecordingsFilterData:
      properties:
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        folder_path:
          anyOf:
          - type: string
          - type: 'null'
          title: Folder Path
        start_time_gte:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Start Time Gte
      type: object
      title: RecordingsFilterData
    RecordingsRequestData:
      properties:
        filter:
          $ref: '#/components/schemas/RecordingsFilterData'
          default: {}
        sort:
          $ref: '#/components/schemas/RecordingsSortData'
          default: {}
        paging:
          $ref: '#/components/schemas/PagingRequestData'
          default:
            page: 0
            page_size: 100
      type: object
      title: RecordingsRequestData
    RecordingsResponseData:
      properties:
        filter:
          $ref: '#/components/schemas/RecordingsFilterData'
        sort:
          $ref: '#/components/schemas/RecordingsSortData'
        paging:
          $ref: '#/components/schemas/PagingResponseData'
        records:
          items:
            $ref: '#/components/schemas/RecordingData'
          type: array
          title: Records
      type: object
      required:
      - filter
      - sort
      - paging
      - records
      title: RecordingsResponseData
    RecordingsSortData:
      properties:
        start_time:
          anyOf:
          - type: integer
          - type: 'null'
          title: Start Time
        recording_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Recording Id
      type: object
      title: RecordingsSortData
    RenameFolderData:
      properties:
        name:
          type: string
          title: Name
      type: object
      required:
      - name
      title: RenameFolderData
    ReorderDocumentsRequest:
      properties:
        updates:
          items:
            $ref: '#/components/schemas/DocumentOrderUpdate'
          type: array
          title: Updates
      type: object
      required:
      - updates
      title: ReorderDocumentsRequest
    SatelliteData:
      properties:
        satellite_id:
          type: integer
          title: Satellite Id
        account:
          anyOf:
          - $ref: '#/components/schemas/AccountData'
          - type: 'null'
        creator:
          anyOf:
          - $ref: '#/components/schemas/UserInfoData'
          - type: 'null'
        name:
          type: string
          title: Name
        secret_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Secret Key
        last_active:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Active
        started_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Started At
        recordings_duration_s:
          type: integer
          title: Recordings Duration S
        recording_started_count:
          type: integer
          title: Recording Started Count
        recording_completed_count:
          type: integer
          title: Recording Completed Count
        created_at:
          type: string
          format: date-time
          title: Created At
        version_os:
          anyOf:
          - type: string
          - type: 'null'
          title: Version Os
        version_build_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Version Build Number
        version_build_date:
          anyOf:
          - type: string
          - type: 'null'
          title: Version Build Date
      type: object
      required:
      - satellite_id
      - account
      - creator
      - name
      - secret_key
      - last_active
      - recordings_duration_s
      - recording_started_count
      - recording_completed_count
      - created_at
      title: SatelliteData
    SearchHitData:
      properties:
        recording_data:
          anyOf:
          - $ref: '#/components/schemas/RecordingData'
          - type: 'null'
        document_data:
          anyOf:
          - $ref: '#/components/schemas/DocumentData-Output'
          - type: 'null'
        entity_type:
          anyOf:
          - type: string
            enum:
            - document
            - rag_chunk
          - type: 'null'
          title: Entity Type
        matched_fields:
          anyOf:
          - items:
              type: string
              enum:
              - name
              - text
            type: array
          - type: 'null'
          title: Matched Fields
        snippet:
          type: string
          title: Snippet
        score:
          anyOf:
          - type: number
          - type: 'null'
          title: Score
      type: object
      required:
      - snippet
      title: SearchHitData
    SearchResponseData:
      properties:
        hits:
          items:
            $ref: '#/components/schemas/SearchHitData'
          type: array
          title: Hits
        total:
          type: integer
          title: Total
        query:
          type: string
          title: Query
        took_ms:
          type: integer
          title: Took Ms
      type: object
      required:
      - hits
      - total
      - query
      - took_ms
      title: SearchResponseData
    SendMessageData:
      properties:
        text:
          type: string
          title: Text
        context:
          anyOf:
          - $ref: '#/components/schemas/ChatContext'
          - type: 'null'
      type: object
      required:
      - text
      title: SendMessageData
    SharedLinkData:
      properties:
        shared_id:
          type: string
          title: Shared Id
        type:
          $ref: '#/components/schemas/SharedLinkType'
        account_id:
          type: integer
          title: Account Id
        source_account_id:
          type: integer
          title: Source Account Id
        source_recording_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Source Recording Id
        source_folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Source Folder Id
        source_document_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Source Document Id
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
        created_at:
          type: string
          format: date-time
          title: Created At
        created_by_user_id:
          type: integer
          title: Created By User Id
        expires_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Expires At
        allowed_emails:
          items:
            type: string
          type: array
          title: Allowed Emails
          default: []
      type: object
      required:
      - shared_id
      - type
      - account_id
      - source_account_id
      - created_at
      - created_by_user_id
      title: SharedLinkData
    SharedLinkType:
      type: string
      enum:
      - PUBLIC
      - AUTHENTICATED
      - EMAIL_RESTRICTED
      title: SharedLinkType
    SourceCitationData:
      properties:
        source_type:
          anyOf:
          - $ref: '#/components/schemas/RagNodeType'
          - type: 'null'
        source_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Source Id
        content_snippet:
          type: string
          title: Content Snippet
        relevance_score:
          type: number
          title: Relevance Score
      type: object
      required:
      - content_snippet
      - relevance_score
      title: SourceCitationData
      description: "Citation for a retrieved chunk \u2014 REST representation."
    SpeakerData:
      properties:
        id:
          type: string
          title: Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        ref:
          anyOf:
          - type: string
          - type: 'null'
          title: Ref
      type: object
      required:
      - id
      title: SpeakerData
    SpeakersCount:
      properties:
        speakers_min:
          type: integer
          title: Speakers Min
          default: 1
        speakers_max:
          type: integer
          title: Speakers Max
          default: 12
      type: object
      title: SpeakersCount
    SpeechSegment:
      properties:
        start:
          type: number
          title: Start
        text:
          type: string
          title: Text
        end:
          anyOf:
          - type: number
          - type: 'null'
          title: End
        vad_prob:
          anyOf:
          - type: number
          - type: 'null'
          title: Vad Prob
        speech_prob:
          anyOf:
          - type: number
          - type: 'null'
          title: Speech Prob
        volume_70:
          anyOf:
          - type: number
          - type: 'null'
          title: Volume 70
        words:
          anyOf:
          - items:
              $ref: '#/components/schemas/SpeechWord'
            type: array
          - type: 'null'
          title: Words
        channel:
          anyOf:
          - type: string
          - type: 'null'
          title: Channel
        speaker:
          anyOf:
          - type: string
          - type: 'null'
          title: Speaker
        emotion:
          anyOf:
          - additionalProperties:
              type: number
            propertyNames:
              $ref: '#/components/schemas/EmotionType'
            type: object
          - type: 'null'
          title: Emotion
      type: object
      required:
      - start
      - text
      title: SpeechSegment
    SpeechWord:
      properties:
        word:
          type: string
          title: Word
        start:
          type: number
          title: Start
        end:
          type: number
          title: End
        speech_prob:
          type: number
          title: Speech Prob
        volume_avg:
          type: number
          title: Volume Avg
      type: object
      required:
      - word
      - start
      - end
      - speech_prob
      - volume_avg
      title: SpeechWord
    TokenDailyUsage:
      properties:
        usage_date:
          type: string
          format: date
          title: Usage Date
        input_tokens:
          type: integer
          title: Input Tokens
        output_tokens:
          type: integer
          title: Output Tokens
        cost_usd:
          type: number
          title: Cost Usd
      type: object
      required:
      - usage_date
      - input_tokens
      - output_tokens
      - cost_usd
      title: TokenDailyUsage
    TokenUsageResponse:
      properties:
        daily:
          items:
            $ref: '#/components/schemas/TokenDailyUsage'
          type: array
          title: Daily
        total_input_tokens:
          type: integer
          title: Total Input Tokens
        total_output_tokens:
          type: integer
          title: Total Output Tokens
        total_cost_usd:
          type: number
          title: Total Cost Usd
      type: object
      required:
      - daily
      - total_input_tokens
      - total_output_tokens
      - total_cost_usd
      title: TokenUsageResponse
    TrackingEventData:
      properties:
        originator:
          type: string
          title: Originator
        anon_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Anon Id
        user_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: User Id
        session_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Session Id
        timestamp:
          type: string
          format: date-time
          title: Timestamp
        event:
          type: string
          title: Event
        props:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Props
        utm:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Utm
        context:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Context
      type: object
      required:
      - originator
      - timestamp
      - event
      title: TrackingEventData
    TrackingEventsRequest:
      properties:
        events:
          items:
            $ref: '#/components/schemas/TrackingEventData'
          type: array
          title: Events
      type: object
      required:
      - events
      title: TrackingEventsRequest
    TranscriptionData:
      properties:
        segments:
          items:
            $ref: '#/components/schemas/SpeechSegment'
          type: array
          title: Segments
        speakers:
          items:
            $ref: '#/components/schemas/SpeakerData'
          type: array
          title: Speakers
          default: []
      type: object
      required:
      - segments
      title: TranscriptionData
    TranscriptionUpdateData:
      properties:
        segments:
          items:
            $ref: '#/components/schemas/SpeechSegment'
          type: array
          title: Segments
        speakers:
          items:
            $ref: '#/components/schemas/SpeakerData'
          type: array
          title: Speakers
          default: []
      type: object
      required:
      - segments
      title: TranscriptionUpdateData
    UpdateChatData:
      properties:
        title:
          type: string
          title: Title
      type: object
      required:
      - title
      title: UpdateChatData
    UpdateManualTranscriptionRequest:
      properties:
        status:
          anyOf:
          - $ref: '#/components/schemas/ManualTranscriptionStatusType'
          - type: 'null'
        transcription_data:
          anyOf:
          - type: string
          - type: 'null'
          title: Transcription Data
      type: object
      title: UpdateManualTranscriptionRequest
    UpdateRecordingData:
      properties:
        satellite_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Satellite Name
        label:
          anyOf:
          - type: string
          - type: 'null'
          title: Label
        recording_type:
          anyOf:
          - $ref: '#/components/schemas/RecordingType'
          - type: 'null'
        folder_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Folder Id
      type: object
      required:
      - satellite_name
      - label
      - recording_type
      title: UpdateRecordingData
    UpdateSharedLinkData:
      properties:
        type:
          anyOf:
          - $ref: '#/components/schemas/SharedLinkType'
          - type: 'null'
        expires_in:
          anyOf:
          - type: string
          - type: 'null'
          title: Expires In
        allowed_emails:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Allowed Emails
      type: object
      title: UpdateSharedLinkData
    UpdateSpeakerData:
      properties:
        old_name:
          type: string
          title: Old Name
        new_name:
          type: string
          title: New Name
      type: object
      required:
      - old_name
      - new_name
      title: UpdateSpeakerData
      description: Request data for updating speaker information
    UploadChunkResponse:
      properties:
        confirmed_position:
          type: integer
          title: Confirmed Position
          description: New confirmed position after chunk
      type: object
      required:
      - confirmed_position
      title: UploadChunkResponse
      description: Response after uploading a chunk.
    UploadStatusResponse:
      properties:
        file_id:
          type: integer
          title: File Id
          description: RecordingFile ID
        confirmed_position:
          type: integer
          title: Confirmed Position
          description: Confirmed position (bytes already uploaded)
        status:
          $ref: '#/components/schemas/RecordingFileStatusType'
          description: Current file status
        is_completed:
          type: boolean
          title: Is Completed
          description: True if file is already fully uploaded
      type: object
      required:
      - file_id
      - confirmed_position
      - status
      - is_completed
      title: UploadStatusResponse
      description: Response with current upload status.
    UserAuthInfoData:
      properties:
        user_id:
          type: integer
          title: User Id
        email:
          type: string
          title: Email
        username:
          type: string
          title: Username
        contact_link:
          anyOf:
          - type: string
          - type: 'null'
          title: Contact Link
        settings:
          anyOf:
          - $ref: '#/components/schemas/UserSettingsData'
          - type: 'null'
        roles:
          items:
            type: string
          type: array
          title: Roles
        accounts:
          items:
            $ref: '#/components/schemas/AccountWithRoleData'
          type: array
          title: Accounts
        is_super_admin_session:
          type: boolean
          title: Is Super Admin Session
          default: false
      type: object
      required:
      - user_id
      - email
      - username
      - roles
      - accounts
      title: UserAuthInfoData
    UserInfoData:
      properties:
        user_id:
          type: integer
          title: User Id
        email:
          type: string
          title: Email
        username:
          type: string
          title: Username
        contact_link:
          anyOf:
          - type: string
          - type: 'null'
          title: Contact Link
      type: object
      required:
      - user_id
      - email
      - username
      title: UserInfoData
    UserSettingsData:
      properties:
        default_languages:
          items:
            type: string
          type: array
          title: Default Languages
          default:
          - ru
        default_allow_language_change:
          type: boolean
          title: Default Allow Language Change
          default: false
      type: object
      title: UserSettingsData
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    VersionData:
      properties:
        component:
          type: string
          title: Component
          default: ''
        build_date:
          type: string
          title: Build Date
          default: ''
        commit_hash:
          type: string
          title: Commit Hash
          default: ''
        branch:
          type: string
          title: Branch
          default: ''
        profile:
          type: string
          title: Profile
          default: ''
      type: object
      title: VersionData
